/****************************************************************************
 ****************************************************************************
 ***
 ***   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
