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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? drive.h

?? WINDOWSCE4.2 ARM PXA255 SDMMC驅(qū)動程序源代碼
?? H
字號:
//
// 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: drive.h  -  Controller structure information
*
* SanDisk Host Developer's Toolkit
*
* Copyright (c) 1997 - 1998 SanDisk Corporation
* All rights reserved.
* This code may not be redistributed in source or linkable object form
* without the consent of its author.
*
* Description:
*       Portable Peripheral Bus Interface Device driver.
*
******************************************************************************/

#ifndef _DRIVE_H_

#include "sdtypes.h"
#include "sdconfig.h"


#ifdef __cplusplus
extern "C" {
#endif



/* NOT intended to be CHANGED by user */
#define USE_PREERASE_SECTORS    (PREERASE_ON_DELETE|PREERASE_ON_ALLOC|PREERASE_ON_FORMAT)


/* Don't allow more then 128 blocks (64K) for fear of a segment wrap. */
#define MAX_BLOCKS  128


/* Device features */
#define LBA_YES         YES     /* supported LBA mode only */
#define LBA_NO          NO      /* Not supported LBA mode */
#define SDSET_WIDE_BUS  0x02    /* Wide bus supported */


/* Current active device flag */
#define DRV_ACTIVE      0x8000

/* First drive */
#define FIRST_DRIVE     0

#define  N_INTERFACES  N_CONTROLLERS

/* Internal READ, WRITE, ERASE Command operations */
#define READING 1
#define WRITING 2
#define ERASING 3


/* drive_control structure - We use this abstraction to manage the driver. 
    Structure contents:
        .  drive description. logical drive structure (heads/secptrak/secpcyl)
        .  virtual registers: These aren't (can't be) mapped onto the
        the controller but we use virtual representation on the
        register file to drive the system.
        .  virtual output register file (to drive) - We load the registers
        and then ask lower level code to send the command block to the 
        controller.
        .  virtual input register file (from drive) - We offload the register
        file from the drive into these fields after a command complete.
        Note: We only offload the whole register file in certain cases.
            The status register is always offloaded. 
*/

/* The control structure contains one of these per drive [2]. We set this
    up at init time after issueing SET_PARAMS. The values are used to convert
    block number to track:head:sector
*/
typedef struct drive_desc
{
    ULONG       total_lba;
    UINT16      num_heads;
    UINT16      sec_p_track;
    UINT16      num_cylinders;
    UINT16      block_size;
        UINT16      features;           /* BIT0 = LBA, BIT1 = Wide bus */
#if (USE_TRUE_IDE || USE_PCMCIA)
    UINT16      max_multiple;
#else
        UINT16      RCA;                /* Relative card address */
        UINT32      drv_type;           /* Card type - SPI, MMC, SD etc. */
 #if (USE_SD)
        UINT32      securedAreaSize;
        UINT16      securityDrv;
        UINT16      busWidth;
        UINT16      erasedSize;
 #endif
#endif
} DRIVE_DESC, *PDRIVE_DESC;


typedef struct drive_control
{
    /* Geometry of the drives */
    PDRIVE_DESC drive;
    USERADDRESS user_address;/* Pointer address of the user's buffer */

    /* Address of the controller in memory or IO mode */
#if (USE_MEMMODE)
    FPTR    register_file_address;
#else
    UINT16 register_file_address;
#endif
    SDBOOL command_complete;  /* Set when operation is complete */
    UINT16 opencount;
    INT16 interrupt_number; /* -1 if not being used */
    COUNT controller_number;

    UINT16 error_code;      /* Set if an error occured - This is 
                   the error reported to the user.
                */
    UINT16 timer;           /* Command fails if this much time elapsed */
    UINT16 block_size;      /* Block size for read/write multiple cmds */
    UCOUNT sectors_remaining;/* Sectors remaining for read/write mult */
    INT16 drive_active;     /* Current active drive */
        UINT16 mode;            /* Single or multiple transfer */
        UINT16 currentState;    /* Current MMC state */
        UINT16 mmcRdyState;     /* Card BUSY/READY state */
    UINT16 tempData;
        UINT16 LastResponse[8]; /* Response data */
        UINT32 mmcStatus;       /* Card status */
} DEVICE_CONTROLLER, *PDEVICE_CONTROLLER;



/* INTERFACE_DATA_STRUCT is defined in IOCONST.C */
/* This flag is needed for some compilers to avoid seeing the following
*  declarations as redefinition.
*/
#ifndef INTERFACE_DATA_STRUCT

/* Allocate space for controllers in the system */
#if (N_INTERFACES)
/* Device control structure information */
 SDIMPORT DEVICE_CONTROLLER controller_s[N_INTERFACES];
 SDIMPORT INT16 drvs_per_controller[N_INTERFACES];
 SDIMPORT UCHAR *drive_ptr[N_INTERFACES];
#endif


/* Allocate space for devices connecting to the first controller */
#if (DRIVES_PER_CONTROLLER1 > 0)
SDIMPORT DRIVE_DESC ddrive1[DRIVES_PER_CONTROLLER1];
#endif


/* Allocate space for devices connecting to the second controller */
#if (DRIVES_PER_CONTROLLER2 > 0)
SDIMPORT DRIVE_DESC ddrive2[DRIVES_PER_CONTROLLER2];
#endif


#if (USE_MEMMODE)
SDIMPORT const ULONG mem_mapped_addresses[N_INTERFACES]; 
SDIMPORT const FPTR mem_mapped_addresses_pointer[N_INTERFACES];
#else
SDIMPORT const UINT16 io_mapped_addresses[N_INTERFACES];
#endif

#if (USE_INTERRUPTS)
SDIMPORT const INT16 dev_interrupts[N_INTERFACES];
#endif

#endif  /* INTERFACE_DATA_STRUCT */

UINT16 multipleRdWr;

/* For multiple controllers */
#if (N_INTERFACES > 1)
INT16 drno_to_controller_no(INT16 driveno);
PDEVICE_CONTROLLER drno_to_controller(INT16 driveno);
INT16 drno_to_phys(INT16 driveno);
INT16 get_controller_number(INT16 driveno);
/* INT16 controller_to_drvno(INT16 controllerno); */
#endif

/* Controller structure Initialization */
SDVOID clear_controller_structure(SDVOID);


#if (USE_FILE_SYSTEM)
SDVOID system_controller_init(INT16 driveno);
SDVOID system_controller_close(INT16 driveno);

SDIMPORT UINT16 *lock_temporary_buffer(SDVOID);
SDIMPORT SDVOID release_temporary_buffer(SDVOID);
#endif



#ifdef __cplusplus
}
#endif


#define _DRIVE_H_

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久www免费人成看片高清| 亚洲国产精品t66y| 日本女人一区二区三区| 久久久久久久久免费| 在线观看成人免费视频| 久久久综合激的五月天| 国产麻豆一精品一av一免费| 国产精品久久久99| 欧美三级日韩三级国产三级| 午夜欧美大尺度福利影院在线看| 亚洲精品在线观看视频| 欧美午夜精品久久久| 激情欧美一区二区三区在线观看| 国产精品成人免费在线| 久久综合久久久久88| 在线免费av一区| 国产精品亚洲一区二区三区在线| 午夜久久久影院| 中文字幕在线免费不卡| 日韩免费视频一区二区| 欧洲在线/亚洲| 不卡的av中国片| 国产精品18久久久久久久网站| 国产高清久久久久| 日本91福利区| 丝袜美腿亚洲一区二区图片| 亚洲丝袜自拍清纯另类| 国产精品午夜免费| 精品少妇一区二区三区免费观看| 欧美日韩免费一区二区三区| 欧美主播一区二区三区美女| 国产美女精品一区二区三区| 久久99精品久久久| 国产美女一区二区| 成人永久免费视频| 成人高清免费观看| 91玉足脚交白嫩脚丫在线播放| 色婷婷久久久亚洲一区二区三区| 99久久国产免费看| 欧美日韩久久久一区| 国产在线精品一区二区三区不卡 | 67194成人在线观看| 在线视频你懂得一区| 欧美日韩在线观看一区二区 | 欧美视频在线观看一区| 亚洲日本韩国一区| 午夜精品免费在线| 捆绑变态av一区二区三区| 韩国欧美国产一区| 色综合天天综合网天天狠天天| 7777精品伊人久久久大香线蕉| 欧美人妇做爰xxxⅹ性高电影| 精品成人一区二区三区四区| 国产精品电影院| 天天综合网天天综合色| 国产精品系列在线播放| av在线播放一区二区三区| 欧美美女黄视频| 国产精品视频观看| 日韩精品亚洲一区| 99久久久精品免费观看国产蜜| 欧美亚洲高清一区二区三区不卡| 日韩精品中文字幕一区二区三区| 亚洲色图.com| 国产成人精品三级| 日韩精品专区在线| 国产传媒一区在线| 欧美日韩在线三区| 亚洲成av人片观看| 亚洲成人av中文| 国产高清亚洲一区| 久久这里只有精品6| 亚洲国产精品天堂| 欧美在线不卡视频| 久久精品这里都是精品| 精品一区二区三区免费观看| 欧美一区二区三区免费大片| 中文字幕一区在线观看| 国产91丝袜在线18| 日韩免费看网站| 免费视频最近日韩| 欧美一区二区三区在线观看| 中文字幕一区二区在线播放| 成人一区二区三区中文字幕| 国产亚洲婷婷免费| 国产大陆a不卡| 久久久亚洲精品石原莉奈| 狠狠色丁香久久婷婷综合_中| 91超碰这里只有精品国产| 免费成人你懂的| 欧美精品一区二区三区在线 | 亚洲bt欧美bt精品| 欧美裸体一区二区三区| 久草这里只有精品视频| 久久―日本道色综合久久| 国产精品18久久久久久久网站| 精品国偷自产国产一区| 蜜桃久久久久久| 中文字幕第一区第二区| 91国产免费观看| 蜜臀av一区二区在线观看| 国产精品嫩草久久久久| 欧美日韩高清一区二区不卡 | 99久久精品国产毛片| 欧美三区在线观看| 亚洲国产成人av好男人在线观看| 欧美精品一二三四| 婷婷六月综合亚洲| 亚洲欧美在线高清| 日韩欧美你懂的| 97精品电影院| 亚洲高清免费视频| 国产精品欧美一区喷水| 欧美日本在线观看| 91老师国产黑色丝袜在线| 麻豆91在线播放| 亚洲成a人v欧美综合天堂 | 国产精品天美传媒沈樵| 欧美一级日韩免费不卡| 欧美日韩国产一级| 色吊一区二区三区| 99久久免费视频.com| 国产在线国偷精品免费看| 亚洲va中文字幕| 亚洲二区视频在线| 一区二区三区**美女毛片| 中文字幕字幕中文在线中不卡视频| 精品对白一区国产伦| 欧美r级在线观看| 2017欧美狠狠色| 欧美精品一区二区三区蜜桃 | 色猫猫国产区一区二在线视频| 粉嫩av一区二区三区粉嫩| 国产精品一级在线| 成人一级视频在线观看| a美女胸又www黄视频久久| gogogo免费视频观看亚洲一| jizz一区二区| 欧美午夜精品一区二区三区| 欧美日韩一卡二卡| 日韩久久久精品| 国产亚洲1区2区3区| 亚洲精品久久久蜜桃| 午夜久久电影网| 国产精品一二一区| 色999日韩国产欧美一区二区| 精品视频在线视频| 久久免费视频色| 伊人性伊人情综合网| 日本 国产 欧美色综合| 欧洲人成人精品| 久久综合五月天婷婷伊人| 免费黄网站欧美| 日韩西西人体444www| 麻豆一区二区在线| 精品乱人伦小说| 蜜桃视频在线观看一区| 91在线观看视频| 一区二区三区成人在线视频| 色94色欧美sute亚洲线路一久| 亚洲综合色丁香婷婷六月图片| 欧美日韩中文字幕一区| 蜜桃91丨九色丨蝌蚪91桃色| 久久综合九色综合97婷婷 | 成人av免费网站| 亚洲精品成人悠悠色影视| 欧美日韩免费不卡视频一区二区三区| 亚洲五码中文字幕| 日韩免费观看2025年上映的电影| 精品一区二区在线观看| 国产精品色在线观看| 欧美三级日韩在线| 国产一区二区在线观看视频| 亚洲欧洲精品一区二区三区| 欧美视频一二三区| 国产一区二区不卡老阿姨| 国产精品成人网| 精品久久久久久久久久久久包黑料 | 亚洲成人在线网站| 久久女同性恋中文字幕| 欧美日韩大陆一区二区| 国产精品18久久久久久久久| 午夜视频一区在线观看| 欧美国产精品中文字幕| 日韩欧美精品在线视频| 91免费小视频| 国产精品99久久久久久久vr| 午夜视频在线观看一区二区三区| 国产片一区二区三区| 日韩欧美中文一区| 91高清视频免费看| www.成人网.com| 国产精品白丝jk白祙喷水网站| 日韩中文字幕亚洲一区二区va在线 | 国产成人欧美日韩在线电影| 青青草一区二区三区| 亚洲国产精品尤物yw在线观看| 中文字幕在线播放不卡一区| 久久久久国产精品人| 精品国产乱码久久久久久牛牛|