/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ***   To edit the content of this header, modify the corresponding
 ***   source file (e.g. under external/kernel-headers/original/) then
 ***   run bionic/libc/kernel/tools/update_all.py
 ***
 ***   Any manual change here will be lost the next time this script will
 ***   be run. You've been warned!
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _LINUX_HDREG_H
#define _LINUX_HDREG_H
#define HDIO_DRIVE_CMD_HDR_SIZE (4 * sizeof(u8))
#define HDIO_DRIVE_HOB_HDR_SIZE (8 * sizeof(u8))
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define HDIO_DRIVE_TASK_HDR_SIZE (8 * sizeof(u8))
#define IDE_DRIVE_TASK_INVALID -1
#define IDE_DRIVE_TASK_NO_DATA 0
#define IDE_DRIVE_TASK_SET_XFER 1
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define IDE_DRIVE_TASK_IN 2
#define IDE_DRIVE_TASK_OUT 3
#define IDE_DRIVE_TASK_RAW_WRITE 4
#define IDE_TASKFILE_STD_IN_FLAGS 0xFE
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define IDE_HOB_STD_IN_FLAGS 0x3C
#define IDE_TASKFILE_STD_OUT_FLAGS 0xFE
#define IDE_HOB_STD_OUT_FLAGS 0x3C
typedef unsigned char task_ioreg_t;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
typedef unsigned long sata_ioreg_t;
typedef union ide_reg_valid_s {
 unsigned all : 16;
 struct {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned data : 1;
 unsigned error_feature : 1;
 unsigned sector : 1;
 unsigned nsector : 1;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned lcyl : 1;
 unsigned hcyl : 1;
 unsigned select : 1;
 unsigned status_command : 1;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned data_hob : 1;
 unsigned error_feature_hob : 1;
 unsigned sector_hob : 1;
 unsigned nsector_hob : 1;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned lcyl_hob : 1;
 unsigned hcyl_hob : 1;
 unsigned select_hob : 1;
 unsigned control_hob : 1;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } b;
} ide_reg_valid_t;
typedef struct ide_task_request_s {
 task_ioreg_t io_ports[8];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 task_ioreg_t hob_ports[8];
 ide_reg_valid_t out_flags;
 ide_reg_valid_t in_flags;
 int data_phase;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 int req_cmd;
 unsigned long out_size;
 unsigned long in_size;
} ide_task_request_t;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
typedef struct ide_ioctl_request_s {
 ide_task_request_t *task_request;
 unsigned char *out_buffer;
 unsigned char *in_buffer;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
} ide_ioctl_request_t;
struct hd_drive_cmd_hdr {
 task_ioreg_t command;
 task_ioreg_t sector_number;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 task_ioreg_t feature;
 task_ioreg_t sector_count;
};
typedef struct hd_drive_task_hdr {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 task_ioreg_t data;
 task_ioreg_t feature;
 task_ioreg_t sector_count;
 task_ioreg_t sector_number;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 task_ioreg_t low_cylinder;
 task_ioreg_t high_cylinder;
 task_ioreg_t device_head;
 task_ioreg_t command;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
} task_struct_t;
typedef struct hd_drive_hob_hdr {
 task_ioreg_t data;
 task_ioreg_t feature;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 task_ioreg_t sector_count;
 task_ioreg_t sector_number;
 task_ioreg_t low_cylinder;
 task_ioreg_t high_cylinder;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 task_ioreg_t device_head;
 task_ioreg_t control;
} hob_struct_t;
#define TASKFILE_INVALID 0x7fff
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define TASKFILE_48 0x8000
#define TASKFILE_NO_DATA 0x0000
#define TASKFILE_IN 0x0001
#define TASKFILE_MULTI_IN 0x0002
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define TASKFILE_OUT 0x0004
#define TASKFILE_MULTI_OUT 0x0008
#define TASKFILE_IN_OUT 0x0010
#define TASKFILE_IN_DMA 0x0020
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define TASKFILE_OUT_DMA 0x0040
#define TASKFILE_IN_DMAQ 0x0080
#define TASKFILE_OUT_DMAQ 0x0100
#define TASKFILE_P_IN 0x0200
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define TASKFILE_P_OUT 0x0400
#define TASKFILE_P_IN_DMA 0x0800
#define TASKFILE_P_OUT_DMA 0x1000
#define TASKFILE_P_IN_DMAQ 0x2000
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define TASKFILE_P_OUT_DMAQ 0x4000
#define WIN_NOP 0x00
#define CFA_REQ_EXT_ERROR_CODE 0x03  
#define WIN_SRST 0x08  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_DEVICE_RESET 0x08
#define WIN_RECAL 0x10
#define WIN_RESTORE WIN_RECAL
#define WIN_READ 0x20  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_READ_ONCE 0x21  
#define WIN_READ_LONG 0x22  
#define WIN_READ_LONG_ONCE 0x23  
#define WIN_READ_EXT 0x24  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_READDMA_EXT 0x25  
#define WIN_READDMA_QUEUED_EXT 0x26  
#define WIN_READ_NATIVE_MAX_EXT 0x27  
#define WIN_MULTREAD_EXT 0x29  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_WRITE 0x30  
#define WIN_WRITE_ONCE 0x31  
#define WIN_WRITE_LONG 0x32  
#define WIN_WRITE_LONG_ONCE 0x33  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_WRITE_EXT 0x34  
#define WIN_WRITEDMA_EXT 0x35  
#define WIN_WRITEDMA_QUEUED_EXT 0x36  
#define WIN_SET_MAX_EXT 0x37  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define CFA_WRITE_SECT_WO_ERASE 0x38  
#define WIN_MULTWRITE_EXT 0x39  
#define WIN_WRITE_VERIFY 0x3C  
#define WIN_VERIFY 0x40  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_VERIFY_ONCE 0x41  
#define WIN_VERIFY_EXT 0x42  
#define WIN_FORMAT 0x50
#define WIN_INIT 0x60
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_SEEK 0x70  
#define CFA_TRANSLATE_SECTOR 0x87  
#define WIN_DIAGNOSE 0x90
#define WIN_SPECIFY 0x91  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_DOWNLOAD_MICROCODE 0x92
#define WIN_STANDBYNOW2 0x94
#define WIN_STANDBY2 0x96
#define WIN_SETIDLE2 0x97
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_CHECKPOWERMODE2 0x98
#define WIN_SLEEPNOW2 0x99
#define WIN_PACKETCMD 0xA0  
#define WIN_PIDENTIFY 0xA1  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_QUEUED_SERVICE 0xA2
#define WIN_SMART 0xB0  
#define CFA_ERASE_SECTORS 0xC0
#define WIN_MULTREAD 0xC4  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_MULTWRITE 0xC5  
#define WIN_SETMULT 0xC6  
#define WIN_READDMA_QUEUED 0xC7  
#define WIN_READDMA 0xC8  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_READDMA_ONCE 0xC9  
#define WIN_WRITEDMA 0xCA  
#define WIN_WRITEDMA_ONCE 0xCB  
#define WIN_WRITEDMA_QUEUED 0xCC  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define CFA_WRITE_MULTI_WO_ERASE 0xCD  
#define WIN_GETMEDIASTATUS 0xDA
#define WIN_ACKMEDIACHANGE 0xDB  
#define WIN_POSTBOOT 0xDC
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_PREBOOT 0xDD
#define WIN_DOORLOCK 0xDE  
#define WIN_DOORUNLOCK 0xDF  
#define WIN_STANDBYNOW1 0xE0
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_IDLEIMMEDIATE 0xE1  
#define WIN_STANDBY 0xE2  
#define WIN_SETIDLE1 0xE3
#define WIN_READ_BUFFER 0xE4  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_CHECKPOWERMODE1 0xE5
#define WIN_SLEEPNOW1 0xE6
#define WIN_FLUSH_CACHE 0xE7
#define WIN_WRITE_BUFFER 0xE8  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_WRITE_SAME 0xE9  
#define WIN_FLUSH_CACHE_EXT 0xEA  
#define WIN_IDENTIFY 0xEC  
#define WIN_MEDIAEJECT 0xED
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_IDENTIFY_DMA 0xEE  
#define WIN_SETFEATURES 0xEF  
#define EXABYTE_ENABLE_NEST 0xF0
#define WIN_SECURITY_SET_PASS 0xF1
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_SECURITY_UNLOCK 0xF2
#define WIN_SECURITY_ERASE_PREPARE 0xF3
#define WIN_SECURITY_ERASE_UNIT 0xF4
#define WIN_SECURITY_FREEZE_LOCK 0xF5
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define WIN_SECURITY_DISABLE 0xF6
#define WIN_READ_NATIVE_MAX 0xF8  
#define WIN_SET_MAX 0xF9
#define DISABLE_SEAGATE 0xFB
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SMART_READ_VALUES 0xD0
#define SMART_READ_THRESHOLDS 0xD1
#define SMART_AUTOSAVE 0xD2
#define SMART_SAVE 0xD3
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SMART_IMMEDIATE_OFFLINE 0xD4
#define SMART_READ_LOG_SECTOR 0xD5
#define SMART_WRITE_LOG_SECTOR 0xD6
#define SMART_WRITE_THRESHOLDS 0xD7
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SMART_ENABLE 0xD8
#define SMART_DISABLE 0xD9
#define SMART_STATUS 0xDA
#define SMART_AUTO_OFFLINE 0xDB
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SMART_LCYL_PASS 0x4F
#define SMART_HCYL_PASS 0xC2
#define SETFEATURES_EN_8BIT 0x01  
#define SETFEATURES_EN_WCACHE 0x02  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SETFEATURES_DIS_DEFECT 0x04  
#define SETFEATURES_EN_APM 0x05  
#define SETFEATURES_EN_SAME_R 0x22  
#define SETFEATURES_DIS_MSN 0x31  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SETFEATURES_DIS_RETRY 0x33  
#define SETFEATURES_EN_AAM 0x42  
#define SETFEATURES_RW_LONG 0x44  
#define SETFEATURES_SET_CACHE 0x54  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SETFEATURES_DIS_RLA 0x55  
#define SETFEATURES_EN_RI 0x5D  
#define SETFEATURES_EN_SI 0x5E  
#define SETFEATURES_DIS_RPOD 0x66  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SETFEATURES_DIS_ECC 0x77  
#define SETFEATURES_DIS_8BIT 0x81  
#define SETFEATURES_DIS_WCACHE 0x82  
#define SETFEATURES_EN_DEFECT 0x84  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SETFEATURES_DIS_APM 0x85  
#define SETFEATURES_EN_ECC 0x88  
#define SETFEATURES_EN_MSN 0x95  
#define SETFEATURES_EN_RETRY 0x99  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SETFEATURES_EN_RLA 0xAA  
#define SETFEATURES_PREFETCH 0xAB  
#define SETFEATURES_EN_REST 0xAC  
#define SETFEATURES_4B_RW_LONG 0xBB  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SETFEATURES_DIS_AAM 0xC2  
#define SETFEATURES_EN_RPOD 0xCC  
#define SETFEATURES_DIS_RI 0xDD  
#define SETFEATURES_EN_SAME_M 0xDD  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SETFEATURES_DIS_SI 0xDE  
#define SECURITY_SET_PASSWORD 0xBA
#define SECURITY_UNLOCK 0xBB
#define SECURITY_ERASE_PREPARE 0xBC
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define SECURITY_ERASE_UNIT 0xBD
#define SECURITY_FREEZE_LOCK 0xBE
#define SECURITY_DISABLE_PASSWORD 0xBF
struct hd_geometry {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned char heads;
 unsigned char sectors;
 unsigned short cylinders;
 unsigned long start;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
#define HDIO_GETGEO 0x0301  
#define HDIO_GET_UNMASKINTR 0x0302  
#define HDIO_GET_MULTCOUNT 0x0304  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define HDIO_GET_QDMA 0x0305  
#define HDIO_SET_XFER 0x0306  
#define HDIO_OBSOLETE_IDENTITY 0x0307  
#define HDIO_GET_KEEPSETTINGS 0x0308  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define HDIO_GET_32BIT 0x0309  
#define HDIO_GET_NOWERR 0x030a  
#define HDIO_GET_DMA 0x030b  
#define HDIO_GET_NICE 0x030c  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define HDIO_GET_IDENTITY 0x030d  
#define HDIO_GET_WCACHE 0x030e  
#define HDIO_GET_ACOUSTIC 0x030f  
#define HDIO_GET_ADDRESS 0x0310  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define HDIO_GET_BUSSTATE 0x031a  
#define HDIO_TRISTATE_HWIF 0x031b  
#define HDIO_DRIVE_RESET 0x031c  
#define HDIO_DRIVE_TASKFILE 0x031d  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define HDIO_DRIVE_TASK 0x031e  
#define HDIO_DRIVE_CMD 0x031f  
#define HDIO_DRIVE_CMD_AEB HDIO_DRIVE_TASK
#define HDIO_SET_MULTCOUNT 0x0321  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define HDIO_SET_UNMASKINTR 0x0322  
#define HDIO_SET_KEEPSETTINGS 0x0323  
#define HDIO_SET_32BIT 0x0324  
#define HDIO_SET_NOWERR 0x0325  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define HDIO_SET_DMA 0x0326  
#define HDIO_SET_PIO_MODE 0x0327  
#define HDIO_SCAN_HWIF 0x0328  
#define HDIO_SET_NICE 0x0329  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define HDIO_UNREGISTER_HWIF 0x032a  
#define HDIO_SET_WCACHE 0x032b  
#define HDIO_SET_ACOUSTIC 0x032c  
#define HDIO_SET_BUSSTATE 0x032d  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define HDIO_SET_QDMA 0x032e  
#define HDIO_SET_ADDRESS 0x032f  
enum {
 BUSSTATE_OFF = 0,
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 BUSSTATE_ON,
 BUSSTATE_TRISTATE
};
#define __NEW_HD_DRIVE_ID
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct hd_driveid {
 unsigned short config;
 unsigned short cyls;
 unsigned short reserved2;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short heads;
 unsigned short track_bytes;
 unsigned short sector_bytes;
 unsigned short sectors;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short vendor0;
 unsigned short vendor1;
 unsigned short vendor2;
 unsigned char serial_no[20];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short buf_type;
 unsigned short buf_size;
 unsigned short ecc_bytes;
 unsigned char fw_rev[8];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned char model[40];
 unsigned char max_multsect;
 unsigned char vendor3;
 unsigned short dword_io;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned char vendor4;
 unsigned char capability;
 unsigned short reserved50;
 unsigned char vendor5;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned char tPIO;
 unsigned char vendor6;
 unsigned char tDMA;
 unsigned short field_valid;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short cur_cyls;
 unsigned short cur_heads;
 unsigned short cur_sectors;
 unsigned short cur_capacity0;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short cur_capacity1;
 unsigned char multsect;
 unsigned char multsect_valid;
 unsigned int lba_capacity;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short dma_1word;
 unsigned short dma_mword;
 unsigned short eide_pio_modes;
 unsigned short eide_dma_min;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short eide_dma_time;
 unsigned short eide_pio;
 unsigned short eide_pio_iordy;
 unsigned short words69_70[2];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short words71_74[4];
 unsigned short queue_depth;
 unsigned short words76_79[4];
 unsigned short major_rev_num;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short minor_rev_num;
 unsigned short command_set_1;
 unsigned short command_set_2;
 unsigned short cfsse;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short cfs_enable_1;
 unsigned short cfs_enable_2;
 unsigned short csf_default;
 unsigned short dma_ultra;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short trseuc;
 unsigned short trsEuc;
 unsigned short CurAPMvalues;
 unsigned short mprc;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short hw_config;
 unsigned short acoustic;
 unsigned short msrqs;
 unsigned short sxfert;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short sal;
 unsigned int spg;
 unsigned long long lba_capacity_2;
 unsigned short words104_125[22];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short last_lun;
 unsigned short word127;
 unsigned short dlf;
 unsigned short csfo;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short words130_155[26];
 unsigned short word156;
 unsigned short words157_159[3];
 unsigned short cfa_power;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned short words161_175[15];
 unsigned short words176_205[30];
 unsigned short words206_254[49];
 unsigned short integrity_word;
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
#define IDE_NICE_DSC_OVERLAP (0)  
#define IDE_NICE_ATAPI_OVERLAP (1)  
#define IDE_NICE_0 (2)  
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define IDE_NICE_1 (3)  
#define IDE_NICE_2 (4)  
#endif
