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

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

?? sdapi.h

?? WINDOWSCE4.2 ARM PXA255 SDMMC驅動程序源代碼
?? H
?? 第 1 頁 / 共 3 頁
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
/*****************************************************************************
* Filename: SDAPI.H - Defines & structures for HDTK API
*                     
* SanDisk Host Developer's Toolkit
*
* Copyright (c) 1996-2000 SanDisk Corporation
* Copyright EBS Inc. 1996
* All rights reserved.
* This code may not be redistributed in source or linkable object form
* without the consent of its author.
*
* Description: 
*       Provide FILE SYSTEM API as well as INTERFACE API to different
*       SANDISK products such as ATA PC Cards, CF, SPI, MMC, so on....
*
*       The API provides the initial state, transaction state,
*       device status andclosing state for IDE or PCMCIA, SPI and 
*       MMC controllers.
*
*****************************************************************************/

#ifndef __SDAPI_H__

#ifdef __cplusplus
extern "C" {
#endif


/* HDTK Version */
#define HDTK_MAJOR      4
#define HDTK_MINOR      00


#define HDTK_VERSION    ((HDTK_MAJOR << 8) + HDTK_MINOR)


/* Type Definitions of HDTK */
#include "sdtypes.h"

/* Include development environment settings */
#include "sdconfig.h"

/* Include kernel specific definitions */
#include "pckernel.h"


/* Error codes */

#define PCERR_FAT_FLUSH         0  /* Cant flush FAT */
#define PCERR_INITMEDI          1  /* Not a DOS disk */
#define PCERR_INITDRNO          2  /* Invalid driveno */
#define PCERR_INITCORE          3  /* Out of core */
#define PCERR_INITDEV           4  /* Can't initialize device */
#define PCERR_INITREAD          5  /* Can't read block 0 */
#define PCERR_INITWRITE         6  /* Can't write block 0 */
#define PCERR_BLOCKCLAIM        7  /* PANIC: Buffer Claim */
#define PCERR_BLOCKLOCK         8  /* Warning: freeing a locked buffer */
#define PCERR_REMINODE          9  /* Trying to remove inode with open > 1 */
#define PCERR_FATREAD           10  /* IO Error While Failed Reading FAT */
#define PCERR_DROBJALLOC        11 /* Memory Failure: Out of DROBJ Structures */
#define PCERR_FINODEALLOC       12 /* Memory Failure: Out of FINODE Structures */



/*********************** CRITICAL_ERROR_HANDLER ******************************/
/* Arguments to critical_error_handler() */
#define CRERR_BAD_FORMAT        301
#define CRERR_NO_CARD           302
#define CRERR_BAD_CARD          303
#define CRERR_CHANGED_CARD      304
#define CRERR_CARD_FAILURE      305
#define CRERR_ID_ERROR          306
#define CRERR_ECC_ERROR         307


/* Return code from critical_error_handler() */
#define CRITICAL_ERROR_ABORT    1
#define CRITICAL_ERROR_RETRY    2
#define CRITICAL_ERROR_FORMAT   3
#define CRITICAL_ERROR_CLEARECC 4



/* Drive geometry structure */
typedef struct drv_geometry_desc
{
    UINT32  totalLBA;       /* Total drive logical blocks */
    UINT16  dfltCyl;        /* Number of cylinders */
    UINT16  dfltHd;         /* Number of Heads */
    UINT16  dfltSct;        /* Sectors per track */
    UINT16  dfltBytesPerSect; /* Bytes per sector */
    UCHAR   serialNum[16];  /* Drive serial number in ASCII mode */
    UCHAR   modelNum[32];   /* Drive model number in ASCII mode */
} DRV_GEOMETRY_DESC, *PDRV_GEOMETRY_DESC;


#if (USE_FILE_SYSTEM)

/* Maximum path length. */
#define EMAXPATH        256


/* Date stamp structure */
typedef struct datestr {
    UINT16 date;            /* Current Date */
    UINT16 time;            /* Current time */
} DATESTR;


/* Structure for user to do recursive search for files in a selected drive */
typedef struct dstat {
    TEXT    fname[10];      /* Null terminated file and extension */
    TEXT    fext[4];
    UINT16  fattribute;     /* File attributes */
    UINT16  ftime;          /* Time & Date last modified. See date */
    UINT16  fdate;          /* and time handlers for getting info */
    ULONG   fsize;          /* File size */
    INT16   driveno;
    TEXT    pname[10];      /* Pattern. */
    TEXT    pext[4];
    TEXT    path[EMAXPATH];
    TEXT    longFileName[EMAXPATH];
} DSTAT;

#endif /* (USE_FILE_SYSTEM) */


/* OEM platform specific */
#include "oem.h"


#if (USE_SECURITY)
#include "ssmapi.h"

/* Security structure */
typedef struct _ssmservice {

    UINT16 driveno;             /* Drive number */
    UINT16 cmd_category;        /* 0=security, 1=sec file system */
    UINT16 ssm_cmd;             /* CMD operation code */
    UINT16 ret_status;          /* Status of the request */
    void  *call_back_addrs;     /* For future call back security implementation*/

    union _ssmargs {            /* Request's information */

#if (USE_FILE_SYSTEM)
    struct _openargs {
        PCFD   file_handle;             /* Returned file handle*/
        TEXT * filespec;                /* Pointer to path\file */
        UINT16 open_flags;              /* (e.g., PO_RDWR, etc. see HDTK docs)*/
        UINT16 open_mode;               /* (e.g., FS_IREAD, etc. see HDTK docs)*/
    } myopenfs;

    struct _closeargs {
        PCFD   cfile_handle;            /* Handle of file to close*/
    } myclosefs;                            

    struct _readargs {
        PCFD rfile_desc;                /* Handle obtained from po_open */
        UCHAR * read_buf;               /* Ptr to buffer which will hold returned data*/
        UCOUNT read_count;              /* Will attempt to read this specified amount*/
        UCOUNT ret_read_count;          /* Returned actual number was able to read*/
    } myrdfs; 

    struct _writeargs {
        PCFD wfile_desc;                /* Handle obtained from po_open */
        UCHAR * write_buf;              /* Ptr to buffer that contains data to write*/
        UCOUNT write_count;             /* Write this number of bytes*/
    } mywrfs; 

                        /* Used for creating and removing dirs*/
    struct _dirargs {                        /* Also use for set and get current dir*/
        TEXT * dir_name;                /* Directory name*/
    } mydirfs; 


    struct _lseekargs {                      /* Used for lseek*/
        PCFD lsfile_handle;             /* File handle of open file*/
        ULONG lsoffset;                 /* Offset within file to lseek to*/
        UINT16 lsmethod;                /* Method from (begin, current, or end)*/
        INT16  lerr_flag;               /* lseek error flags returned */
    } myseekfs; 

    struct _findfileargs {                   /* Used for find first dir entry*/
        DSTAT * dir_stat;               /* HDTK status struc */
        TEXT * dir_pattern;             /* Name or pattern to search for*/
    } myffilefs; 

    struct _getattrib {                      /* Used for get file attribute*/
        TEXT * agfile_path;             /* Path\name for file */
        UCHAR * attrib_ret;             /* Address of where to return attribute*/
    } mygetattrfs; 

    struct _setattrib {                      /* Used for set file attribute*/
        TEXT * asfile_path;             /* Path\name for file */
        UCHAR  file_attrib;             /* Attribute to apply to file */
    } mysetattrfs; 


    struct _delfile {                        /* Used for deleting files */
        TEXT * del_file_path;           /* Path\name of file to be deleted*/
    } mydelfs; 

    struct _renamefile {                     /* Used for renaming files */
        TEXT * rename_file_path;        /* Path\name of file to be renamed*/
        TEXT * new_name;                /* New name for file */
    } myrenfs; 

    struct _miscfile {                      /* Misc. */
        UCHAR   *buffer;                /* Data buffer */
        UINT32  lba;
        UINT16  noBlks;
    } mymiscfs;
#endif

#if (USE_SECURITY)
    struct secure_if {
        UCHAR   *sec_inbuf;             /* Data buffer for data to be encyrpted or decrypted */
        UCHAR   *sec_outbuf;            /* Buffer that will hold encyrpted or decrypted data */
        UINT32  lba;
        UINT16  sec_size;
    } mysecif;
#endif
    } ssinfo;  /* arg union */

#if (USE_SECURITY)
        UCHAR   SecCmd[8];              /* argument of secure command stuffed here */
#endif

} SSMSERVE;

/* Function prototype */
SDVOID ssmentry(SSMSERVE *reqPacket);

#endif /* (USE_SECURITY) */


#ifndef copybuff
SDVOID copybuff(SDVOID *vto, SDVOID *vfrom, INT16 size);
#endif

#ifndef compbuff
INT16 compbuff(SDVOID *vfrom, SDVOID *vto, INT16 size);
#endif

#ifndef pc_memfill
SDVOID pc_memfill(SDVOID *vto, INT16 size, UTINY c);
#endif

#ifndef pc_strcat
SDVOID pc_strcat(TEXT *to, TEXT *from);
#endif


#if (CHAR_16BIT)
SDVOID b_unpack(UTINY *to, UINT16 *from, UINT16 length, UINT16 offset);
#endif

/* Byte ordering conversion */
UINT16 to_WORD(UCHAR *buf);
ULONG to_DWORD(UCHAR *buf);
SDVOID fr_WORD ( UCHAR *to, UINT16 from );
SDVOID fr_DWORD ( UCHAR *to, UINT32 from );


UINT16 swap_hi_low_byte(UINT16 inword);


/****************************************************************************/
/************************** MEMORY or I/O ACCESS ****************************/
/****************************************************************************/

#if (USE_MEMMODE)

    /* Read/Write register access */ 
    #define SDREAD_DATA32(X)        *((FPTR32) (X))
    #define SDREAD_DATA16(X)        *((FPTR16) (X))   
    #define SDREAD_DATA08(X)        *((FPTR08) (X))

    #define SDWRITE_DATA32(X, Y)    (*((FPTR32) (X)) = (UINT32)(Y))
    #define SDWRITE_DATA16(X, Y)    (*((FPTR16) (X)) = (UINT16)(Y))
    #define SDWRITE_DATA08(X, Y)    (*((FPTR08) (X)) = (UINT08)(Y))

#else   /* I/O MODE */

    /* 8-bit interface */

    #define SDREAD_DATA08(X) (inpbyte((UINT32) (X) ))
    #define SDWRITE_DATA08(X,Y) outpbyte((UINT32)(X), (UINT16(Y))

   #if (WORD_ACCESS_ONLY)  /* 16-bit interface */

    #define SDREAD_DATA16(X) (inpword((UINT32) (X) ))
    #define SDWRITE_DATA16(X,Y) outpword((UINT32)(X), (UINT16)(Y))

   #endif


#endif  /* USE_MEMMODE */



/*****************************************************************************
* Name: pc_get_error
*
* Description
*       Get error code
*
* Entries:
*    if (USE_FILE_SYSTEM)
*       INT16  taskno     task number
*    else #(!USE_FILE_SYSTEM)
*       INT16  driveno    drive number
* Returns:
*    if (USE_FILE_SYSTEM)
*    {
*          0  No Error
*       otherwise, one of the following error code:
*           PEBADF          9    Invalid file descriptor
*           PENOENT         2    File not found or path to file not found
*           PEMFILE         24   No file descriptors available (too many files open)
*           PEEXIST         17   Exclusive access requested but file already exists.
*           PEACCES         13   Attempt to open a read only file or a special (directory)
*           PEINVAL         22   Seek to negative file pointer attempted.
*           PENOSPC         28   Write failed. Presumably because of no space
*           PESHARE         30   Open failed do to sharing
*           PEDEVICE        31   No Valid Disk Present
*    }
*    else #(!USE_FILE_SYSTEM)
*    {
*
*           0  No Error
*       otherwise, one of the following error code in controller_s:
*           BUS_ERC_DIAG     1   Drive diagnostic failed in initialize
*           BUS_ERC_ARGS     2   User supplied invalid arguments
*           BUS_ERC_DRQ      3   DRQ should be asserted but it isn't
*                                  or driver and controller are out of phase
*           BUS_ERC_TIMEOUT  4   Timeout during some operation 
*           BUS_ERC_STATUS   5   Controller reported an error
*                                  look in the error register
*    }
*
******************************************************************************/
INT16 pc_get_error (INT16 driveno_or_taskno);


INT16 pc_get_extended_error (INT16 driveno);



/****************************************************************************/
/**************************** FILE SYSTEM API *******************************/
/****************************************************************************/

#if (USE_FILE_SYSTEM)

#define PCDELETE (UTINY)0xE5    /* MS-DOS file deleted char */

#define ARDONLY         0x01    /* MS-DOS File attributes */
#define AHIDDEN         0x02
#define ASYSTEM         0x04
#define AVOLUME         0x08 
#define ADIRENT         0x10
#define ARCHIVE         0x20
#define ANORMAL         0x00
#define CHICAGO_EXT     0x0F    /* Chicago extended filename attribute */


/* 
** Structure for use by with file statistic.
** Portions of this structure and the macros were lifted from BSD sources.
** See the RTFS ANSI library for BSD terms & conditions. 
*/
typedef struct stat
{
    ULONG   st_mode;        /* (see S_xxxx below) */
    ULONG   st_size;        /* file size, in bytes */
        INT32   st_blksize;     /* optimal blocksize for I/O (cluster size) */
        INT32   st_blocks;      /* blocks allocated for file */
    DATESTR st_atime;       /* last access (all times are the same) */
    DATESTR st_mtime;       /* last modification */
    DATESTR st_ctime;       /* last file status change */
    INT16   st_dev;         /* (drive number, rtfs) */
    INT16   st_ino;         /* inode number (0) */
    INT16   st_nlink;       /* (always 1) */
    INT16   st_rdev;        /* (drive number, rtfs) */
    UINT16  fattribute;     /* File attributes - DOS attributes
                   (non standard but useful)
                */
    UINT16  padding;     
} STAT;


/* Values for the st_mode field */
#define S_IFMT   0170000        /* type of file mask */
#define S_IFCHR  0020000        /* character special (unused) */
#define S_IFDIR  0040000        /* directory */
#define S_IFBLK  0060000        /* block special  (unused) */
#define S_IFREG  0100000        /* regular */
#define S_IWRITE 0000400        /* Write permitted  */
#define S_IREAD  0000200        /* Read permitted. (Always true anyway)*/

#define DEFFILEMODE (S_IREAD|S_IWRITE)
#define S_ISDIR(m)  ((m & 0170000) == 0040000) /* directory */
#define S_ISCHR(m)  ((m & 0170000) == 0020000) /* char special */
#define S_ISBLK(m)  ((m & 0170000) == 0060000) /* block special */
#define S_ISREG(m)  ((m & 0170000) == 0100000) /* regular file */
#define S_ISFIFO(m) ((m & 0170000) == 0010000) /* fifo */



/* File creation permissions for open */
/* Note: OCTAL */
#define PS_IWRITE       0000400 /* Write permitted  */
#define PS_IREAD        0000200 /* Read permitted. (Always true anyway) */


/* File access flags */
#define PO_RDONLY       0x0000 /* Open for read only */
#define PO_WRONLY       0x0001 /* Open for write only */
#define PO_RDWR         0x0002 /* Read/write access allowed. */
#define PO_APPEND       0x0008 /* Seek to eof on each write */
#define PO_CREAT        0x0100 /* Create the file if it does not exist. */
#define PO_TRUNC        0x0200 /* Truncate the file if it already exists */
#define PO_EXCL         0x0400 /* Fail if creating and already exists */
#define PO_TEXT         0x4000 /* Ignored */
#define PO_BINARY       0x8000 /* Ignored. All file access is binary */
#define PO_NOSHAREANY   0x0004 /* Wants this open to fail if already open.
                    Other opens will fail while this open
                    is active
                   */
#define PO_NOSHAREWRITE 0x0800 /* Wants this opens to fail if already open
                  for write. Other open for write calls 
                  will fail while this open is active.
                   */

/* Arguments to extend file */
#define PC_FIRST_FIT    1
#define PC_BEST_FIT     2
#define PC_WORST_FIT    3



/* Errno values */
#define PEBADF          9       /* Invalid file descriptor */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产大陆a不卡| 欧美精品乱码久久久久久| 国产欧美精品一区二区色综合| 麻豆一区二区99久久久久| 91精品国产综合久久久久久久久久 | 精品播放一区二区| 激情综合色综合久久综合| www激情久久| 高潮精品一区videoshd| 亚洲免费成人av| 欧美日韩不卡视频| 国产一本一道久久香蕉| 亚洲欧美一区二区视频| 在线播放/欧美激情| 激情文学综合网| 中文字幕日韩一区二区| 欧美嫩在线观看| 国产成人免费视频网站高清观看视频| 国产精品久久久久久久第一福利 | 国产电影一区在线| 中文字幕一区二区在线观看| 欧美日韩亚洲高清一区二区| 麻豆国产精品777777在线| 国产日韩欧美综合一区| 在线日韩一区二区| 国产一区不卡在线| 亚洲一区二区中文在线| 精品国产乱码久久久久久1区2区| 成人免费av在线| 亚洲午夜激情网站| 国产日韩视频一区二区三区| 欧美日本在线一区| 风流少妇一区二区| 日本成人在线一区| 亚洲色图制服诱惑| 亚洲精品一区二区三区精华液| 91丝袜国产在线播放| 久久99精品久久久久婷婷| 一区二区三区国产| 久久久午夜电影| 欧美日韩一本到| 99精品在线免费| 激情五月婷婷综合| 午夜电影一区二区三区| 1024成人网| 国产日韩精品一区二区三区| 在线不卡免费av| 色婷婷激情综合| 国产91精品入口| 六月丁香综合在线视频| 亚洲国产精品久久艾草纯爱 | 欧美大片一区二区| 日本精品一区二区三区高清 | 欧洲国内综合视频| 丁香六月综合激情| 国产在线精品一区二区夜色| 天天亚洲美女在线视频| 亚洲精品美国一| 国产精品福利一区二区三区| 久久久久久久精| 精品少妇一区二区三区| 欧美一区二区大片| 欧美人与禽zozo性伦| 在线视频综合导航| 色噜噜夜夜夜综合网| 成人精品电影在线观看| 国内国产精品久久| 另类人妖一区二区av| 日韩高清一级片| 日韩综合小视频| 视频一区二区三区中文字幕| 亚洲宅男天堂在线观看无病毒| 亚洲免费资源在线播放| 亚洲人精品午夜| 亚洲人成亚洲人成在线观看图片| 国产精品国产三级国产aⅴ中文| 国产欧美一区二区精品婷婷| 久久久久88色偷偷免费| 国产午夜精品在线观看| 国产欧美日韩另类视频免费观看| 久久久久久久久久久黄色| 久久免费看少妇高潮| 国产网红主播福利一区二区| 亚洲国产精品传媒在线观看| 欧美高清在线一区二区| 亚洲欧洲无码一区二区三区| 亚洲欧洲成人自拍| 亚洲精品一二三区| 亚洲bt欧美bt精品777| 日本中文字幕一区二区视频| 美女尤物国产一区| 国产裸体歌舞团一区二区| 成人午夜大片免费观看| 色综合久久综合中文综合网| 在线免费观看成人短视频| 欧美另类变人与禽xxxxx| 日韩精品中文字幕在线不卡尤物| 欧美r级在线观看| 国产精品久久毛片| 亚洲综合一区二区| 麻豆成人免费电影| 成人aa视频在线观看| 色噜噜狠狠一区二区三区果冻| 精品视频免费看| 欧美v亚洲v综合ⅴ国产v| 国产欧美一二三区| 中文字幕第一区| 欧美大片国产精品| 欧美激情中文字幕| 亚洲午夜精品网| 国产一区二区毛片| 国产欧美精品在线观看| 亚洲激情网站免费观看| 人妖欧美一区二区| 成人黄色大片在线观看| 欧美三级电影在线观看| 久久久久久久一区| 亚洲最快最全在线视频| 蜜臂av日日欢夜夜爽一区| 成人网在线免费视频| 在线观看91av| 国产精品久久久久影院色老大 | 一区二区高清免费观看影视大全| 亚洲午夜精品17c| 国产成人啪免费观看软件 | 国产一区在线观看视频| 成人动漫精品一区二区| 日韩亚洲欧美高清| 亚洲免费观看高清完整| 狠狠色丁香婷婷综合| 欧美色老头old∨ideo| 日本一区二区三区dvd视频在线| 亚洲va韩国va欧美va精品| 粉嫩蜜臀av国产精品网站| 91 com成人网| 亚洲激情图片一区| 成人app网站| 久久久久久久久久久电影| 奇米在线7777在线精品 | 视频一区在线播放| 91香蕉视频污在线| 国产欧美综合色| 久久99国产精品免费| 欧美性生活久久| 国产精品乱码一区二三区小蝌蚪| 欧美视频在线一区| 久久免费视频色| 色综合天天性综合| 这里只有精品免费| 亚洲精品亚洲人成人网在线播放| 看电影不卡的网站| 91精品国产91综合久久蜜臀| 一区二区高清免费观看影视大全| 99视频在线精品| 国产精品对白交换视频| 国产成人亚洲综合a∨婷婷图片| 欧美xxxxxxxx| 国产一区福利在线| 26uuu精品一区二区| 久久99国内精品| 欧美不卡在线视频| 蜜桃久久久久久久| 日韩一级完整毛片| 麻豆精品在线观看| 精品国产麻豆免费人成网站| 日韩成人免费电影| 欧美一级日韩一级| 久久机这里只有精品| 精品久久五月天| 国产麻豆精品在线| 国产日产欧美一区| 成人高清视频在线| 亚洲人快播电影网| 欧美视频中文字幕| 免费一级片91| 久久综合资源网| 国产成人一区在线| 专区另类欧美日韩| 在线一区二区三区四区五区| 亚洲一区二区不卡免费| 欧美人动与zoxxxx乱| 免费成人美女在线观看| 26uuu色噜噜精品一区二区| 国产99久久久国产精品免费看| 中文字幕乱码日本亚洲一区二区 | 精品国产露脸精彩对白| 国产一区在线精品| 成人免费在线播放视频| 欧美日韩一区二区欧美激情| 久久福利资源站| 国产精品美女视频| 欧美性色黄大片| 麻豆成人久久精品二区三区小说| 久久久精品天堂| 色综合天天综合网天天狠天天| 午夜久久久久久久久| 精品福利一二区| 色综合天天综合网天天狠天天| 青青国产91久久久久久| 国产午夜亚洲精品午夜鲁丝片|