]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Bus/Pci/IdeBus/Dxe/idedata.h
Enable Idebus to use the Atapi.h defined in MdePkg/Include/IndustryStandard
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Pci / IdeBus / Dxe / idedata.h
index 277e74fcc085f534ed2b7f62399cfba4a8772dcc..83a42af6b132d46a0d5f7db4c06ed584f8503571 100644 (file)
 #ifndef _IDE_DATA_H\r
 #define _IDE_DATA_H\r
 \r
-//\r
-// bit definition\r
-//\r
-#define bit0  (1 << 0)\r
-#define bit1  (1 << 1)\r
-#define bit2  (1 << 2)\r
-#define bit3  (1 << 3)\r
-#define bit4  (1 << 4)\r
-#define bit5  (1 << 5)\r
-#define bit6  (1 << 6)\r
-#define bit7  (1 << 7)\r
-#define bit8  (1 << 8)\r
-#define bit9  (1 << 9)\r
-#define bit10 (1 << 10)\r
-#define bit11 (1 << 11)\r
-#define bit12 (1 << 12)\r
-#define bit13 (1 << 13)\r
-#define bit14 (1 << 14)\r
-#define bit15 (1 << 15)\r
-#define bit16 (1 << 16)\r
-#define bit17 (1 << 17)\r
-#define bit18 (1 << 18)\r
-#define bit19 (1 << 19)\r
-#define bit20 (1 << 20)\r
-#define bit21 (1 << 21)\r
-#define bit22 (1 << 22)\r
-#define bit23 (1 << 23)\r
-#define bit24 (1 << 24)\r
-#define bit25 (1 << 25)\r
-#define bit26 (1 << 26)\r
-#define bit27 (1 << 27)\r
-#define bit28 (1 << 28)\r
-#define bit29 (1 << 29)\r
-#define bit30 (1 << 30)\r
-#define bit31 (1 << 31)\r
+#include <IndustryStandard/Atapi.h>\r
 \r
 //\r
 // common constants\r
@@ -144,67 +110,19 @@ typedef struct {
 // Bit definitions in Programming Interface byte of the Class Code field\r
 // in PCI IDE controller's Configuration Space\r
 //\r
-#define IDE_PRIMARY_OPERATING_MODE            bit0\r
-#define IDE_PRIMARY_PROGRAMMABLE_INDICATOR    bit1\r
-#define IDE_SECONDARY_OPERATING_MODE          bit2\r
-#define IDE_SECONDARY_PROGRAMMABLE_INDICATOR  bit3\r
-\r
-//\r
-// IDE registers bit definitions\r
-//\r
-\r
-//\r
-// Err Reg\r
-//\r
-#define BBK_ERR   bit7  /* Bad block detected */\r
-#define UNC_ERR   bit6  /* Uncorrectable Data */\r
-#define MC_ERR    bit5  /* Media Change */\r
-#define IDNF_ERR  bit4  /* ID Not Found */\r
-#define MCR_ERR   bit3  /* Media Change Requested */\r
-#define ABRT_ERR  bit2  /* Aborted Command */\r
-#define TK0NF_ERR bit1  /* Track 0 Not Found */\r
-#define AMNF_ERR  bit0  /* Address Mark Not Found */\r
+#define IDE_PRIMARY_OPERATING_MODE            BIT0\r
+#define IDE_PRIMARY_PROGRAMMABLE_INDICATOR    BIT1\r
+#define IDE_SECONDARY_OPERATING_MODE          BIT2\r
+#define IDE_SECONDARY_PROGRAMMABLE_INDICATOR  BIT3\r
 \r
-//\r
-// Device/Head Reg\r
-//\r
-#define LBA_MODE  bit6\r
-#define DEV       bit4\r
-#define HS3       bit3\r
-#define HS2       bit2\r
-#define HS1       bit1\r
-#define HS0       bit0\r
-#define CHS_MODE  (0)\r
-#define DRV0      (0)\r
-#define DRV1      (1)\r
-#define MST_DRV   DRV0\r
-#define SLV_DRV   DRV1\r
-\r
-//\r
-// Status Reg\r
-//\r
-#define BSY   bit7  /* Controller Busy */\r
-#define DRDY  bit6  /* Drive Ready */\r
-#define DWF   bit5  /* Drive Write Fault */\r
-#define DSC   bit4  /* Disk Seek Complete */\r
-#define DRQ   bit3  /* Data Request */\r
-#define CORR  bit2  /* Corrected Data */\r
-#define IDX   bit1  /* Index */\r
-#define ERR   bit0  /* Error */\r
-\r
-//\r
-// Device Control Reg\r
-//\r
-#define SRST  bit2  /* Software Reset */\r
-#define IEN_L bit1  /* Interrupt Enable #*/\r
 \r
 //\r
 // Bus Master Reg\r
 //\r
-#define BMIC_nREAD      bit3\r
-#define BMIC_START      bit0\r
-#define BMIS_INTERRUPT  bit2\r
-#define BMIS_ERROR      bit1\r
+#define BMIC_nREAD      BIT3\r
+#define BMIC_START      BIT0\r
+#define BMIS_INTERRUPT  BIT2\r
+#define BMIS_ERROR      BIT1\r
 \r
 #define BMICP_OFFSET    0x00\r
 #define BMISP_OFFSET    0x02\r
@@ -256,205 +174,6 @@ typedef struct {
 //\r
 #define ATASMARTTIMEOUT   10000\r
 \r
-//\r
-// ATA Commands Code\r
-//\r
-#define ATA_INITIALIZE_DEVICE 0x91\r
-\r
-//\r
-// Class 1\r
-//\r
-#define IDENTIFY_DRIVE_CMD          0xec\r
-#define READ_BUFFER_CMD             0xe4\r
-#define READ_SECTORS_CMD            0x20\r
-#define READ_SECTORS_WITH_RETRY_CMD 0x21\r
-#define READ_LONG_CMD               0x22\r
-#define READ_LONG_WITH_RETRY_CMD    0x23\r
-//\r
-// Class 1 - Atapi6 enhanced commands\r
-//\r
-#define READ_SECTORS_EXT_CMD  0x24\r
-\r
-//\r
-// Class 2\r
-//\r
-#define FORMAT_TRACK_CMD              0x50\r
-#define WRITE_BUFFER_CMD              0xe8\r
-#define WRITE_SECTORS_CMD             0x30\r
-#define WRITE_SECTORS_WITH_RETRY_CMD  0x31\r
-#define WRITE_LONG_CMD                0x32\r
-#define WRITE_LONG_WITH_RETRY_CMD     0x33\r
-#define WRITE_VERIFY_CMD              0x3c\r
-//\r
-// Class 2 - Atapi6 enhanced commands\r
-//\r
-#define WRITE_SECTORS_EXT_CMD 0x34\r
-\r
-//\r
-// Class 3\r
-//\r
-#define ACK_MEDIA_CHANGE_CMD        0xdb\r
-#define BOOT_POST_BOOT_CMD          0xdc\r
-#define BOOT_PRE_BOOT_CMD           0xdd\r
-#define CHECK_POWER_MODE_CMD        0x98\r
-#define CHECK_POWER_MODE_CMD_ALIAS  0xe5\r
-#define DOOR_LOCK_CMD               0xde\r
-#define DOOR_UNLOCK_CMD             0xdf\r
-#define EXEC_DRIVE_DIAG_CMD         0x90\r
-#define IDLE_CMD_ALIAS              0x97\r
-#define IDLE_CMD                    0xe3\r
-#define IDLE_IMMEDIATE_CMD          0x95\r
-#define IDLE_IMMEDIATE_CMD_ALIAS    0xe1\r
-#define INIT_DRIVE_PARAM_CMD        0x91\r
-#define RECALIBRATE_CMD             0x10  /* aliased to 1x */\r
-#define READ_DRIVE_STATE_CMD        0xe9\r
-#define SET_MULTIPLE_MODE_CMD       0xC6\r
-#define READ_DRIVE_STATE_CMD        0xe9\r
-#define READ_VERIFY_CMD             0x40\r
-#define READ_VERIFY_WITH_RETRY_CMD  0x41\r
-#define SEEK_CMD                    0x70  /* aliased to 7x */\r
-#define SET_FEATURES_CMD            0xef\r
-#define STANDBY_CMD                 0x96\r
-#define STANDBY_CMD_ALIAS           0xe2\r
-#define STANDBY_IMMEDIATE_CMD       0x94\r
-#define STANDBY_IMMEDIATE_CMD_ALIAS 0xe0\r
-\r
-//\r
-// Class 4\r
-//\r
-#define READ_DMA_CMD              0xc8\r
-#define READ_DMA_WITH_RETRY_CMD   0xc9\r
-#define READ_DMA_EXT_CMD          0x25\r
-#define WRITE_DMA_CMD             0xca\r
-#define WRITE_DMA_WITH_RETRY_CMD  0xcb\r
-#define WRITE_DMA_EXT_CMD         0x35\r
-\r
-//\r
-// Class 5\r
-//\r
-#define READ_MULTIPLE_CMD         0xc4\r
-#define REST_CMD                  0xe7\r
-#define RESTORE_DRIVE_STATE_CMD   0xea\r
-#define SET_SLEEP_MODE_CMD        0x99\r
-#define SET_SLEEP_MODE_CMD_ALIAS  0xe6\r
-#define WRITE_MULTIPLE_CMD        0xc5\r
-#define WRITE_SAME_CMD            0xe9\r
-\r
-//\r
-// Class 6 - Host protected area access feature set\r
-//\r
-#define READ_NATIVE_MAX_ADDRESS_CMD 0xf8\r
-#define SET_MAX_ADDRESS_CMD         0xf9\r
-\r
-//\r
-// Class 6 - ATA/ATAPI-6 enhanced commands\r
-//\r
-#define READ_NATIVE_MAX_ADDRESS_EXT_CMD 0x27\r
-#define SET_MAX_ADDRESS_CMD_EXT         0x37\r
-\r
-//\r
-// Class 6 - SET_MAX related sub command (in feature register)\r
-//\r
-#define PARTIES_SET_MAX_ADDRESS_SUB_CMD 0x00\r
-#define PARTIES_SET_PASSWORD_SUB_CMD    0x01\r
-#define PARTIES_LOCK_SUB_CMD            0x02\r
-#define PARTIES_UNLOCK_SUB_CMD          0x03\r
-#define PARTIES_FREEZE_SUB_CMD          0x04\r
-\r
-//\r
-// S.M.A.R.T\r
-//\r
-#define ATA_SMART_CMD               0xb0\r
-#define ATA_CONSTANT_C2             0xc2\r
-#define ATA_CONSTANT_4F             0x4f\r
-#define ATA_SMART_ENABLE_OPERATION  0xd8\r
-#define ATA_SMART_RETURN_STATUS     0xda\r
-\r
-//\r
-// Error codes for Exec Drive Diag\r
-//\r
-#define DRIV_DIAG_NO_ERROR          (0x01)\r
-#define DRIV_DIAG_FORMATTER_ERROR   (0x02)\r
-#define DRIV_DIAG_DATA_BUFFER_ERROR (0x03)\r
-#define DRIV_DIAG_ECC_CKT_ERRROR    (0x04)\r
-#define DRIV_DIAG_UP_ERROR          (0x05)\r
-#define DRIV_DIAG_SLAVE_DRV_ERROR   (0x80)  /* aliased to 0x8x */\r
-\r
-//\r
-// Codes for Format Track\r
-//\r
-#define FORMAT_GOOD_SECTOR            (0x00)\r
-#define FORMAT_SUSPEND_ALLOC          (0x01)\r
-#define FORMAT_REALLOC_SECTOR         (0x02)\r
-#define FORMAT_MARK_SECTOR_DEFECTIVE  (0x03)\r
-\r
-//\r
-// IDE_IDENTIFY bits\r
-// config bits :\r
-//\r
-#define ID_CONFIG_RESERVED0                             bit0\r
-#define ID_CONFIG_HARD_SECTORED_DRIVE                   bit1\r
-#define ID_CONFIG_SOFT_SECTORED_DRIVE                   bit2\r
-#define ID_CONFIG_NON_MFM                               bit3\r
-#define ID_CONFIG_15uS_HEAD_SWITCHING                   bit4\r
-#define ID_CONFIG_SPINDLE_MOTOR_CONTROL                 bit5\r
-#define ID_CONFIG_HARD_DRIVE                            bit6\r
-#define ID_CONFIG_CHANGEABLE_MEDIUM                     bit7\r
-#define ID_CONFIG_DATA_RATE_TO_5MHZ                     bit8\r
-#define ID_CONFIG_DATA_RATE_5_TO_10MHZ                  bit9\r
-#define ID_CONFIG_DATA_RATE_ABOVE_10MHZ                 bit10\r
-#define ID_CONFIG_MOTOR_SPEED_TOLERANCE_ABOVE_0_5_PERC  bit11\r
-#define ID_CONFIG_DATA_CLK_OFFSET_AVAIL                 bit12\r
-#define ID_CONFIG_TRACK_OFFSET_AVAIL                    bit13\r
-#define ID_CONFIG_SPEED_TOLERANCE_GAP_NECESSARY         bit14\r
-#define ID_CONFIG_RESERVED1                             bit15\r
-\r
-#define ID_DOUBLE_WORD_IO_POSSIBLE                      bit01\r
-#define ID_LBA_SUPPORTED                                bit9\r
-#define ID_DMA_SUPPORTED                                bit8\r
-\r
-#define SET_FEATURE_ENABLE_8BIT_TRANSFER                (0x01)\r
-#define SET_FEATURE_ENABLE_WRITE_CACHE                  (0x02)\r
-#define SET_FEATURE_TRANSFER_MODE                       (0x03)\r
-#define SET_FEATURE_WRITE_SAME_WRITE_SPECIFIC_AREA      (0x22)\r
-#define SET_FEATURE_DISABLE_RETRIES                     (0x33)\r
-//\r
-// for Read & Write Longs\r
-//\r
-#define SET_FEATURE_VENDOR_SPEC_ECC_LENGTH                          (0x44)\r
-#define SET_FEATURE_PLACE_NO_OF_CACHE_SEGMENTS_IN_SECTOR_NO_REG     (0x54)\r
-#define SET_FEATURE_DISABLE_READ_AHEAD                              (0x55)\r
-#define SET_FEATURE_MAINTAIN_PARAM_AFTER_RESET                      (0x66)\r
-#define SET_FEATURE_DISABLE_ECC                                     (0x77)\r
-#define SET_FEATURE_DISABLE_8BIT_TRANSFER                           (0x81)\r
-#define SET_FEATURE_DISABLE_WRITE_CACHE                             (0x82)\r
-#define SET_FEATURE_ENABLE_ECC                                      (0x88)\r
-#define SET_FEATURE_ENABLE_RETRIES                                  (0x99)\r
-#define SET_FEATURE_ENABLE_READ_AHEAD                               (0xaa)\r
-#define SET_FEATURE_SET_SECTOR_CNT_REG_AS_NO_OF_READ_AHEAD_SECTORS  (0xab)\r
-#define SET_FEATURE_ALLOW_REST_MODE                                 (0xac)\r
-//\r
-// for Read & Write Longs\r
-//\r
-#define SET_FEATURE_4BYTE_ECC                           (0xbb)\r
-#define SET_FEATURE_DEFALUT_FEATURES_ON_SOFTWARE_RESET  (0xcc)\r
-#define SET_FEATURE_WRITE_SAME_TO_WRITE_ENTIRE_MEDIUM   (0xdd)\r
-\r
-#define BLOCK_TRANSFER_MODE                             (0x00)\r
-#define SINGLE_WORD_DMA_TRANSFER_MODE                   (0x10)\r
-#define MULTI_WORD_DMA_TRANSFER_MODE                    (0x20)\r
-#define TRANSFER_MODE_MASK                              (0x07)  // 3 LSBs\r
-\r
-//\r
-// Drive 0 - Head 0\r
-//\r
-#define DEFAULT_DRIVE (0x00)\r
-#define DEFAULT_CMD   (0xa0)\r
-//\r
-// default content of device control register, disable INT\r
-//\r
-#define DEFAULT_CTL                 (0x0a)\r
-#define DEFAULT_IDE_BM_IO_BASE_ADR  (0xffa0)\r
 \r
 //\r
 // ATAPI6 related data structure definition\r
@@ -465,320 +184,19 @@ typedef struct {
 //\r
 #define MAX_28BIT_ADDRESSING_CAPACITY 0xfffffff\r
 \r
-//\r
-// Move the IDENTIFY section to DXE\Protocol\IdeControllerInit\r
-//\r
-\r
-//\r
-// ATAPI Command\r
-//\r
-#define ATAPI_SOFT_RESET_CMD      0x08\r
-#define ATAPI_PACKET_CMD          0xA0\r
-#define PACKET_CMD                0xA0\r
-#define ATAPI_IDENTIFY_DEVICE_CMD 0xA1\r
-#define ATAPI_SERVICE_CMD         0xA2\r
-\r
-//\r
-// ATAPI Packet Command\r
-//\r
 #pragma pack(1)\r
 \r
-typedef struct {\r
-  UINT8 opcode;\r
-  UINT8 reserved_1;\r
-  UINT8 reserved_2;\r
-  UINT8 reserved_3;\r
-  UINT8 reserved_4;\r
-  UINT8 reserved_5;\r
-  UINT8 reserved_6;\r
-  UINT8 reserved_7;\r
-  UINT8 reserved_8;\r
-  UINT8 reserved_9;\r
-  UINT8 reserved_10;\r
-  UINT8 reserved_11;\r
-} TEST_UNIT_READY_CMD;\r
-\r
-typedef struct {\r
-  UINT8 opcode;\r
-  UINT8 reserved_1 : 4;\r
-  UINT8 lun : 4;\r
-  UINT8 page_code;\r
-  UINT8 reserved_3;\r
-  UINT8 allocation_length;\r
-  UINT8 reserved_5;\r
-  UINT8 reserved_6;\r
-  UINT8 reserved_7;\r
-  UINT8 reserved_8;\r
-  UINT8 reserved_9;\r
-  UINT8 reserved_10;\r
-  UINT8 reserved_11;\r
-} INQUIRY_CMD;\r
-\r
-typedef struct {\r
-  UINT8 opcode;\r
-  UINT8 reserved_1 : 4;\r
-  UINT8 lun : 4;\r
-  UINT8 reserved_2;\r
-  UINT8 reserved_3;\r
-  UINT8 allocation_length;\r
-  UINT8 reserved_5;\r
-  UINT8 reserved_6;\r
-  UINT8 reserved_7;\r
-  UINT8 reserved_8;\r
-  UINT8 reserved_9;\r
-  UINT8 reserved_10;\r
-  UINT8 reserved_11;\r
-} REQUEST_SENSE_CMD;\r
-\r
-typedef struct {\r
-  UINT8 opcode;\r
-  UINT8 reserved_1 : 4;\r
-  UINT8 lun : 4;\r
-  UINT8 page_code : 4;\r
-  UINT8 page_control : 4;\r
-  UINT8 reserved_3;\r
-  UINT8 reserved_4;\r
-  UINT8 reserved_5;\r
-  UINT8 reserved_6;\r
-  UINT8 parameter_list_length_hi;\r
-  UINT8 parameter_list_length_lo;\r
-  UINT8 reserved_9;\r
-  UINT8 reserved_10;\r
-  UINT8 reserved_11;\r
-} MODE_SENSE_CMD;\r
-\r
-typedef struct {\r
-  UINT8 opcode;\r
-  UINT8 reserved_1 : 5;\r
-  UINT8 lun : 3;\r
-  UINT8 Lba0;\r
-  UINT8 Lba1;\r
-  UINT8 Lba2;\r
-  UINT8 Lba3;\r
-  UINT8 reserved_6;\r
-  UINT8 TranLen0;\r
-  UINT8 TranLen1;\r
-  UINT8 reserved_9;\r
-  UINT8 reserved_10;\r
-  UINT8 reserved_11;\r
-} READ10_CMD;\r
-\r
-typedef struct {\r
-  UINT8 opcode;\r
-  UINT8 reserved_1;\r
-  UINT8 reserved_2;\r
-  UINT8 reserved_3;\r
-  UINT8 reserved_4;\r
-  UINT8 reserved_5;\r
-  UINT8 reserved_6;\r
-  UINT8 allocation_length_hi;\r
-  UINT8 allocation_length_lo;\r
-  UINT8 reserved_9;\r
-  UINT8 reserved_10;\r
-  UINT8 reserved_11;\r
-} READ_FORMAT_CAP_CMD;\r
-\r
-typedef union {\r
-  UINT16              Data16[6];\r
-  TEST_UNIT_READY_CMD TestUnitReady;\r
-  READ10_CMD          Read10;\r
-  REQUEST_SENSE_CMD   RequestSence;\r
-  INQUIRY_CMD         Inquiry;\r
-  MODE_SENSE_CMD      ModeSense;\r
-  READ_FORMAT_CAP_CMD ReadFormatCapacity;\r
-} ATAPI_PACKET_COMMAND;\r
-\r
 typedef struct {\r
   UINT32  RegionBaseAddr;\r
   UINT16  ByteCount;\r
   UINT16  EndOfTable;\r
 } IDE_DMA_PRD;\r
 \r
-#define MAX_DMA_EXT_COMMAND_SECTORS 0x10000\r
-#define MAX_DMA_COMMAND_SECTORS     0x100\r
-\r
 #pragma pack()\r
 \r
-//\r
-// Packet Command Code\r
-//\r
-#define TEST_UNIT_READY             0x00\r
-#define REZERO                      0x01\r
-#define REQUEST_SENSE               0x03\r
-#define FORMAT_UNIT                 0x04\r
-#define REASSIGN_BLOCKS             0x07\r
-#define INQUIRY                     0x12\r
-#define START_STOP_UNIT             0x1B\r
-#define PREVENT_ALLOW_MEDIA_REMOVAL 0x1E\r
-#define READ_FORMAT_CAPACITY        0x23\r
-#define OLD_FORMAT_UNIT             0x24\r
-#define READ_CAPACITY               0x25\r
-#define READ_10                     0x28\r
-#define WRITE_10                    0x2A\r
-#define SEEK                        0x2B\r
-#define SEND_DIAGNOSTICS            0x3D\r
-#define WRITE_VERIFY                0x2E\r
-#define VERIFY                      0x2F\r
-#define READ_DEFECT_DATA            0x37\r
-#define WRITE_BUFFER                0x38\r
-#define READ_BUFFER                 0x3C\r
-#define READ_LONG                   0x3E\r
-#define WRITE_LONG                  0x3F\r
-#define MODE_SELECT                 0x55\r
-#define MODE_SENSE                  0x5A\r
-#define READ_12                     0xA8\r
-#define WRITE_12                    0xAA\r
-#define MAX_ATAPI_BYTE_COUNT        (0xfffe)\r
-\r
-//\r
-// Sense Key\r
-//\r
-#define REQUEST_SENSE_ERROR (0x70)\r
-#define SK_NO_SENSE         (0x0)\r
-#define SK_RECOVERY_ERROR   (0x1)\r
-#define SK_NOT_READY        (0x2)\r
-#define SK_MEDIUM_ERROR     (0x3)\r
-#define SK_HARDWARE_ERROR   (0x4)\r
-#define SK_ILLEGAL_REQUEST  (0x5)\r
-#define SK_UNIT_ATTENTION   (0x6)\r
-#define SK_DATA_PROTECT     (0x7)\r
-#define SK_BLANK_CHECK      (0x8)\r
-#define SK_VENDOR_SPECIFIC  (0x9)\r
-#define SK_RESERVED_A       (0xA)\r
-#define SK_ABORT            (0xB)\r
-#define SK_RESERVED_C       (0xC)\r
-#define SK_OVERFLOW         (0xD)\r
-#define SK_MISCOMPARE       (0xE)\r
-#define SK_RESERVED_F       (0xF)\r
-\r
-//\r
-// Additional Sense Codes\r
-//\r
-#define ASC_NOT_READY                   (0x04)\r
-#define ASC_MEDIA_ERR1                  (0x10)\r
-#define ASC_MEDIA_ERR2                  (0x11)\r
-#define ASC_MEDIA_ERR3                  (0x14)\r
-#define ASC_MEDIA_ERR4                  (0x30)\r
-#define ASC_MEDIA_UPSIDE_DOWN           (0x06)\r
-#define ASC_INVALID_CMD                 (0x20)\r
-#define ASC_LBA_OUT_OF_RANGE            (0x21)\r
-#define ASC_INVALID_FIELD               (0x24)\r
-#define ASC_WRITE_PROTECTED             (0x27)\r
-#define ASC_MEDIA_CHANGE                (0x28)\r
-#define ASC_RESET                       (0x29)  /* Power On Reset or Bus Reset occurred */\r
-#define ASC_ILLEGAL_FIELD               (0x26)\r
-#define ASC_NO_MEDIA                    (0x3A)\r
-#define ASC_ILLEGAL_MODE_FOR_THIS_TRACK (0x64)\r
-\r
-//\r
-// Additional Sense Code Qualifier\r
-//\r
-#define ASCQ_IN_PROGRESS  (0x01)\r
-\r
 #define SETFEATURE        TRUE\r
 #define CLEARFEATURE      FALSE\r
 \r
-//\r
-//  ATAPI Data structure\r
-//\r
-#pragma pack(1)\r
-\r
-typedef struct {\r
-  UINT8 peripheral_type;\r
-  UINT8 RMB;\r
-  UINT8 version;\r
-  UINT8 response_data_format;\r
-  UINT8 addnl_length;\r
-  UINT8 reserved_5;\r
-  UINT8 reserved_6;\r
-  UINT8 reserved_7;\r
-  UINT8 vendor_info[8];\r
-  UINT8 product_id[12];\r
-  UINT8 eeprom_product_code[4];\r
-  UINT8 firmware_rev_level[4];\r
-  UINT8 firmware_sub_rev_level[1];\r
-  UINT8 reserved_37;\r
-  UINT8 reserved_38;\r
-  UINT8 reserved_39;\r
-  UINT8 max_capacity_hi;\r
-  UINT8 max_capacity_mid;\r
-  UINT8 max_capacity_lo;\r
-  UINT8 reserved_43_95[95 - 43 + 1];\r
-} INQUIRY_DATA;\r
-\r
-typedef struct {\r
-  UINT8 peripheral_type;\r
-  UINT8 RMB;\r
-  UINT8 version;\r
-  UINT8 response_data_format;\r
-  UINT8 addnl_length;\r
-  UINT8 reserved_5;\r
-  UINT8 reserved_6;\r
-  UINT8 reserved_7;\r
-  UINT8 vendor_info[8];\r
-  UINT8 product_id[16];\r
-  UINT8 product_revision_level[4];\r
-  UINT8 vendor_specific[20];\r
-  UINT8 reserved_56_95[40];\r
-} CDROM_INQUIRY_DATA;\r
-\r
-typedef struct {\r
-  UINT8 error_code : 7;\r
-  UINT8 valid : 1;\r
-  UINT8 reserved_1;\r
-  UINT8 sense_key : 4;\r
-  UINT8 reserved_21 : 1;\r
-  UINT8 ILI : 1;\r
-  UINT8 reserved_22 : 2;\r
-  UINT8 vendor_specific_3;\r
-  UINT8 vendor_specific_4;\r
-  UINT8 vendor_specific_5;\r
-  UINT8 vendor_specific_6;\r
-  UINT8 addnl_sense_length;           // n - 7\r
-  UINT8 vendor_specific_8;\r
-  UINT8 vendor_specific_9;\r
-  UINT8 vendor_specific_10;\r
-  UINT8 vendor_specific_11;\r
-  UINT8 addnl_sense_code;             // mandatory\r
-  UINT8 addnl_sense_code_qualifier;   // mandatory\r
-  UINT8 field_replaceable_unit_code;  // optional\r
-  UINT8 reserved_15;\r
-  UINT8 reserved_16;\r
-  UINT8 reserved_17;\r
-  //\r
-  // Followed by additional sense bytes     : FIXME\r
-  //\r
-} REQUEST_SENSE_DATA;\r
-\r
-typedef struct {\r
-  UINT8 LastLba3;\r
-  UINT8 LastLba2;\r
-  UINT8 LastLba1;\r
-  UINT8 LastLba0;\r
-  UINT8 BlockSize3;\r
-  UINT8 BlockSize2;\r
-  UINT8 BlockSize1;\r
-  UINT8 BlockSize0;\r
-} READ_CAPACITY_DATA;\r
-\r
-typedef struct {\r
-  UINT8 reserved_0;\r
-  UINT8 reserved_1;\r
-  UINT8 reserved_2;\r
-  UINT8 Capacity_Length;\r
-  UINT8 LastLba3;\r
-  UINT8 LastLba2;\r
-  UINT8 LastLba1;\r
-  UINT8 LastLba0;\r
-  UINT8 DesCode : 2;\r
-  UINT8 reserved_9 : 6;\r
-  UINT8 BlockSize2;\r
-  UINT8 BlockSize1;\r
-  UINT8 BlockSize0;\r
-} READ_FORMAT_CAPACITY_DATA;\r
-\r
-#pragma pack()\r
-\r
 //\r
 // PIO mode definition\r
 //\r
@@ -848,46 +266,46 @@ typedef struct {
 //\r
 // Slave IDE Timing Register Enable\r
 //\r
-#define SITRE bit14\r
+#define SITRE BIT14\r
 \r
 //\r
 // DMA Timing Enable Only Select 1\r
 //\r
-#define DTE1  bit7\r
+#define DTE1  BIT7\r
 \r
 //\r
 // Pre-fetch and Posting Enable Select 1\r
 //\r
-#define PPE1  bit6\r
+#define PPE1  BIT6\r
 \r
 //\r
 // IORDY Sample Point Enable Select 1\r
 //\r
-#define IE1 bit5\r
+#define IE1 BIT5\r
 \r
 //\r
 // Fast Timing Bank Drive Select 1\r
 //\r
-#define TIME1 bit4\r
+#define TIME1 BIT4\r
 \r
 //\r
 // DMA Timing Enable Only Select 0\r
 //\r
-#define DTE0  bit3\r
+#define DTE0  BIT3\r
 \r
 //\r
 // Pre-fetch and Posting Enable Select 0\r
 //\r
-#define PPE0  bit2\r
+#define PPE0  BIT2\r
 \r
 //\r
 // IOREY Sample Point Enable Select 0\r
 //\r
-#define IE0 bit1\r
+#define IE0 BIT1\r
 \r
 //\r
 // Fast Timing Bank Drive Select 0\r
 //\r
-#define TIME0 bit0\r
+#define TIME0 BIT0\r
 \r
 #endif\r