1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19 #ifndef _UAPI_LINUX_EDD_H 20 #define _UAPI_LINUX_EDD_H 21 #include <linux/types.h> 22 #define EDDNR 0x1e9 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 #define EDDBUF 0xd00 25 #define EDDMAXNR 6 26 #define EDDEXTSIZE 8 27 #define EDDPARMSIZE 74 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 #define CHECKEXTENSIONSPRESENT 0x41 30 #define GETDEVICEPARAMETERS 0x48 31 #define LEGACYGETDEVICEPARAMETERS 0x08 32 #define EDDMAGIC1 0x55AA 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 #define EDDMAGIC2 0xAA55 35 #define READ_SECTORS 0x02 36 #define EDD_MBR_SIG_OFFSET 0x1B8 37 #define EDD_MBR_SIG_BUF 0x290 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 #define EDD_MBR_SIG_MAX 16 40 #define EDD_MBR_SIG_NR_BUF 0x1ea 41 #ifndef __ASSEMBLY__ 42 #define EDD_EXT_FIXED_DISK_ACCESS (1 << 0) 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 #define EDD_EXT_DEVICE_LOCKING_AND_EJECTING (1 << 1) 45 #define EDD_EXT_ENHANCED_DISK_DRIVE_SUPPORT (1 << 2) 46 #define EDD_EXT_64BIT_EXTENSIONS (1 << 3) 47 #define EDD_INFO_DMA_BOUNDARY_ERROR_TRANSPARENT (1 << 0) 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 #define EDD_INFO_GEOMETRY_VALID (1 << 1) 50 #define EDD_INFO_REMOVABLE (1 << 2) 51 #define EDD_INFO_WRITE_VERIFY (1 << 3) 52 #define EDD_INFO_MEDIA_CHANGE_NOTIFICATION (1 << 4) 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 #define EDD_INFO_LOCKABLE (1 << 5) 55 #define EDD_INFO_NO_MEDIA_PRESENT (1 << 6) 56 #define EDD_INFO_USE_INT13_FN50 (1 << 7) 57 struct edd_device_params { 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 __u16 length; 60 __u16 info_flags; 61 __u32 num_default_cylinders; 62 __u32 num_default_heads; 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 __u32 sectors_per_track; 65 __u64 number_of_sectors; 66 __u16 bytes_per_sector; 67 __u32 dpte_ptr; 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 __u16 key; 70 __u8 device_path_info_length; 71 __u8 reserved2; 72 __u16 reserved3; 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 __u8 host_bus_type[4]; 75 __u8 interface_type[8]; 76 union { 77 struct { 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 __u16 base_address; 80 __u16 reserved1; 81 __u32 reserved2; 82 } __attribute__((packed)) isa; 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 struct { 85 __u8 bus; 86 __u8 slot; 87 __u8 function; 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 __u8 channel; 90 __u32 reserved; 91 } __attribute__((packed)) pci; 92 struct { 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 __u64 reserved; 95 } __attribute__((packed)) ibnd; 96 struct { 97 __u64 reserved; 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 } __attribute__((packed)) xprs; 100 struct { 101 __u64 reserved; 102 } __attribute__((packed)) htpt; 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 struct { 105 __u64 reserved; 106 } __attribute__((packed)) unknown; 107 } interface_path; 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 union { 110 struct { 111 __u8 device; 112 __u8 reserved1; 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 __u16 reserved2; 115 __u32 reserved3; 116 __u64 reserved4; 117 } __attribute__((packed)) ata; 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 struct { 120 __u8 device; 121 __u8 lun; 122 __u8 reserved1; 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 __u8 reserved2; 125 __u32 reserved3; 126 __u64 reserved4; 127 } __attribute__((packed)) atapi; 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 struct { 130 __u16 id; 131 __u64 lun; 132 __u16 reserved1; 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 __u32 reserved2; 135 } __attribute__((packed)) scsi; 136 struct { 137 __u64 serial_number; 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 __u64 reserved; 140 } __attribute__((packed)) usb; 141 struct { 142 __u64 eui; 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 __u64 reserved; 145 } __attribute__((packed)) i1394; 146 struct { 147 __u64 wwid; 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 __u64 lun; 150 } __attribute__((packed)) fibre; 151 struct { 152 __u64 identity_tag; 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 __u64 reserved; 155 } __attribute__((packed)) i2o; 156 struct { 157 __u32 array_number; 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 __u32 reserved1; 160 __u64 reserved2; 161 } __attribute__((packed)) raid; 162 struct { 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 __u8 device; 165 __u8 reserved1; 166 __u16 reserved2; 167 __u32 reserved3; 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 __u64 reserved4; 170 } __attribute__((packed)) sata; 171 struct { 172 __u64 reserved1; 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 __u64 reserved2; 175 } __attribute__((packed)) unknown; 176 } device_path; 177 __u8 reserved4; 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 __u8 checksum; 180 } __attribute__((packed)); 181 struct edd_info { 182 __u8 device; 183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 __u8 version; 185 __u16 interface_support; 186 __u16 legacy_max_cylinder; 187 __u8 legacy_max_head; 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 __u8 legacy_sectors_per_track; 190 struct edd_device_params params; 191 } __attribute__((packed)); 192 struct edd { 193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194 unsigned int mbr_signature[EDD_MBR_SIG_MAX]; 195 struct edd_info edd_info[EDDMAXNR]; 196 unsigned char mbr_signature_nr; 197 unsigned char edd_info_nr; 198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199 }; 200 #endif 201 #endif 202