亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hal_atapi.h

?? STi5518機頂盒ATAPI源代碼!絕對超值!
?? H
字號:
/************************************************************************Source file name : statapi.hDescription:       Interface to ATA/ATAPI driver.COPYRIGHT (C) STMicroelectronics 2000************************************************************************/#ifndef __STATAPI_HAL_H#define __STATAPI_HAL_H/* Includes ---------------------------------------------------------------- */#include "stddefs.h"#include "stcommon.h"#if defined(ATAPI_GPDMA)#include "stgpdma.h"#endif/* For ata_cmd_t definition #include "ata.h"*/#ifdef __cplusplusextern "C" {#endif/* masks to address the control registers - EMI lines */#define         aCS1                0x00040000#define         nCS1                0x00000000#define         aCS0                0x00080000#define         nCS0                0x00000000#define         aDA2                0x00020000#define         nDA2                0x00000000#define         aDA1                0x00010000#define         nDA1                0x00000000#define         aDA0                0x00008000#define         nDA0                0x00000000/*---------------MASKS bits---------------------------*/#define         BIT_0               0x0001#define         BIT_1               0x0002#define         BIT_2               0x0004#define         BIT_3               0x0008#define         BIT_4               0x0010#define         BIT_5               0x0020#define         BIT_6               0x0040#define         BIT_7               0x0080#define         BIT_8               0x0100#define         BIT_9               0x0200#define         BIT_10              0x0400#define         BIT_11              0x0800#define         BIT_12              0x1000#define         BIT_13              0x2000#define         BIT_14              0x4000#define         BIT_15              0x8000#define          DEVHEAD_DEV0       0x00#define          DEVHEAD_DEV1       0x10#define          BSY_BIT_MASK       0x80   /* Busy         */#define          DRQ_BIT_MASK       0x08   /* Data Request */#define          DRDY_BIT_MASK      0x40   /* Device Ready   */#define          DF_BIT_MASK        0x20   /* Device Fault */#define          ERR_BIT_MASK       0x01   /* Error        */#define          nIEN_CLEARED       0x00#define          nIEN_SET           0x02#define          SRST_SET           0x04/* Only used for LBA-48 - High Order Bit, see ATA-6 spec. */#define         CONTROL_HOB         0x128/*---------------HW specific ---------------------------*/#if defined(ST_5514)    #define INT_TIMEOUT     ST_GetClocksPerSecond()#else    #define INT_TIMEOUT     15625*2  /* 2 sec*/#endif/*Exported variables ---------------------------------------------------------*//*Exported macros    ---------------------------------------------------------*/#ifdef ST_5514#define WriteReg(Base, Value)   STSYS_WriteRegDev32LE(Base, Value)#define ReadReg(Base)           STSYS_ReadRegDev32LE(Base)#endif/*Exported constants ---------------------------------------------------------*//* Indexing into array held in hal_atapi.c */typedef enum{       ATA_REG_ALTSTAT = 0,     ATA_REG_DATA ,    ATA_REG_ERROR ,    ATA_REG_FEATURE ,     ATA_REG_SECCOUNT ,    ATA_REG_SECNUM ,     ATA_REG_CYLLOW ,     ATA_REG_CYLHIGH ,    ATA_REG_DEVHEAD ,    ATA_REG_STATUS ,    ATA_REG_COMMAND ,    ATA_REG_CONTROL   } ATA_Register_t;/* ----- 5514-specific details follow in this section ----- */#ifdef ST_5514/* Some relevant HDDI internal registers - see ADCS 7180863 for   name meanings */#define HDDI_MODE               0x080#define HDDI_ATA_RESET          0x084#define HDDI_DMA_ITS            0x0e0#define HDDI_DMA_STA            0x0e4#define HDDI_DMA_ITM            0x0e8/* PIO timing registers */#define HDDI_DPIO_TIMING_OFFSET 0x090#define HDDI_DPIO_I             0x090#define HDDI_DPIO_IORDY         0x094#define HDDI_DPIO_WR            0x098#define HDDI_DPIO_RD            0x09c#define HDDI_DPIO_WREN          0x0a0#define HDDI_DPIO_AH            0x0a4#define HDDI_DPIO_WRRE          0x0a8#define HDDI_DPIO_RDRE          0x0ac/* DMA registers - control, start address, word count, etc. */#define HDDI_DMA_CONTROL_OFFSET 0x0b0#define HDDI_DMA_C              0x0b0#define HDDI_DMA_SA             0x0b4#define HDDI_DMA_WC             0x0b8#define HDDI_DMA_SI             0x0bc#define HDDI_DMA_CA             0x0d0#define HDDI_DMA_CB             0x0d4/* DMA timing - multiword DMA */#define HDDI_MWDMA_TIMING_OFFSET    0x0f0#define HDDI_MWDMA_TD           0x0f0#define HDDI_MWDMA_TH           0x0f4#define HDDI_MWDMA_TJ           0x0f8#define HDDI_MWDMA_TKR          0x0fc#define HDDI_MWDMA_TKW          0x100#define HDDI_MWDMA_TM           0x104#define HDDI_MWDMA_TN           0x108/* DMA timing - UltraDMA */#define HDDI_UDMA_TIMING_OFFSET     0x0f0#define HDDI_UDMA_ACK          0x0f4#define HDDI_UDMA_ENV          0x0f8#define HDDI_UDMA_RP           0x0f0#define HDDI_UDMA_ML           0x104#define HDDI_UDMA_TLI          0x0fc#define HDDI_UDMA_SS           0x100#define HDDI_UDMA_RFS          0x108#define HDDI_UDMA_DVS          0x10c#define HDDI_UDMA_DVH          0x110/* --- DMA configuration registers masks ( hardware specific ) -------- */#define     HDDI_DMA_C_MASK             0x0000001f #define     HDDI_DMA_SA_MASK            0xfffffff0 #define     HDDI_DMA_WC_MASK            0x00ffffff #define     HDDI_DMA_SI_MASK            0x00000003 #define     HDDI_DMA_CA_MASK            0xfffffff0 #define     HDDI_DMA_CB_MASK            0x01ffffff /* Encodes the meanings of bits in the HDDI registers *//* --- HDDI_MODE register (hardware specific) ----------------------- */#define     HDDI_MODE_PIOREG            0x00000000#define     HDDI_MODE_MWDMA             0x00000002#define     HDDI_MODE_UDMA              0x00000003 /* --- HDDI_ATARESET register ------------------- */#define     HDDI_ATARESET_ASSERT        0x00000001#define     HDDI_ATARESET_DEASSERT      0x00000000 /* --- HDDI_ATA_ASR register -------------------- */#define     HDDI_ATA_ASR_ERR            0x00000001#define     HDDI_ATA_ASR_DRQ            0x00000008#define     HDDI_ATA_ASR_DRDY           0x00000040#define     HDDI_ATA_ASR_BSY            0x00000080 /* --- HDDI_ATA_DCR register -------------------- */#define     HDDI_ATA_DCR_nIEN           0x00000002#define     HDDI_ATA_DCR_SRST           0x00000004 /* --- HDDI_ATA_ERR register -------------------- */#define     HDDI_ATA_ERR_ABRT           0x00000004#define     HDDI_ATA_ERR_ICRC           0x00000080 /* DMA CRC error */ /* --- HDDI_ATA_DHR register -------------------- */#define     HDDI_ATA_DHR_DEV0           0x00000000#define     HDDI_ATA_DHR_DEV1           0x00000010#define     HDDI_ATA_DHR_LBA            0x00000040 /* --- HDDI_ATA_SR register --------------------- */#define     HDDI_ATA_SR_ERR             0x00000001#define     HDDI_ATA_SR_DRQ             0x00000008#define     HDDI_ATA_SR_DF              0x00000020#define     HDDI_ATA_SR_DRDY            0x00000040/* --- HDDI_DMA_C register ( hardware specific ) ---------------------- */#define     HDDI_DMA_C_STARTBIT         0x00000001#define     HDDI_DMA_C_STOPBIT          0x00000002#define     HDDI_DMA_C_DMAENABLE        0x00000004#define     HDDI_DMA_C_NOTINCADDRESS    0x00000008#define     HDDI_DMA_C_READNOTWRITE     0x00000010 /* --- HDDI_DMA_SI register ( hardware specific ) --------------------- */#define     HDDI_DMA_SI_16BYTES         0x00000000#define     HDDI_DMA_SI_32BYTES         0x00000001#define     HDDI_DMA_SI_64BYTES         0x00000010#define     HDDI_DMA_SI_UNDEFINED       0x00000011 /* --- HDDI_DMA_ITS register ( hardware specific ) -------------------- */#define     HDDI_DMA_ITS_DEND           0x00000001#define     HDDI_DMA_ITS_IRQ            0x00000002#define     HDDI_DMA_ITS_DEVTERMOK      0x00000004/* --- HDDI_DMA_STA register ( hardware specific ) -------------------- */#define     HDDI_DMA_STA_DEND           0x00000001#define     HDDI_DMA_STA_IRQ            0x00000002#define     HDDI_DMA_STA_DEVTERMOK      0x00000004#define     HDDI_DMA_STA_ATADMASTATUS   0x00000700 /* --- HDDI_DMA_STA_ATADMASTATUS register ( hardware specific ) ------- */#define     HDDI_DMA_STA_ATADMASTATUS_ATAIF_INACTIVE                0x00000000#define     HDDI_DMA_STA_ATADMASTATUS_WAITING_FOR_DEV_RESPONSE      0x00000100#define     HDDI_DMA_STA_ATADMASTATUS_DEV_INITIALISED               0x00000200#define     HDDI_DMA_STA_ATADMASTATUS_DATA_BURST_INPROGRESS         0x00000300#define     HDDI_DMA_STA_ATADMASTATUS_DEV_TERM_ATTEMPT_OR_PAUSE     0x00000400#define     HDDI_DMA_STA_ATADMASTATUS_HOST_TERMINATE_ON_ERROR       0x00000500#define     HDDI_DMA_STA_ATADMASTATUS_HOST_PAUSE_FIFO_EMPTY_OR_FULL 0x00000600#define     HDDI_DMA_STA_ATADMASTATUS_DMA_COMPLETING_ABORT          0x00000700 /* --- HDDI_DMA_ITM register ( hardware specific ) -------------------- */#define     HDDI_DMA_ITM_DEND           0x00000001#define     HDDI_DMA_ITM_IRQ            0x00000002#define     HDDI_DMA_ITM_DEVTERMOK      0x00000004#endif /* ST_5514 *//* Exported Types ---------------------------------------------------------*/  typedef struct{    semaphore_t         InterruptSemaphore;    ST_Partition_t      *DriverPartition;    volatile U32        *BaseAddress;    volatile U16        *HWResetAddress;    U32                 InterruptNumber;    U32                 InterruptLevel;    STATAPI_Device_t    DeviceType;#ifdef BMDMA_ENABLE    semaphore_t         BMDMA_IntSemaphore;#endif#ifdef ST_5514    BOOL                DmaTransfer;    BOOL                DmaAborted;    U32                 StoredByteCount;#endif#if defined(ATAPI_GPDMA)    STGPDMA_Handle_t    GPDMAHandle;#endif} hal_Handle_t;#pragma ST_device(DU8)typedef volatile U8 DU8;#pragma ST_device(DU16)typedef volatile U16 DU16;#pragma ST_device(DU32)typedef volatile U32 DU32;#ifdef ST_5514/*** HDDI structures, ideally matching register layout ***//* DMA setup registers */typedef struct {    DU32 Control;    DU32 SourceAddress;    DU32 WordCount;    DU32 DMABlockSize;    DU32 CurrentAddress;                /* Read only */    DU32 CurrentByteCount;              /* Read only */} HDDI_DMASetup_t;/* PIO timing registers */typedef struct {    DU32 I;    DU32 IORDY;    DU32 WR;    DU32 RD;    DU32 WREN;    DU32 AH;    DU32 WRRE;    DU32 RDRE;} HDDI_DPIOTiming_t;/* MWDMA timing registers */typedef struct {    DU32 TD;    DU32 TH;    DU32 TJ;    DU32 TKR;    DU32 TKW;    DU32 TM;    DU32 TN;} HDDI_MWDMATiming_t;/* UDMA timing registers. Not listed in document in offset order, which is  why this struct contains the elements in a slightly different order */typedef struct {    DU32 RP;    DU32 ACK;    DU32 ENV;    DU32 TLI;    DU32 SS;    DU32 ML;    DU32 RFS;    DU32 DVS;    DU32 DVH;} HDDI_UDMATiming_t;#endif/*Exported functions---------------------------------------------------------*/BOOL hal_Init(const STATAPI_InitParams_t *params,hal_Handle_t* *HalHndl);BOOL hal_Term(hal_Handle_t *HalHndl);BOOL hal_GetCapabilities(hal_Handle_t *HalHndl,STATAPI_Capability_t *Capabilities);BOOL hal_HardReset(hal_Handle_t *HalHndl);void hal_RegOutByte(hal_Handle_t *HalHndl,ATA_Register_t regNo,U8 data);U8   hal_RegInByte (hal_Handle_t *HalHndl,ATA_Register_t regNo);void  hal_RegOutWord(hal_Handle_t *HalHndl,U16 data);U16   hal_RegInWord(hal_Handle_t *HalHndl);void ATA_BMDMA(void *Source, void *Destination, U32 Size);/* Error code is only valid if transfers are done with STGPDMA */ST_ErrorCode_t hal_RegOutBlock(hal_Handle_t *HalHndl_p, U16 *data,                                U32 Size, BOOL UseDMA);ST_ErrorCode_t hal_RegInBlock(hal_Handle_t *HalHndl_p, U16 *Data,                               U32 Size, BOOL UseDMA);void hal_EnableInts(hal_Handle_t *HalHndl);void hal_DisableInts(hal_Handle_t *HalHndl);BOOL hal_AwaitInt(hal_Handle_t *HalHndl,U32 timeout);BOOL hal_ClearInterrupt (hal_Handle_t *HalHndl);BOOL hal_GetDmaTiming(hal_Handle_t *HalHndl_p,STATAPI_DmaTiming_t *Time);BOOL hal_GetPioTiming(hal_Handle_t *HalHndl_p,STATAPI_PioTiming_t *Time);BOOL hal_SetDmaMode(hal_Handle_t *HalHndl,STATAPI_DmaMode_t mode);BOOL hal_SetPioMode(hal_Handle_t *HalHndl,STATAPI_PioMode_t mode);BOOL hal_SetDmaTiming(hal_Handle_t *HalHndl_p,STATAPI_DmaTiming_t *Time);BOOL hal_SetPioTiming(hal_Handle_t *HalHndl_p,STATAPI_PioTiming_t *Time);void hal_SetMWDMATiming(hal_Handle_t *HalHndl_p, STATAPI_MwDmaTiming_t *Timing);void hal_SetUDMATiming(hal_Handle_t *HalHndl_p,                        STATAPI_UltraDmaTiming_t *Timing);BOOL hal_DmaDataBlock(hal_Handle_t *HalHndl_p, U8 DevCtrl, U8 DevHead,                      U16 *StartAddress, U32 WordCount, U32 BufferSize,                       U32 *BytesRW, BOOL Read, BOOL *CrcError);void hal_AfterDma (hal_Handle_t *HalHndl_p);void hal_DmaPause(hal_Handle_t *HalHndl);void hal_DmaResume(hal_Handle_t *HalHndl);BOOL hal_DmaAbort(hal_Handle_t *HalHndl);#ifdef __cplusplus}#endif#endif /* _STATAPI_HAL_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线精品视频一区二区三四| 99re免费视频精品全部| 一区二区久久久久久| ...av二区三区久久精品| 国产日产精品1区| 中文字幕免费不卡| 国产精品久久777777| 亚洲人成人一区二区在线观看| 欧美国产视频在线| 国产精品成人免费| 亚洲青青青在线视频| 一区二区免费在线| 五月天激情综合网| 另类综合日韩欧美亚洲| 国产又黄又大久久| 91在线云播放| 欧美巨大另类极品videosbest| 日韩网站在线看片你懂的| 精品捆绑美女sm三区| 国产精品另类一区| 亚洲福中文字幕伊人影院| 美女视频第一区二区三区免费观看网站| 蜜臀久久久99精品久久久久久| 韩国精品免费视频| 99re这里只有精品首页| 欧美精品 日韩| 久久久91精品国产一区二区精品| 国产精品不卡在线观看| 亚洲一卡二卡三卡四卡无卡久久| 日韩av午夜在线观看| 丁香婷婷深情五月亚洲| 欧美性受xxxx黑人xyx性爽| 69av一区二区三区| 中文字幕va一区二区三区| 亚洲一区在线观看视频| 国产一二三精品| 一本一道综合狠狠老| 欧美xingq一区二区| 亚洲私人黄色宅男| 久久99国产精品久久99果冻传媒| 一本色道久久综合亚洲精品按摩| 欧美不卡视频一区| 亚洲国产综合色| 福利视频网站一区二区三区| 欧美精品久久天天躁| 成人欧美一区二区三区在线播放| 麻豆专区一区二区三区四区五区| 99久久精品免费精品国产| 欧美变态tickle挠乳网站| 亚洲欧美激情一区二区| 国产精品2024| 精品精品国产高清a毛片牛牛| 亚洲三级理论片| 国产a级毛片一区| 精品成人在线观看| 爽好多水快深点欧美视频| 一本色道久久综合亚洲aⅴ蜜桃 | 69久久99精品久久久久婷婷| 国产精品美女久久久久久久| 蜜桃久久久久久| 欧美日韩三级一区二区| 亚洲精品国产高清久久伦理二区| 国产精品资源站在线| 欧美大片在线观看一区二区| 性欧美疯狂xxxxbbbb| 欧洲激情一区二区| 亚洲免费伊人电影| 99久久er热在这里只有精品66| 久久久久国产成人精品亚洲午夜| 另类小说一区二区三区| 欧美一级黄色录像| 日韩国产欧美三级| 欧美电影在哪看比较好| 亚洲黄一区二区三区| 欧洲国产伦久久久久久久| 一个色妞综合视频在线观看| 91蝌蚪国产九色| 亚洲综合成人在线视频| 欧美日韩免费观看一区二区三区 | 亚洲妇女屁股眼交7| 在线视频国内一区二区| 亚洲欧洲综合另类在线| 日本高清免费不卡视频| 一区二区久久久久| 6080国产精品一区二区| 麻豆久久久久久| 久久先锋影音av鲁色资源网| 国产乱码精品一品二品| 国产日产欧美一区二区视频| 成人av资源站| 一区二区三区中文字幕电影| 欧美日韩在线综合| 日韩国产在线一| 精品成人一区二区三区| 成人中文字幕在线| 亚洲自拍偷拍av| 日韩精品一区二区三区蜜臀| 国产福利不卡视频| 亚洲乱码国产乱码精品精的特点| 欧美亚洲高清一区| 日本在线播放一区二区三区| 国产欧美一二三区| 欧美天堂亚洲电影院在线播放| 免费国产亚洲视频| 国产精品久久久久久福利一牛影视 | 国产精品嫩草99a| 欧美日韩三级一区| 激情小说亚洲一区| 伊人一区二区三区| 精品少妇一区二区三区日产乱码 | 日韩女优av电影在线观看| 成人av网站大全| 日韩成人av影视| 亚洲国产成人一区二区三区| 99久久免费精品高清特色大片| 秋霞av亚洲一区二区三| 国产精品丝袜在线| 日韩欧美成人激情| 日本大香伊一区二区三区| 精品一区二区三区久久| 亚洲视频图片小说| 久久只精品国产| 7799精品视频| 在线亚洲+欧美+日本专区| 国产99久久久国产精品潘金网站| 亚洲一级二级在线| 亚洲欧美另类在线| 国产精品狼人久久影院观看方式| 欧美精品日韩综合在线| 99国产一区二区三精品乱码| 国内国产精品久久| 奇米色777欧美一区二区| 韩国v欧美v亚洲v日本v| 亚洲午夜电影网| 亚洲美女免费在线| 中文字幕精品一区二区精品绿巨人 | 国产福利电影一区二区三区| 日本大胆欧美人术艺术动态 | 26uuuu精品一区二区| 欧美日本在线视频| 一本久道久久综合中文字幕| 国产成人午夜视频| 国内国产精品久久| 国产综合色在线视频区| 久久99精品国产.久久久久久| 日本中文字幕一区二区视频| 视频一区欧美精品| 午夜婷婷国产麻豆精品| 悠悠色在线精品| 亚洲一区二区三区在线| 亚洲黄色片在线观看| 亚洲人成7777| 狠狠色狠狠色综合系列| 韩国精品一区二区| 国产精品一区二区三区网站| 国产电影精品久久禁18| 国产成人在线免费| 99re视频精品| 91农村精品一区二区在线| 一本高清dvd不卡在线观看| 91久久国产最好的精华液| 在线观看欧美黄色| 91精品国产色综合久久不卡电影| 欧美精选在线播放| 日韩精品一区二区三区视频播放 | 亚洲欧美激情视频在线观看一区二区三区| 国产精品沙发午睡系列990531| 国产精品视频在线看| 中文字幕一区二区三区在线播放 | 欧美午夜精品免费| 欧美一区二区人人喊爽| 久久女同互慰一区二区三区| 久久精品男人的天堂| 自拍偷拍国产亚洲| 亚洲一级片在线观看| 久久69国产一区二区蜜臀| 国产ts人妖一区二区| 色94色欧美sute亚洲线路一久| 欧美私人免费视频| 欧美成人乱码一区二区三区| 久久久精品一品道一区| 亚洲男人的天堂在线aⅴ视频| 偷偷要91色婷婷| 不卡一区在线观看| 欧美日韩国产电影| 欧美激情一区二区三区不卡 | 久久99精品国产91久久来源| 丁香六月综合激情| 69久久99精品久久久久婷婷| 国产日韩欧美一区二区三区乱码 | 日韩欧美色综合| 亚洲视频在线一区二区| 美女网站色91| 91国偷自产一区二区使用方法| 日韩美一区二区三区| 一区二区三区产品免费精品久久75| 麻豆精品精品国产自在97香蕉| 91天堂素人约啪| 久久久精品欧美丰满| 日韩主播视频在线|