1
2 /*
3 * driveid.h
4 *
5 */
6
7 #ifndef __DRIVEID_H__
8 #define __DRIVEID_H__
9
10
11 struct hd_driveid {
12 unsigned short config; /* lots of obsolete bit flags */
13 unsigned short cyls; /* Obsolete, "physical" cyls */
14 unsigned short reserved2; /* reserved (word 2) */
15 unsigned short heads; /* Obsolete, "physical" heads */
16 unsigned short track_bytes; /* unformatted bytes per track */
17 unsigned short sector_bytes; /* unformatted bytes per sector */
18 unsigned short sectors; /* Obsolete, "physical" sectors per track */
19 unsigned short vendor0; /* vendor unique */
20 unsigned short vendor1; /* vendor unique */
21 unsigned short vendor2; /* Retired vendor unique */
22 unsigned char serial_no[20]; /* 0 = not_specified */
23 unsigned short buf_type; /* Retired */
24 unsigned short buf_size; /* Retired, 512 byte increments
25 * 0 = not_specified
26 */
27 unsigned short ecc_bytes; /* for r/w long cmds; 0 = not_specified */
28 unsigned char fw_rev[8]; /* 0 = not_specified */
29 unsigned char model[40]; /* 0 = not_specified */
30 unsigned char max_multsect; /* 0=not_implemented */
31 unsigned char vendor3; /* vendor unique */
32 unsigned short dword_io; /* 0=not_implemented; 1=implemented */
33 unsigned char vendor4; /* vendor unique */
34 unsigned char capability; /* (upper byte of word 49)
35 * 3: IORDYsup
36 * 2: IORDYsw
37 * 1: LBA
38 * 0: DMA
39 */
40 unsigned short reserved50; /* reserved (word 50) */
41 unsigned char vendor5; /* Obsolete, vendor unique */
42 unsigned char tPIO; /* Obsolete, 0=slow, 1=medium, 2=fast */
43 unsigned char vendor6; /* Obsolete, vendor unique */
44 unsigned char tDMA; /* Obsolete, 0=slow, 1=medium, 2=fast */
45 unsigned short field_valid; /* (word 53)
46 * 2: ultra_ok word 88
47 * 1: eide_ok words 64-70
48 * 0: cur_ok words 54-58
49 */
50 unsigned short cur_cyls; /* Obsolete, logical cylinders */
51 unsigned short cur_heads; /* Obsolete, l heads */
52 unsigned short cur_sectors; /* Obsolete, l sectors per track */
53 unsigned short cur_capacity0; /* Obsolete, l total sectors on drive */
54 unsigned short cur_capacity1; /* Obsolete, (2 words, misaligned int) */
55 unsigned char multsect; /* current multiple sector count */
56 unsigned char multsect_valid; /* when (bit0==1) multsect is ok */
57 unsigned int lba_capacity; /* Obsolete, total number of sectors */
58 unsigned short dma_1word; /* Obsolete, single-word dma info */
59 unsigned short dma_mword; /* multiple-word dma info */
60 unsigned short eide_pio_modes; /* bits 0:mode3 1:mode4 */
61 unsigned short eide_dma_min; /* min mword dma cycle time (ns) */
62 unsigned short eide_dma_time; /* recommended mword dma cycle time (ns) */
63 unsigned short eide_pio; /* min cycle time (ns), no IORDY */
64 unsigned short eide_pio_iordy; /* min cycle time (ns), with IORDY */
65 unsigned short words69_70[2]; /* reserved words 69-70
66 * future command overlap and queuing
67 */
68 /* HDIO_GET_IDENTITY currently returns only words 0 through 70 */
69 unsigned short words71_74[4]; /* reserved words 71-74
70 * for IDENTIFY PACKET DEVICE command
71 */
72 unsigned short queue_depth; /* (word 75)
73 * 15:5 reserved
74 * 4:0 Maximum queue depth -1
75 */
76 unsigned short words76_79[4]; /* reserved words 76-79 */
77 unsigned short major_rev_num; /* (word 80) */
78 unsigned short minor_rev_num; /* (word 81) */
79 unsigned short command_set_1; /* (word 82) supported
80 * 15: Obsolete
81 * 14: NOP command
82 * 13: READ_BUFFER
83 * 12: WRITE_BUFFER
84 * 11: Obsolete
85 * 10: Host Protected Area
86 * 9: DEVICE Reset
87 * 8: SERVICE Interrupt
88 * 7: Release Interrupt
89 * 6: look-ahead
90 * 5: write cache
91 * 4: PACKET Command
92 * 3: Power Management Feature Set
93 * 2: Removable Feature Set
94 * 1: Security Feature Set
95 * 0: SMART Feature Set
96 */
97 unsigned short command_set_2; /* (word 83)
98 * 15: Shall be ZERO
99 * 14: Shall be ONE
100 * 13: FLUSH CACHE EXT
101 * 12: FLUSH CACHE
102 * 11: Device Configuration Overlay
103 * 10: 48-bit Address Feature Set
104 * 9: Automatic Acoustic Management
105 * 8: SET MAX security
106 * 7: reserved 1407DT PARTIES
107 * 6: SetF sub-command Power-Up
108 * 5: Power-Up in Standby Feature Set
109 * 4: Removable Media Notification
110 * 3: APM Feature Set
111 * 2: CFA Feature Set
112 * 1: READ/WRITE DMA QUEUED
113 * 0: Download MicroCode
114 */
115 unsigned short cfsse; /* (word 84)
116 * cmd set-feature supported extensions
117 * 15: Shall be ZERO
118 * 14: Shall be ONE
119 * 13:6 reserved
120 * 5: General Purpose Logging
121 * 4: Streaming Feature Set
122 * 3: Media Card Pass Through
123 * 2: Media Serial Number Valid
124 * 1: SMART selt-test supported
125 * 0: SMART error logging
126 */
127 unsigned short cfs_enable_1; /* (word 85)
128 * command set-feature enabled
129 * 15: Obsolete
130 * 14: NOP command
131 * 13: READ_BUFFER
132 * 12: WRITE_BUFFER
133 * 11: Obsolete
134 * 10: Host Protected Area
135 * 9: DEVICE Reset
136 * 8: SERVICE Interrupt
137 * 7: Release Interrupt
138 * 6: look-ahead
139 * 5: write cache
140 * 4: PACKET Command
141 * 3: Power Management Feature Set
142 * 2: Removable Feature Set
143 * 1: Security Feature Set
144 * 0: SMART Feature Set
145 */
146 unsigned short cfs_enable_2; /* (word 86)
147 * command set-feature enabled
148 * 15: Shall be ZERO
149 * 14: Shall be ONE
150 * 13: FLUSH CACHE EXT
151 * 12: FLUSH CACHE
152 * 11: Device Configuration Overlay
153 * 10: 48-bit Address Feature Set
154 * 9: Automatic Acoustic Management
155 * 8: SET MAX security
156 * 7: reserved 1407DT PARTIES
157 * 6: SetF sub-command Power-Up
158 * 5: Power-Up in Standby Feature Set
159 * 4: Removable Media Notification
160 * 3: APM Feature Set
161 * 2: CFA Feature Set
162 * 1: READ/WRITE DMA QUEUED
163 * 0: Download MicroCode
164 */
165 unsigned short csf_default; /* (word 87)
166 * command set-feature default
167 * 15: Shall be ZERO
168 * 14: Shall be ONE
169 * 13:6 reserved
170 * 5: General Purpose Logging enabled
171 * 4: Valid CONFIGURE STREAM executed
172 * 3: Media Card Pass Through enabled
173 * 2: Media Serial Number Valid
174 * 1: SMART selt-test supported
175 * 0: SMART error logging
176 */
177 unsigned short dma_ultra; /* (word 88) */
178 unsigned short trseuc; /* time required for security erase */
179 unsigned short trsEuc; /* time required for enhanced erase */
180 unsigned short CurAPMvalues; /* current APM values */
181 unsigned short mprc; /* master password revision code */
182 unsigned short hw_config; /* hardware config (word 93)
183 * 15: Shall be ZERO
184 * 14: Shall be ONE
185 * 13:
186 * 12:
187 * 11:
188 * 10:
189 * 9:
190 * 8:
191 * 7:
192 * 6:
193 * 5:
194 * 4:
195 * 3:
196 * 2:
197 * 1:
198 * 0: Shall be ONE
199 */
200 unsigned short acoustic; /* (word 94)
201 * 15:8 Vendor's recommended value
202 * 7:0 current value
203 */
204 unsigned short msrqs; /* min stream request size */
205 unsigned short sxfert; /* stream transfer time */
206 unsigned short sal; /* stream access latency */
207 unsigned int spg; /* stream performance granularity */
208 unsigned long long lba_capacity_2;/* 48-bit total number of sectors */
209 unsigned short words104_125[22];/* reserved words 104-125 */
210 unsigned short last_lun; /* (word 126) */
211 unsigned short word127; /* (word 127) Feature Set
212 * Removable Media Notification
213 * 15:2 reserved
214 * 1:0 00 = not supported
215 * 01 = supported
216 * 10 = reserved
217 * 11 = reserved
218 */
219 unsigned short dlf; /* (word 128)
220 * device lock function
221 * 15:9 reserved
222 * 8 security level 1:max 0:high
223 * 7:6 reserved
224 * 5 enhanced erase
225 * 4 expire
226 * 3 frozen
227 * 2 locked
228 * 1 en/disabled
229 * 0 capability
230 */
231 unsigned short csfo; /* (word 129)
232 * current set features options
233 * 15:4 reserved
234 * 3: auto reassign
235 * 2: reverting
236 * 1: read-look-ahead
237 * 0: write cache
238 */
239 unsigned short words130_155[26];/* reserved vendor words 130-155 */
240 unsigned short word156; /* reserved vendor word 156 */
241 unsigned short words157_159[3];/* reserved vendor words 157-159 */
242 unsigned short cfa_power; /* (word 160) CFA Power Mode
243 * 15 word 160 supported
244 * 14 reserved
245 * 13
246 * 12
247 * 11:0
248 */
249 unsigned short words161_175[15];/* Reserved for CFA */
250 unsigned short words176_205[30];/* Current Media Serial Number */
251 unsigned short words206_254[49];/* reserved words 206-254 */
252 unsigned short integrity_word; /* (word 255)
253 * 15:8 Checksum
254 * 7:0 Signature
255 */
256 };
257
258 #endif /* __DRIVEID_H__ */
259
Cache object: 39558da8a2cc99465709d608649171c0
|