diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2007-10-21 20:56:19 -0400 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2007-10-23 01:49:47 -0400 |
commit | ee8e7cfe9d330d6f1ce0b9b1620d6df5d9cf6b70 (patch) | |
tree | a9534bac7060e546c0c3e6ea34d0469d8903bf0e /include/linux/edd.h | |
parent | 9525ca0286afd54a5cd69d9ded741b4df8d0c554 (diff) |
Make asm-x86/bootparam.h includable from userspace.
To actually write a bootloader (or, say, the lguest launcher)
currently requires duplication of these structures. Making them
includable from userspace is much nicer.
We merge the common userspace-required definitions of e820_32/64.h
into e820.h for export.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'include/linux/edd.h')
-rw-r--r-- | include/linux/edd.h | 137 |
1 files changed, 69 insertions, 68 deletions
diff --git a/include/linux/edd.h b/include/linux/edd.h index 7b647822d6dc..5d747c5cd0fe 100644 --- a/include/linux/edd.h +++ b/include/linux/edd.h | |||
@@ -67,113 +67,113 @@ | |||
67 | #define EDD_INFO_USE_INT13_FN50 (1 << 7) | 67 | #define EDD_INFO_USE_INT13_FN50 (1 << 7) |
68 | 68 | ||
69 | struct edd_device_params { | 69 | struct edd_device_params { |
70 | u16 length; | 70 | __u16 length; |
71 | u16 info_flags; | 71 | __u16 info_flags; |
72 | u32 num_default_cylinders; | 72 | __u32 num_default_cylinders; |
73 | u32 num_default_heads; | 73 | __u32 num_default_heads; |
74 | u32 sectors_per_track; | 74 | __u32 sectors_per_track; |
75 | u64 number_of_sectors; | 75 | __u64 number_of_sectors; |
76 | u16 bytes_per_sector; | 76 | __u16 bytes_per_sector; |
77 | u32 dpte_ptr; /* 0xFFFFFFFF for our purposes */ | 77 | __u32 dpte_ptr; /* 0xFFFFFFFF for our purposes */ |
78 | u16 key; /* = 0xBEDD */ | 78 | __u16 key; /* = 0xBEDD */ |
79 | u8 device_path_info_length; /* = 44 */ | 79 | __u8 device_path_info_length; /* = 44 */ |
80 | u8 reserved2; | 80 | __u8 reserved2; |
81 | u16 reserved3; | 81 | __u16 reserved3; |
82 | u8 host_bus_type[4]; | 82 | __u8 host_bus_type[4]; |
83 | u8 interface_type[8]; | 83 | __u8 interface_type[8]; |
84 | union { | 84 | union { |
85 | struct { | 85 | struct { |
86 | u16 base_address; | 86 | __u16 base_address; |
87 | u16 reserved1; | 87 | __u16 reserved1; |
88 | u32 reserved2; | 88 | __u32 reserved2; |
89 | } __attribute__ ((packed)) isa; | 89 | } __attribute__ ((packed)) isa; |
90 | struct { | 90 | struct { |
91 | u8 bus; | 91 | __u8 bus; |
92 | u8 slot; | 92 | __u8 slot; |
93 | u8 function; | 93 | __u8 function; |
94 | u8 channel; | 94 | __u8 channel; |
95 | u32 reserved; | 95 | __u32 reserved; |
96 | } __attribute__ ((packed)) pci; | 96 | } __attribute__ ((packed)) pci; |
97 | /* pcix is same as pci */ | 97 | /* pcix is same as pci */ |
98 | struct { | 98 | struct { |
99 | u64 reserved; | 99 | __u64 reserved; |
100 | } __attribute__ ((packed)) ibnd; | 100 | } __attribute__ ((packed)) ibnd; |
101 | struct { | 101 | struct { |
102 | u64 reserved; | 102 | __u64 reserved; |
103 | } __attribute__ ((packed)) xprs; | 103 | } __attribute__ ((packed)) xprs; |
104 | struct { | 104 | struct { |
105 | u64 reserved; | 105 | __u64 reserved; |
106 | } __attribute__ ((packed)) htpt; | 106 | } __attribute__ ((packed)) htpt; |
107 | struct { | 107 | struct { |
108 | u64 reserved; | 108 | __u64 reserved; |
109 | } __attribute__ ((packed)) unknown; | 109 | } __attribute__ ((packed)) unknown; |
110 | } interface_path; | 110 | } interface_path; |
111 | union { | 111 | union { |
112 | struct { | 112 | struct { |
113 | u8 device; | 113 | __u8 device; |
114 | u8 reserved1; | 114 | __u8 reserved1; |
115 | u16 reserved2; | 115 | __u16 reserved2; |
116 | u32 reserved3; | 116 | __u32 reserved3; |
117 | u64 reserved4; | 117 | __u64 reserved4; |
118 | } __attribute__ ((packed)) ata; | 118 | } __attribute__ ((packed)) ata; |
119 | struct { | 119 | struct { |
120 | u8 device; | 120 | __u8 device; |
121 | u8 lun; | 121 | __u8 lun; |
122 | u8 reserved1; | 122 | __u8 reserved1; |
123 | u8 reserved2; | 123 | __u8 reserved2; |
124 | u32 reserved3; | 124 | __u32 reserved3; |
125 | u64 reserved4; | 125 | __u64 reserved4; |
126 | } __attribute__ ((packed)) atapi; | 126 | } __attribute__ ((packed)) atapi; |
127 | struct { | 127 | struct { |
128 | u16 id; | 128 | __u16 id; |
129 | u64 lun; | 129 | __u64 lun; |
130 | u16 reserved1; | 130 | __u16 reserved1; |
131 | u32 reserved2; | 131 | __u32 reserved2; |
132 | } __attribute__ ((packed)) scsi; | 132 | } __attribute__ ((packed)) scsi; |
133 | struct { | 133 | struct { |
134 | u64 serial_number; | 134 | __u64 serial_number; |
135 | u64 reserved; | 135 | __u64 reserved; |
136 | } __attribute__ ((packed)) usb; | 136 | } __attribute__ ((packed)) usb; |
137 | struct { | 137 | struct { |
138 | u64 eui; | 138 | __u64 eui; |
139 | u64 reserved; | 139 | __u64 reserved; |
140 | } __attribute__ ((packed)) i1394; | 140 | } __attribute__ ((packed)) i1394; |
141 | struct { | 141 | struct { |
142 | u64 wwid; | 142 | __u64 wwid; |
143 | u64 lun; | 143 | __u64 lun; |
144 | } __attribute__ ((packed)) fibre; | 144 | } __attribute__ ((packed)) fibre; |
145 | struct { | 145 | struct { |
146 | u64 identity_tag; | 146 | __u64 identity_tag; |
147 | u64 reserved; | 147 | __u64 reserved; |
148 | } __attribute__ ((packed)) i2o; | 148 | } __attribute__ ((packed)) i2o; |
149 | struct { | 149 | struct { |
150 | u32 array_number; | 150 | __u32 array_number; |
151 | u32 reserved1; | 151 | __u32 reserved1; |
152 | u64 reserved2; | 152 | __u64 reserved2; |
153 | } __attribute__ ((packed)) raid; | 153 | } __attribute__ ((packed)) raid; |
154 | struct { | 154 | struct { |
155 | u8 device; | 155 | __u8 device; |
156 | u8 reserved1; | 156 | __u8 reserved1; |
157 | u16 reserved2; | 157 | __u16 reserved2; |
158 | u32 reserved3; | 158 | __u32 reserved3; |
159 | u64 reserved4; | 159 | __u64 reserved4; |
160 | } __attribute__ ((packed)) sata; | 160 | } __attribute__ ((packed)) sata; |
161 | struct { | 161 | struct { |
162 | u64 reserved1; | 162 | __u64 reserved1; |
163 | u64 reserved2; | 163 | __u64 reserved2; |
164 | } __attribute__ ((packed)) unknown; | 164 | } __attribute__ ((packed)) unknown; |
165 | } device_path; | 165 | } device_path; |
166 | u8 reserved4; | 166 | __u8 reserved4; |
167 | u8 checksum; | 167 | __u8 checksum; |
168 | } __attribute__ ((packed)); | 168 | } __attribute__ ((packed)); |
169 | 169 | ||
170 | struct edd_info { | 170 | struct edd_info { |
171 | u8 device; | 171 | __u8 device; |
172 | u8 version; | 172 | __u8 version; |
173 | u16 interface_support; | 173 | __u16 interface_support; |
174 | u16 legacy_max_cylinder; | 174 | __u16 legacy_max_cylinder; |
175 | u8 legacy_max_head; | 175 | __u8 legacy_max_head; |
176 | u8 legacy_sectors_per_track; | 176 | __u8 legacy_sectors_per_track; |
177 | struct edd_device_params params; | 177 | struct edd_device_params params; |
178 | } __attribute__ ((packed)); | 178 | } __attribute__ ((packed)); |
179 | 179 | ||
@@ -184,8 +184,9 @@ struct edd { | |||
184 | unsigned char edd_info_nr; | 184 | unsigned char edd_info_nr; |
185 | }; | 185 | }; |
186 | 186 | ||
187 | #ifdef __KERNEL__ | ||
187 | extern struct edd edd; | 188 | extern struct edd edd; |
188 | 189 | #endif /* __KERNEL__ */ | |
189 | #endif /*!__ASSEMBLY__ */ | 190 | #endif /*!__ASSEMBLY__ */ |
190 | 191 | ||
191 | #endif /* _LINUX_EDD_H */ | 192 | #endif /* _LINUX_EDD_H */ |