diff --git a/libc/kernel/common/linux/hdreg.h b/libc/kernel/common/linux/hdreg.h
index a684ee9..155de99 100644
--- a/libc/kernel/common/linux/hdreg.h
+++ b/libc/kernel/common/linux/hdreg.h
@@ -7,426 +7,475 @@
  ***   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
