ossupport.h
来自「AMLOGIC DPF source code」· C头文件 代码 · 共 187 行
H
187 行
/*******************************************************************
*
* Copyright C 2005 by Amlogic, Inc. All Rights Reserved.
*
* Description:
*
* Author: Amlogic Software
* Created: Thu Nov 10 23:57:52 2005
*
*******************************************************************/
#define DVDROM
#ifdef MINIOS
#define gprintf printf
#else
/*for AVOS*/
#define gprintf printf
#endif
#ifndef __inline__
#define __inline__ _Inline
#endif
typedef struct _MINIMSG
{
struct _MINIMSG * pNext;
unsigned int STask; /* source task */
}MINIMSG;
typedef struct
{
unsigned BaseAddr;
unsigned xferCount :22;
unsigned Dst :1;
unsigned :1;
unsigned DmaMode :3;
unsigned Dir :1;
unsigned Csel :1;
unsigned Endian :2;
unsigned Eot :1;
} IDEDMA_DESCRIPTOR;
typedef struct
{
unsigned char abs_Min;
unsigned char abs_Sec;
unsigned char abs_Frame;
unsigned char msf_Min;
unsigned char msf_Sec;
unsigned char msf_Frame;
/* for DVD seek used */
unsigned char SeekType;
unsigned char StartAddrH;
unsigned char StartAddrM;
unsigned char StartAddrL;
unsigned char StartCountH;
unsigned char StartCountM;
unsigned char StartCountL;
unsigned char NextAddrH;
unsigned char NextAddrM;
unsigned char NextAddrL;
unsigned char NextCountH;
unsigned char NextCountM;
unsigned char NextCountL;
unsigned char Dest;
unsigned char Start_Min; // for VCD
unsigned char Start_Sec;
unsigned char Start_Frame;
unsigned char End_Min;
unsigned char End_Sec;
unsigned char End_Frame;
unsigned char Useless1;
unsigned char Useless2;
unsigned StartAddr; // for DVD
unsigned NextStartAddr;
unsigned StartCount;
unsigned NextStartCount;
} SEEKPARAM;
typedef struct
{
unsigned char SenseKey;
unsigned char ASC;
unsigned char ASCQ;
}SENSE;
typedef struct
{
SENSE sense;
SEEKPARAM seek;
unsigned char packet_cmd[12]; /* save atapi command packet */
unsigned char status;
unsigned char half_wait;
unsigned char door_status;
unsigned char AllData_Done; // used in read(12) command
unsigned char command_time;
unsigned short host_read_point;
unsigned current_lba;
unsigned current_lba_num;
unsigned char current_dest;
unsigned char COMMAND_FAIL_CNT;
char VOBU_play_status;
unsigned VOBU_SA;
unsigned VOBU_EA;
unsigned CELL_EA;
}ATAPIPARAM;
#define NODISC BLOCK_DISCTYPE_NULL
#define DVDDISC BLOCK_DISCTYPE_DVD
#define CDDA BLOCK_DISCTYPE_CDDA
#define CDROM BLOCK_DISCTYPE_CDROM
#define VCD20 BLOCK_DISCTYPE_VCD
#define MAX_SET_NUMBER 8
typedef struct track_buf_set
{
struct track_buf_set* next;
unsigned start;
unsigned size;
}track_buf_set;
extern unsigned cur_set_index;
extern track_buf_set* track_buf_set_headers[MAX_SET_NUMBER];
extern int IDE_DMA_COUNT;
extern IDEDMA_DESCRIPTOR ide_descriptor[512];
///////////////////////////////////
//os support
#define CLI OS_ENTER_CRITICAL();
#define CLI2 OS_ENTER_CRITICAL();
#define STI OS_EXIT_CRITICAL();
//#define CLI _ASM("FLAG 4");
//#define STI _ASM("FLAG 6");
//#define CLI2 _ASM("FLAG 0");
#define SCH_OK_EVENT 0
#define Mini_Sleep(time) AVTimeDly(time);
#define timer_jiffies (AVTimeGet())
void * Mini_AllocMsg();
int Mini_DeallocMsg(void * p);
int Mini_printf(const char* fmt, ...);
unsigned int Mini_CreatTask(void (*routine)(void*), unsigned char pri, unsigned char* stack_start,unsigned int stack_size);
unsigned char Mini_SendMessage(MINIMSG * pRtkeMsg, unsigned int DTask);
unsigned char Mini_SendMessage2(MINIMSG * pRtkeMsg, unsigned int DTask,unsigned int STask);
unsigned char Mini_PushMessage(MINIMSG * pRtkeMsg, unsigned int DTask);
MINIMSG* Mini_PopMessage();
MINIMSG* Mini_GetMessage() ;
void Mini_EmptyMessage(unsigned int handle) ;
MINIMSG* Mini_WaitMessage() ;
unsigned char Mini_SetEvent(unsigned char event) ;
unsigned char Mini_WaitEvent(unsigned char event) ;
//other functions
unsigned int Block_Stop();
//static unsigned send_descramble_msg(unsigned char state);
//static unsigned send_ind_msg1(unsigned char state, unsigned target,unsigned data);
unsigned char READ_PIO_8(unsigned addr);
void Start_IDE_Dma_(unsigned sectornum,unsigned dest,unsigned char endian);
void WRITE_PIO_8(unsigned addr, unsigned char data);
unsigned char DVDROM_StartCmd_();
unsigned char IssueATAPICommand(unsigned char dmamode);
unsigned char DVDROM_Read_12_i(unsigned lba, unsigned lba_num, unsigned dest,unsigned char endian);
unsigned DVDROM_Read_CDDA_MSF_(unsigned short Pmin,unsigned short Psec,unsigned short Pframe,unsigned short len,unsigned dest,unsigned char endian);
unsigned char DVDROM_Read_CD_MSF_(unsigned short Pmin,unsigned short Psec,unsigned short Pframe, unsigned char sector_num, unsigned dest,unsigned dest_ext ,unsigned mode);
void Process_ATAPIInt();
unsigned char DVDROM_MechanismStatus_(void);
unsigned char DVDStopCmd(unsigned type);
unsigned char Init_ATAPI_(int i);
unsigned char DVDROM_CloseCmd_(void);
unsigned char DVDROM_OpenCmd_(void);
unsigned char DVDROM_INQUIRY_Cmd(void);
unsigned char DVDROM_ReadDiscType_(void);
extern void (*start_hook) (void* );
extern unsigned start_hook_arg;
extern unsigned char css_disc;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?