⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idep.h

📁 含有完整TCP/IP PPP协议的嵌入式操作系统
💻 H
字号:
/*****************************************************************************  This file is part of the AVRIDE device driver.**  Copyright (c) 2002-2003 by Michael Fischer. All rights reserved.**  Redistribution and use in source and binary forms, with or without *  modification, are permitted provided that the following conditions *  are met:*  *  1. Redistributions of source code must retain the above copyright *     notice, this list of conditions and the following disclaimer.*  2. Redistributions in binary form must reproduce the above copyright*     notice, this list of conditions and the following disclaimer in the *     documentation and/or other materials provided with the distribution.*  3. Neither the name of the author nor the names of its contributors may *     be used to endorse or promote products derived from this software *     without specific prior written permission.**  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL *  THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED *  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, *  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF *  THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF *  SUCH DAMAGE.******************************************************************************  History:**  14.12.02  mifi   First Version *  18.01.03  mifi   Change Licence from GPL to BSD.*  19.06.03  mifi   Change address for ide port from 0x8000 to 0xE000*  29.06.03  mifi   First ATAPI-Version****************************************************************************/#ifndef __IDEP_H__#define __IDEP_H__#include <dev/ide.h>#include <fs/typedefs.h>/*-------------------------------------------------------------------------*//* global defines                                                          *//*-------------------------------------------------------------------------*///// If the driver should support the old// CHS drives, set IDE_SUPPORT_CHS to 1// #define IDE_SUPPORT_CHS         0#define IDE_BASE_ADDRESS        0xE000#define IDECS0                  0x0000#define IDECS1                  0x0500#define DATA_WRITE_REG_LOW      (IDECS0 + 0x0100)#define DATA_WRITE_REG_HIGH     (IDECS0 + 0x0200)#define DATA_READ_REG_LOW       (IDECS0 + 0x0300)#define DATA_READ_REG_HIGH      (IDECS0 + 0x0400)#define ERROR_REG               (IDECS0 + 1)#define FEATURE_REG             (IDECS0 + 1)#define SECTOR_COUNT_REG        (IDECS0 + 2)#define SECTOR_REG              (IDECS0 + 3)#define CYLINDER_LOW_REG        (IDECS0 + 4)#define CYLINDER_HIGH_REG       (IDECS0 + 5)#define DISK_HEAD_REG           (IDECS0 + 6)#define COMMAND_REG             (IDECS0 + 7)#define STATUS_REG              (IDECS0 + 7)#define LBA_0_7                 (IDECS0 + 3)#define LBA_8_15                (IDECS0 + 4)#define LBA_16_23               (IDECS0 + 5)#define CF_ERROR_REG            (IDECS1 + 0)#define CONTROL_REG             (IDECS1 + 6)#define ALTERNATE_STATUS        (IDECS1 + 6)#define STATUS_BUSY             0x80#define STATUS_DRIVE_READY      0x40#define STATUS_DEVIDE_FAULT     0x20#define STATUS_SEEK_COMPLETE    0x10#define STATUS_DATA_REQUEST     0x08#define STATUS_CORRECTED_DATA   0x04#define STATUS_INDEX            0x02#define STATUS_ERROR            0x01#define ERROR_CRC               0x80#define ERROR_UNC               0x40#define ERROR_IDN               0x10#define ERROR_ABT               0x04#define ERROR_T0N               0x02#define ERROR_AMN               0x01#define COMMAND_DEVICE_INFO     0xEC#define COMMAND_DEVICE_INFO_P   0xA1#define COMMAND_READ_SECTORS    0x20#define COMMAND_WRITE_SECTORS   0x30#define COMMAND_RECALIBRATE     0x10#define COMMAND_DIAG            0x90#define SERIAL_SIZE             20#define REV_SIZE                8#define MODEL_SIZE              40//// ATAPI stuff//#define ATAPI_CMD_READ_CAPACITY 0x25#define ATAPI_CMD_MODE_SELECT   0x55#define ATAPI_CMD_MODE_SENSE    0x5A#define ATAPI_CMD_READ12        0xA8#define ATAPI_CMD_SET_CD_SPEED  0xBB/*-------------------------------------------------------------------------*//* global types                                                            *//*-------------------------------------------------------------------------*/typedef struct {    unsigned UnUsed0:1;         //  0    unsigned HardSector_O:1;    //  0    unsigned SoftSector_O:1;    //  0    unsigned MFM_O:1;           //  0    unsigned SlowHead_O:1;      //  0    unsigned SynchDriveMotor_O:1;       //  0    unsigned FixedDevice:1;     //  0    unsigned RemoveableDevice:1;        //  0    unsigned DiskTransferRate_O:3;      //  0    unsigned InaccurateSpeed_O:1;       //  0    unsigned DataStrobeOffset_O:1;      //  0    unsigned TrackOffsetOption_O:1;     //  0    unsigned FormatGapRequired_O:1;     //  0    unsigned ATAPI:1;           //  0    WORD Cylinders;             //  1    WORD UnUsed1;               //  2    WORD Heads;                 //  3    WORD BytesPerTrack_O;       //  4    WORD BytesPerSector_O;      //  5    WORD SectorsPerTrack;       //  6    WORD VendorSpecific[3];     //  7 - 9    char SerialNumber[SERIAL_SIZE];     //  10 - 19    WORD BufferType_O;          //  20    WORD BufferSizeSectors_O;   //  21    WORD ECCBytes;              //  22    char FirmwareRevision[REV_SIZE];    //  23 - 26    char Model[MODEL_SIZE];     //  27 - 46    BYTE MaxMultipleSectors;    //  47    BYTE UnUsed2;               //  47    WORD Can32Bit_O;            //  48    unsigned CanDMA_O:1;        //  49    unsigned UnUsed3:9;         //  49    unsigned CanDisableIORDY:1; //  49    unsigned IORDYSupported:1;  //  49    unsigned AdvancedTransferMode:1;    //  49    unsigned ATA3StandbyTimer:1;        //  49    unsigned UnUsed4:2;    WORD UnUsed5;               //  50    BYTE UnUsed6;               //  51    BYTE PIOTransferSpeed;      //  51    BYTE UnUsed7;               //  52    BYTE DMATransferSpeed;      //  52    unsigned Fields_6C_75_Valid:1;      //  53    unsigned Fields_80_8C_Valid:1;      //  53    unsigned UnUsed8:14;        //  53    WORD Cylinders2;            //  54    WORD Heads2;                //  55    WORD SectorsPerTrack2;      //  56    DWORD Sectors;              //  57,58    BYTE MaxSectorsPerInt;      //  59    unsigned MaxSectorsPerIntIsValid:1; //  59    unsigned UnUsed9:7;         //  59    DWORD LBASectors;           //  60,61    WORD UnUsed10;              //  62    BYTE SupportedDMAModes;     //  63    BYTE ActiveDMAModes;        //  63    BYTE PIOModesSupported;     //  64    BYTE UnUsed11;              //  64    WORD DMACycleTime;          //  65    WORD RecommendedDMACycleTime;       //  66    WORD PIOCycleTime;          //  67    WORD IORDYPIOCycleTime;     //  68    WORD Reserved1[2];          //  69 - 70    WORD Reserved2[4];          //  71 - 74    WORD QueueDepth;            //  75    WORD Reserved3[4];          //  76 - 79    WORD ATAVersionMajor;       //  80    WORD ATAVersionMinor;       //  81    WORD CommandSetSupported[2];        //  82 - 83    WORD CommandSetSupportedExtension;  //  84    WORD CommandSetEnabled[2];  //  85 - 86    WORD CommandSetDefault;     //  87    WORD UltraDMAMode;          //  88    WORD SecurityStatus[2];     //  89 - 90    WORD AdvancedPowerManagement;       //  91    WORD MasterPasswordRevisionCode;    //  92    WORD HardwareResetResult;   //  93    WORD AcousticManagementValue;       //  94    WORD Reserved4[5];          //  95 - 99    WORD MaximumUserLBA48[4];   //  100 - 103    WORD Reserved5[23];         //  104 - 126} IDEDEVICEINFO;/*-------------------------------------------------------------------------*//* global macros                                                           *//*-------------------------------------------------------------------------*//*-------------------------------------------------------------------------*//* Prototypes                                                              *//*-------------------------------------------------------------------------*/#endif                          /* !__IDE_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -