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

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

?? ata.h

?? 用D12實現U盤的單片機程序
?? H
字號:
/*
////////////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1999-2003 PHILIPS Semiconductors - APIC
//
// Module Name:
//
//	ATA.h
//
// Abstract:
//
//     This module contains the structures and definitions for the ATAPI
//     IDE miniport driver.
//
// Author:
//
//     Hilbert Zhang ZhenYu
//
// Revision History:
//
//		Created  29 Apr. 1999
//
// Copyright @ 1999-2003, PHILIPS Semiconductors - APIC. All rights reserved.
//
*/

#ifndef __ATA_H
#define __ATA_H

#include "BasicTyp.h"

#define SECTOR_SIZE     512
#if(EP2_PACKET_SIZE == 8)
#define EP2PKTNUM_PER_SECTOR        64
#define BITNUM4EP2PKT_PER_SECTOR    6
#elif(EP2_PACKET_SIZE == 16)
#define EP2PKTNUM_PER_SECTOR        32
#define BITNUM4EP2PKT_PER_SECTOR    5
#elif(EP2_PACKET_SIZE == 32)
#define EP2PKTNUM_PER_SECTOR        16
#define BITNUM4EP2PKT_PER_SECTOR    4
#elif(EP2_PACKET_SIZE == 64)
#define EP2PKTNUM_PER_SECTOR        8
#define BITNUM4EP2PKT_PER_SECTOR    3
#endif


#define MULTI_BLOCK_1   1
#define MULTI_BLOCK_2   2
#define MULTI_BLOCK_4   4
#define MULTI_BLOCK_8   8
#define MULTI_BLOCK_16  16
#define MULTI_BLOCK_32  32
#define MULTI_BLOCK_64  64
#define MULTI_BLOCK_128 128
/*
//
// IDE register definition
//
*/
typedef struct _IDE_REGISTERS_1 {
	INT16 	Data;
	INT8 	BlockCount;
	INT8 	BlockNumber;
	INT8 	CylinderLow;
	INT8 	CylinderHigh;
	INT8 	DriveSelect;
	INT8 	Command;
} IDE_REGISTERS_1, *PIDE_REGISTERS_1;

typedef struct _IDE_REGISTERS_2 {
	INT8 AlternateStatus;
	INT8 DriveAddress;
} IDE_REGISTERS_2, *PIDE_REGISTERS_2;

typedef struct _IDE_REGISTERS_3 {
	INT32 Data;
	INT8 Others[4];
} IDE_REGISTERS_3, *PIDE_REGISTERS_3;


/*
// IDE command definitions
*/
#define IDE_COMMAND_ATAPI_RESET      0x08
#define IDE_COMMAND_RECALIBRATE      0x10
#define IDE_COMMAND_READ             0x20
#define IDE_COMMAND_WRITE            0x30
#define IDE_COMMAND_VERIFY           0x40
#define IDE_COMMAND_SEEK             0x70
#define IDE_COMMAND_EXEC_DIAGNOSE    0x90
#define IDE_COMMAND_SET_DRIVE_PARAMETERS 0x91
#define IDE_COMMAND_ATAPI_PACKET     0xA0
#define IDE_COMMAND_ATAPI_IDENTIFY   0xA1
#define IDE_COMMAND_READ_MULTIPLE    0xC4
#define IDE_COMMAND_WRITE_MULTIPLE   0xC5
#define IDE_COMMAND_SET_MULTIPLE     0xC6
#define IDE_COMMAND_READ_DMA         0xC8
#define IDE_COMMAND_WRITE_DMA             0xCA
#define IDE_COMMAND_GET_MEDIA_STATUS      0xDA
#define IDE_COMMAND_ENABLE_MEDIA_STATUS   0xEF
#define IDE_COMMAND_IDENTIFY              0xEC
#define IDE_COMMAND_MEDIA_EJECT           0xED

/*
// IDE status definitions
*/
#define IDE_STATUS_ERROR             0x01
#define IDE_STATUS_INDEX             0x02
#define IDE_STATUS_CORRECTED_ERROR   0x04
#define IDE_STATUS_DRQ               0x08
#define IDE_STATUS_DSC               0x10
#define IDE_STATUS_DRDY              0x40
#define IDE_STATUS_IDLE              0x50
#define IDE_STATUS_BUSY              0x80

/*
// IDE drive select/head definitions
*/
#define IDE_DRIVE_SELECT_1           0xA0
#define IDE_DRIVE_SELECT_2           0x10

/*
// IDE drive control definitions
*/
#define IDE_DC_DISABLE_INTERRUPTS    0x02
#define IDE_DC_RESET_CONTROLLER      0x04
#define IDE_DC_REENABLE_CONTROLLER   0x00

/*
// IDE error definitions
*/
#define IDE_ERROR_BAD_BLOCK          0x80
#define IDE_ERROR_DATA_ERROR         0x40
#define IDE_ERROR_MEDIA_CHANGE       0x20
#define IDE_ERROR_ID_NOT_FOUND       0x10
#define IDE_ERROR_MEDIA_CHANGE_REQ   0x08
#define IDE_ERROR_COMMAND_ABORTED    0x04
#define IDE_ERROR_END_OF_MEDIA       0x02
#define IDE_ERROR_ILLEGAL_LENGTH     0x01


/*
// ATAPI Register Files
*/


typedef struct _ATAPI_REGISTERS_1 {
	INT16 Data;
	INT8 InterruptReason;
	INT8 Unused1;
	INT8 ByteCountLow;
	INT8 ByteCountHigh;
	INT8 DriveSelect;
	INT8 Command;
} ATAPI_REGISTERS_1, *PATAPI_REGISTERS_1;

typedef struct _ATAPI_REGISTERS_2 {
	INT8 AlternateStatus;
	INT8 DriveAddress;
} ATAPI_REGISTERS_2, *PATAPI_REGISTERS_2;



/*
// ATAPI interrupt reasons
*/
#define ATAPI_IR_COD 0x01
#define ATAPI_IR_IO  0x02

/*
// ATAPI command definitions
*/
#define ATAPI_READ10       0x28
#define ATAPI_WRITE10      0x2A
#define ATAPI_MODE_SENSE   0x5A
#define ATAPI_MODE_SELECT  0x55
#define ATAPI_FORMAT_UNIT  0x24


/*
// ATAPI Command Descriptor Block
*/

typedef struct _READ_10 {
		INT8 OperationCode;
		INT8 Reserved1;
		INT8 LBA_3;
		INT8 LBA_2;
        INT8 LBA_1;
		INT8 LBA_0;
		INT8 Reserved2;
		INT8 XferLen_1;
		INT8 XferLen_0;
		INT8 Reserved3[3];
} READ_10, * PREAD_10;



typedef struct _WRITE_10 {
		INT8 OperationCode;
		INT8 Reserved1;
		INT8 LBA_3;
		INT8 LBA_2;
        INT8 LBA_1;
		INT8 LBA_0;
		INT8 Reserved2;
		INT8 XferLen_1;
		INT8 XferLen_0;
		INT8 Reserved3[3];
} WRITE_10, *PWRITE_10;

typedef struct _MODE_SENSE_10 {
		INT8 OperationCode;
		INT8 Reserved1;
		INT8 PageCode : 6;
		INT8 Pc : 2;
		INT8 Reserved2[4];
		INT8 ParameterListLengthMsb;
		INT8 ParameterListLengthLsb;
		INT8 Reserved3[3];
} MODE_SENSE_10, *PMODE_SENSE_10;

typedef struct _MODE_SELECT_10 {
		INT8 OperationCode;
		INT8 Reserved1 : 4;
		INT8 PFBit : 1;
		INT8 Reserved2 : 3;
		INT8 Reserved3[5];
		INT8 ParameterListLengthMsb;
		INT8 ParameterListLengthLsb;
		INT8 Reserved4[3];
} MODE_SELECT_10, *PMODE_SELECT_10;

typedef union _ATAPI_COMMAND_PACKET {

    READ_10         CmdRead10;
    WRITE_10        CmdWrite10;
    MODE_SELECT_10  CmdModeSel10;
    MODE_SENSE_10   CmdModeSen10;
} ATAPI_COMMAND_PACKET, * PATAPI_COMMAND_PACKET;

typedef struct _MODE_PARAMETER_HEADER_10 {
	INT8 ModeDataLengthMsb;
	INT8 ModeDataLengthLsb;
	INT8 MediumType;
	INT8 Reserved[5];
}MODE_PARAMETER_HEADER_10, *PMODE_PARAMETER_HEADER_10;

/*
// IDENTIFY data
*/
typedef struct _IDENTIFY_DATA {
	INT16 GeneralConfiguration;            // 00 00
	INT16 NumberOfCylinders;               // 02  1
	INT16 Reserved1;                       // 04  2
	INT16 NumberOfHeads;                   // 06  3
	INT16 UnformattedBytesPerTrack;        // 08  4
	INT16 UnformattedBytesPerSector;       // 0A  5
	INT16 SectorsPerTrack;                 // 0C  6
	INT16 VendorUnique1[3];                // 0E  7-9
	INT16 SerialNumber[10];                // 14  10-19
	INT16 BufferType;                      // 28  20
	INT16 BufferSectorSize;                // 2A  21
	INT16 NumberOfEccBytes;                // 2C  22
	INT16 FirmwareRevision[4];             // 2E  23-26
    INT16 ModelNumber[20];                 // 36  27-46
    INT16  MaximumBlockTransfer;            // 5E 47
	//INT8  VendorUnique2;                   // 5F
    INT16 DoubleWordIo;                    // 60  48
    INT16 Capabilities;                    // 62  49
    INT16 Reserved2;                       // 64  50
    INT8  VendorUnique3;                   // 66  51
    INT8  PioCycleTimingMode;              // 67
    INT8  VendorUnique4;                   // 68  52
    INT8  DmaCycleTimingMode;              // 69
    INT16 TranslationFieldsValid:1;        // 6A  53
    INT16 Reserved3:15;
    INT16 NumberOfCurrentCylinders;        // 6C  54
    INT16 NumberOfCurrentHeads;            // 6E  55
    INT16 CurrentSectorsPerTrack;          // 70  56
    INT32  CurrentSectorCapacity;           // 72  57-58
    INT16 CurrentMultiSectorSetting;       //     59
    INT32  UserAddressableSectors;          //     60-61
    INT16 SingleWordDMASupport : 8;        //     62
    INT16 SingleWordDMAActive : 8;
    INT16 MultiWordDMASupport : 8;         //     63
    INT16 MultiWordDMAActive : 8;
    INT16 AdvancedPIOModes : 8;            //     64
    INT16 Reserved4 : 8;
    INT16 MinimumMWXferCycleTime;          //     65
    INT16 RecommendedMWXferCycleTime;      //     66
	INT16 MinimumPIOCycleTime;             //     67
	INT16 MinimumPIOCycleTimeIORDY;        //     68
    INT16 Reserved5[2];                    //     69-70
    INT16 ReleaseTimeOverlapped;           //     71
    INT16 ReleaseTimeServiceCommand;       //     72
    INT16 MajorRevision;                   //     73
    INT16 MinorRevision;                   //     74
    INT16 Reserved6[50];                   //     75-126
    INT16 SpecialFunctionsEnabled;         //     127
    INT16 Reserved7[128];                  //     128-255
} IDENTIFY_DATA, *PIDENTIFY_DATA;

/*
// Identify data without the Reserved4.
*/
typedef struct _IDENTIFY_DATA2 {
    INT16 GeneralConfiguration;            // 00
    INT16 NumberOfCylinders;               // 02
//    INT16 Reserved1;                       // 04
    INT16 NumberOfHeads;                   // 06
//    INT16 UnformattedBytesPerTrack;        // 08
//    INT16 UnformattedBytesPerSector;       // 0A
    INT16 SectorsPerTrack;                 // 0C
//    INT16 VendorUnique1[3];                // 0E
//    INT16 SerialNumber[10];                // 14
//    INT16 BufferType;                      // 28
//    INT16 BufferSectorSize;                // 2A
//	INT16 NumberOfEccBytes;                // 2C
//    INT16 FirmwareRevision[4];             // 2E
//    INT16 ModelNumber[20];                 // 36
    INT16  MaximumBlockTransfer;            // 5E
//    INT8  VendorUnique2;                   // 5F
//    INT16 DoubleWordIo;                    // 60
    INT16 Capabilities;                    // 62
//    INT16 Reserved2;                       // 64
//    INT8  VendorUnique3;                   // 66
//	INT8  PioCycleTimingMode;              // 67
//    INT8  VendorUnique4;                   // 68
//    INT8  DmaCycleTimingMode;              // 69
//    INT16 TranslationFieldsValid:1;        // 6A
//    INT16 Reserved3:15;
    INT16 NumberOfCurrentCylinders;        // 6C
    INT16 NumberOfCurrentHeads;            // 6E
    INT16 CurrentSectorsPerTrack;          // 70
    FLEXI_INT32 CurrentSectorCapacity;           // 72
} IDENTIFY_DATA2, *PIDENTIFY_DATA2;

#define IDENTIFY_DATA_SIZE sizeof(IDENTIFY_DATA)

/*
// IDENTIFY capability bit definitions.
*/
#define IDENTIFY_CAPABILITIES_DMA_SUPPORTED 0x0100
#define IDENTIFY_CAPABILITIES_LBA_SUPPORTED 0x0200

/*
// IDENTIFY DMA timing cycle modes.
*/
#define IDENTIFY_DMA_CYCLES_MODE_0 0x00
#define IDENTIFY_DMA_CYCLES_MODE_1 0x01
#define IDENTIFY_DMA_CYCLES_MODE_2 0x02





#endif /* ATAPI_H */




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线免费| 成人av电影在线观看| 国产精品一卡二卡在线观看| 99精品视频在线免费观看| 国产亚洲人成网站| 午夜一区二区三区视频| 成人动漫一区二区在线| 日韩欧美国产一区二区在线播放| 亚洲二区视频在线| 国产精品1024| 日韩欧美国产小视频| 亚洲免费看黄网站| 成人av电影免费观看| 欧美v国产在线一区二区三区| 色香蕉成人二区免费| 久久久久久影视| 男女性色大片免费观看一区二区 | 日韩理论片网站| 免费视频一区二区| 91麻豆精品91久久久久同性| 国产精品美女久久久久久 | 在线不卡中文字幕播放| 亚洲精品国产视频| 一本大道久久精品懂色aⅴ| 国产欧美日韩不卡免费| 国产精品亚洲午夜一区二区三区| 国产福利一区二区三区视频| 欧美精品一区在线观看| 开心九九激情九九欧美日韩精美视频电影 | 日韩精品一区二区三区swag | 国产一区二区三区久久悠悠色av| 国产精品一二三在| 欧美成人免费网站| 日本欧美在线观看| 精品少妇一区二区三区日产乱码 | jizz一区二区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国产亚洲1区2区3区| 蜜桃久久精品一区二区| 精品欧美一区二区三区精品久久| 国产日韩欧美亚洲| 顶级嫩模精品视频在线看| 国产精品色在线| 91网页版在线| 一区二区三区四区在线免费观看| 蜜臀av一区二区三区| 欧美xxxxx裸体时装秀| 韩国av一区二区三区| 国产精品天干天干在线综合| 国产精品亚洲第一| 中文字幕一区在线观看视频| 91色视频在线| 五月天精品一区二区三区| 日韩亚洲欧美成人一区| 国产成人av自拍| 亚洲精品日韩一| 欧美一二三区在线| 处破女av一区二区| 亚洲一区二区三区中文字幕在线| 国产一区二区毛片| 亚洲女性喷水在线观看一区| 欧美丰满少妇xxxxx高潮对白| 中文字幕第一区二区| 色综合网色综合| 青青草97国产精品免费观看 | 一区二区三区资源| 欧美日韩一区三区| 国产精品一区二区久激情瑜伽| 欧美顶级少妇做爰| 国产乱色国产精品免费视频| 亚洲影院理伦片| 2023国产精华国产精品| 99riav一区二区三区| 免费在线一区观看| 日韩一区日韩二区| 26uuu国产日韩综合| 日本二三区不卡| 国产一区二区导航在线播放| 亚洲制服欧美中文字幕中文字幕| 91久久精品一区二区三区| 蜜桃视频一区二区三区在线观看 | 亚洲综合一二三区| 精品理论电影在线| 在线中文字幕不卡| 国产福利一区二区三区视频 | 91婷婷韩国欧美一区二区| 日韩不卡在线观看日韩不卡视频| 欧美艳星brazzers| 成人激情免费网站| 韩国女主播成人在线| 亚洲v中文字幕| 亚洲免费色视频| 久久精品一二三| 欧美一区二区免费观在线| 91精品办公室少妇高潮对白| 成人福利视频在线看| 国产一区在线观看麻豆| 免费在线一区观看| 三级一区在线视频先锋| 亚洲精品国产一区二区精华液 | 亚洲一级二级在线| 亚洲欧洲日产国码二区| 久久精品亚洲精品国产欧美kt∨| 成人精品视频一区二区三区尤物| 国产精品欧美极品| 国产亲近乱来精品视频| 337p日本欧洲亚洲大胆色噜噜| 国产在线精品免费av| 美日韩黄色大片| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品日韩成人av| 久久人人97超碰com| 久久久久久久综合| 国产亚洲精品免费| 国产蜜臀av在线一区二区三区| 色中色一区二区| 欧日韩精品视频| 欧美专区在线观看一区| 欧美色成人综合| 欧美日韩国产高清一区二区三区| 美女免费视频一区| 日韩av中文字幕一区二区三区| 国产亚洲一区字幕| 国产精品少妇自拍| 中文字幕在线免费不卡| 亚洲欧美另类在线| 一区二区三区在线视频观看58| 欧美电影免费观看高清完整版在线 | 亚洲国产精品久久不卡毛片| 亚洲一区二区三区四区的| 亚洲精品欧美综合四区| 亚洲第一久久影院| 久久精品国产亚洲高清剧情介绍| 国产精品久久久久一区| 日日夜夜一区二区| 久久99久久精品| 99在线精品一区二区三区| 欧美三级电影网| 日韩免费在线观看| 日韩理论片一区二区| 日本不卡123| 不卡一二三区首页| 911精品国产一区二区在线| 久久午夜色播影院免费高清 | 久久久久久97三级| 亚洲色图在线播放| 午夜婷婷国产麻豆精品| 美女爽到高潮91| 成人av动漫网站| 91精品视频网| 日韩美女久久久| 美女诱惑一区二区| 日本精品一区二区三区高清| 欧美草草影院在线视频| 亚洲男人天堂av| 久久精品国产色蜜蜜麻豆| 91老司机福利 在线| 日韩视频免费观看高清在线视频| 欧美性大战xxxxx久久久| 精品国产乱码久久久久久1区2区| 欧美日韩国产综合久久| 日本一区二区三区久久久久久久久不 | 欧美日韩一区久久| 久久久综合视频| 午夜精品在线看| 91亚洲精华国产精华精华液| 欧美本精品男人aⅴ天堂| 一区二区三区高清在线| 粉嫩aⅴ一区二区三区四区| 日韩欧美色综合| 日韩精品一二三区| 欧洲精品视频在线观看| 国产精品国产自产拍高清av王其| 国产精品久久久久久久久免费相片| 国产欧美日韩三级| 九色porny丨国产精品| 欧美熟乱第一页| 亚洲精品久久嫩草网站秘色| 国产乱人伦偷精品视频不卡| 在线成人免费视频| 亚洲成av人影院| 在线看一区二区| 亚洲久本草在线中文字幕| 成人短视频下载| 国产欧美日韩三区| 国产高清不卡一区| 久久精品视频免费观看| 激情欧美一区二区三区在线观看| 国产成a人亚洲| 亚洲精品一区二区三区蜜桃下载| 久久久亚洲精品一区二区三区| 久久久亚洲精华液精华液精华液| 久久精品亚洲国产奇米99| 国产综合久久久久久鬼色| 欧美一级片在线| 日本成人在线电影网| 欧美一区二区视频观看视频| 日韩中文字幕一区二区三区| 欧美一区二区在线不卡| 日韩不卡一区二区三区|