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