Root/
Source at commit 2741 created 8 years 11 months ago. By ifabio, Add data for new logo and clut (grey) from macosxbootloader (Credits to Pike R. Alpha) | |
---|---|
1 | /*␊ |
2 | * Copyright (c) 1998-2009 Apple Inc. All rights reserved.␊ |
3 | *␊ |
4 | * @APPLE_LICENSE_HEADER_START@␊ |
5 | * ␊ |
6 | * This file contains Original Code and/or Modifications of Original Code␊ |
7 | * as defined in and that are subject to the Apple Public Source License␊ |
8 | * Version 2.0 (the 'License'). You may not use this file except in␊ |
9 | * compliance with the License. Please obtain a copy of the License at␊ |
10 | * http://www.opensource.apple.com/apsl/ and read it before using this␊ |
11 | * file.␊ |
12 | * ␊ |
13 | * The Original Code and all software distributed under the License are␊ |
14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER␊ |
15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,␊ |
16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,␊ |
17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.␊ |
18 | * Please see the License for the specific language governing rights and␊ |
19 | * limitations under the License.␊ |
20 | * ␊ |
21 | * @APPLE_LICENSE_HEADER_END@␊ |
22 | */␊ |
23 | ␊ |
24 | #ifndef _IOKIT_SCSI_CMDS_MODE_DEFINITIONS_H_␊ |
25 | #define _IOKIT_SCSI_CMDS_MODE_DEFINITIONS_H_␊ |
26 | ␊ |
27 | ␊ |
28 | //-----------------------------------------------------------------------------␊ |
29 | //␉Includes␊ |
30 | //-----------------------------------------------------------------------------␊ |
31 | ␊ |
32 | #if KERNEL␊ |
33 | #include <IOKit/IOTypes.h>␊ |
34 | #else␊ |
35 | #include <CoreFoundation/CoreFoundation.h>␊ |
36 | #endif␊ |
37 | ␊ |
38 | ␊ |
39 | /*! @header SCSI Request Sense Definitions␊ |
40 | ␉@discussion␊ |
41 | ␉This file contains all definitions for the data returned from␊ |
42 | ␉the MODE_SENSE_6 and MODE_SENSE_10 commands.␊ |
43 | */␊ |
44 | ␊ |
45 | #pragma pack(1)␊ |
46 | ␊ |
47 | /*!␊ |
48 | @struct SPCModeParameterHeader6␊ |
49 | @discussion␊ |
50 | Mode Parameter Header for the MODE_SENSE_6 command.␊ |
51 | */␊ |
52 | typedef struct SPCModeParameterHeader6␊ |
53 | {␊ |
54 | ␉UInt8␉␉MODE_DATA_LENGTH;␊ |
55 | ␉UInt8␉␉MEDIUM_TYPE;␊ |
56 | ␉UInt8␉␉DEVICE_SPECIFIC_PARAMETER;␊ |
57 | ␉UInt8␉␉BLOCK_DESCRIPTOR_LENGTH;␊ |
58 | } SPCModeParameterHeader6;␊ |
59 | ␊ |
60 | ␊ |
61 | /*!␊ |
62 | @struct SPCModeParameterHeader10␊ |
63 | @discussion␊ |
64 | Mode Parameter Header for the MODE_SENSE_10 command.␊ |
65 | */␊ |
66 | typedef struct SPCModeParameterHeader10␊ |
67 | {␊ |
68 | ␉UInt16␉␉MODE_DATA_LENGTH;␊ |
69 | ␉UInt8␉␉MEDIUM_TYPE;␊ |
70 | ␉UInt8␉␉DEVICE_SPECIFIC_PARAMETER;␊ |
71 | ␉UInt8␉␉LONGLBA;␊ |
72 | ␉UInt8␉␉RESERVED;␊ |
73 | ␉UInt16␉␉BLOCK_DESCRIPTOR_LENGTH;␊ |
74 | } SPCModeParameterHeader10;␊ |
75 | ␊ |
76 | ␊ |
77 | /*!␊ |
78 | @enum Long LBA Bitfield definitions␊ |
79 | @discussion␊ |
80 | Long LBA Bitfield definitions for Mode Parameter Header␊ |
81 | for MODE_SENSE_10 command.␊ |
82 | @constant kModeSenseParameterHeader10_LongLBABit␊ |
83 | Bit to indicate Long LBA block descriptors follow.␊ |
84 | @constant kModeSenseParameterHeader10_LongLBAMask␊ |
85 | Mask to test for kModeSenseParameterHeader10_LongLBABit.␊ |
86 | */␊ |
87 | enum␊ |
88 | {␊ |
89 | ␉kModeSenseParameterHeader10_LongLBABit␉= 0,␊ |
90 | ␉kModeSenseParameterHeader10_LongLBAMask␉= (1 << kModeSenseParameterHeader10_LongLBABit),␊ |
91 | };␊ |
92 | ␊ |
93 | ␊ |
94 | /*!␊ |
95 | @enum Device Specific Parameter Bitfield definitions␊ |
96 | @discussion␊ |
97 | SBC definitions for Device Specific Parameter in the␊ |
98 | Mode Sense Header Block.␊ |
99 | @constant kModeSenseSBCDeviceSpecific_DPOFUABit␊ |
100 | Bit to indicate DPO and FUA bits are accepted by the device server.␊ |
101 | @constant kModeSenseSBCDeviceSpecific_WriteProtectBit␊ |
102 | Bit to indicate medium is write protected.␊ |
103 | @constant kModeSenseSBCDeviceSpecific_DPOFUAMask␊ |
104 | Mask to test for kModeSenseSBCDeviceSpecific_DPOFUABit.␊ |
105 | @constant kModeSenseSBCDeviceSpecific_WriteProtectMask␊ |
106 | Mask to test for kModeSenseSBCDeviceSpecific_WriteProtectBit.␊ |
107 | */␊ |
108 | enum␊ |
109 | {␊ |
110 | ␉kModeSenseSBCDeviceSpecific_DPOFUABit␉ ␉␉= 4,␊ |
111 | ␉kModeSenseSBCDeviceSpecific_WriteProtectBit␉ ␉= 7,␊ |
112 | ␉kModeSenseSBCDeviceSpecific_DPOFUAMask ␉␉␉= (1 << kModeSenseSBCDeviceSpecific_DPOFUABit),␊ |
113 | ␉kModeSenseSBCDeviceSpecific_WriteProtectMask ␉= (1 << kModeSenseSBCDeviceSpecific_WriteProtectBit)␊ |
114 | };␊ |
115 | ␊ |
116 | ␊ |
117 | /*!␊ |
118 | @struct ModeParameterBlockDescriptor␊ |
119 | @discussion␊ |
120 | General mode parameter block descriptor.␊ |
121 | */␊ |
122 | typedef struct ModeParameterBlockDescriptor␊ |
123 | {␊ |
124 | ␉UInt8␉␉DENSITY_CODE;␊ |
125 | ␉UInt8␉␉NUMBER_OF_BLOCKS[3];␊ |
126 | ␉UInt8␉␉RESERVED;␊ |
127 | ␉UInt8␉␉BLOCK_LENGTH[3];␊ |
128 | } ModeParameterBlockDescriptor;␊ |
129 | ␊ |
130 | ␊ |
131 | /*!␊ |
132 | @struct DASDModeParameterBlockDescriptor␊ |
133 | @discussion␊ |
134 | Direct Access Storage Device mode parameter block descriptor.␊ |
135 | */␊ |
136 | typedef struct DASDModeParameterBlockDescriptor␊ |
137 | {␊ |
138 | ␉UInt32␉␉NUMBER_OF_BLOCKS;␊ |
139 | ␉UInt8␉␉DENSITY_CODE;␊ |
140 | ␉UInt8␉␉BLOCK_LENGTH[3];␊ |
141 | } DASDModeParameterBlockDescriptor;␊ |
142 | ␊ |
143 | ␊ |
144 | /*!␊ |
145 | @struct LongLBAModeParameterBlockDescriptor␊ |
146 | @discussion␊ |
147 | Long LBA mode parameter block descriptor.␊ |
148 | */␊ |
149 | typedef struct LongLBAModeParameterBlockDescriptor␊ |
150 | {␊ |
151 | ␉UInt64␉␉NUMBER_OF_BLOCKS;␊ |
152 | ␉UInt8␉␉DENSITY_CODE;␊ |
153 | ␉UInt8␉␉RESERVED[3];␊ |
154 | ␉UInt32␉␉BLOCK_LENGTH;␊ |
155 | } LongLBAModeParameterBlockDescriptor;␊ |
156 | ␊ |
157 | ␊ |
158 | /*!␊ |
159 | @struct ModePageFormatHeader␊ |
160 | @discussion␊ |
161 | Mode Page format header.␊ |
162 | */␊ |
163 | typedef struct ModePageFormatHeader␊ |
164 | {␊ |
165 | ␉UInt8␉␉PS_PAGE_CODE;␊ |
166 | ␉UInt8␉␉PAGE_LENGTH;␊ |
167 | } ModePageFormatHeader;␊ |
168 | ␊ |
169 | ␊ |
170 | /*!␊ |
171 | @enum Mode Page Format bit definitions␊ |
172 | @discussion␊ |
173 | Mode Page Format bit definitions.␊ |
174 | @constant kModePageFormat_PS_Bit␊ |
175 | Bit to indicate Parameters Saveable.␊ |
176 | @constant kModePageFormat_PAGE_CODE_Mask␊ |
177 | Mask to obtain the PAGE_CODE from the PS_PAGE_CODE field.␊ |
178 | @constant kModePageFormat_PS_Mask␊ |
179 | Mask to test for kModePageFormat_PS_Bit.␊ |
180 | */␊ |
181 | enum␊ |
182 | {␊ |
183 | ␉kModePageFormat_PS_Bit␉␉␉= 7,␊ |
184 | ␉␊ |
185 | ␉kModePageFormat_PAGE_CODE_Mask␉= 0x3F,␊ |
186 | ␉kModePageFormat_PS_Mask␉␉␉= (1 << kModePageFormat_PS_Bit)␊ |
187 | };␊ |
188 | ␊ |
189 | ␊ |
190 | #if 0␊ |
191 | #pragma mark -␊ |
192 | #pragma mark SPC Mode Pages␊ |
193 | #pragma mark -␊ |
194 | #endif␊ |
195 | ␊ |
196 | ␊ |
197 | /*!␊ |
198 | @enum SPC Mode Pages␊ |
199 | @discussion␊ |
200 | SPC Mode Page definitions.␊ |
201 | @constant kSPCModePagePowerConditionCode␊ |
202 | Power Conditions Mode Page value.␊ |
203 | @constant kSPCModePageAllPagesCode␊ |
204 | All Mode Pages value.␊ |
205 | */␊ |
206 | enum␊ |
207 | {␊ |
208 | ␉kSPCModePagePowerConditionCode␉␉= 0x1A,␊ |
209 | ␉kSPCModePageAllPagesCode␉␉␉= 0x3F␊ |
210 | };␊ |
211 | ␊ |
212 | /*!␊ |
213 | @struct SPCModePagePowerCondition␊ |
214 | @discussion␊ |
215 | Power Conditions Mode Page (PAGE CODE 0x1A) format.␊ |
216 | */␊ |
217 | typedef struct SPCModePagePowerCondition␊ |
218 | {␊ |
219 | ␉ModePageFormatHeader␉header;␊ |
220 | ␉UInt8␉␉␉␉␉RESERVED;␊ |
221 | ␉UInt8␉␉␉␉␉IDLE_STANDBY;␊ |
222 | ␉UInt32␉␉␉␉␉IDLE_CONDITION_TIMER;␊ |
223 | ␉UInt32␉␉␉␉␉STANDBY_CONDITION_TIMER;␊ |
224 | } SPCModePagePowerCondition;␊ |
225 | ␊ |
226 | ␊ |
227 | #if 0␊ |
228 | #pragma mark -␊ |
229 | #pragma mark 0x00 SBC Direct Access Mode Pages␊ |
230 | #pragma mark -␊ |
231 | #endif␊ |
232 | ␊ |
233 | ␊ |
234 | /*!␊ |
235 | @enum SBC Mode Pages␊ |
236 | @discussion␊ |
237 | SBC Mode Page definitions.␊ |
238 | @constant kSBCModePageFormatDeviceCode␊ |
239 | Format Device Mode Page value.␊ |
240 | @constant kSBCModePageRigidDiskGeometryCode␊ |
241 | Rigid Disk Geometry Page value.␊ |
242 | @constant kSBCModePageFlexibleDiskCode␊ |
243 | Flexible Disk Page value.␊ |
244 | @constant kSBCModePageCachingCode␊ |
245 | Caching Page value.␊ |
246 | */␊ |
247 | enum␊ |
248 | {␊ |
249 | ␉kSBCModePageFormatDeviceCode␉␉= 0x03,␊ |
250 | ␉kSBCModePageRigidDiskGeometryCode␉= 0x04,␊ |
251 | ␉kSBCModePageFlexibleDiskCode␉␉= 0x05,␊ |
252 | ␉kSBCModePageCachingCode␉␉␉␉= 0x08␊ |
253 | };␊ |
254 | ␊ |
255 | ␊ |
256 | /*!␊ |
257 | @struct SBCModePageFormatDevice␊ |
258 | @discussion␊ |
259 | Format Device Mode Page (PAGE CODE 0x03) format.␊ |
260 | */␊ |
261 | typedef struct SBCModePageFormatDevice␊ |
262 | {␊ |
263 | ␉ModePageFormatHeader␉header;␊ |
264 | ␉UInt16␉␉␉␉␉TRACKS_PER_ZONE;␊ |
265 | ␉UInt16␉␉␉␉␉ALTERNATE_SECTORS_PER_ZONE;␊ |
266 | ␉UInt16␉␉␉␉␉ALTERNATE_TRACKS_PER_ZONE;␊ |
267 | ␉UInt16␉␉␉␉␉ALTERNATE_TRACKS_PER_LOGICAL_UNIT;␊ |
268 | ␉UInt16␉␉␉␉␉SECTORS_PER_TRACK;␊ |
269 | ␉UInt16␉␉␉␉␉DATA_BYTES_PER_PHYSICAL_SECTOR;␊ |
270 | ␉UInt16␉␉␉␉␉INTERLEAVE;␊ |
271 | ␉UInt16␉␉␉␉␉TRACK_SKEW_FACTOR;␊ |
272 | ␉UInt16␉␉␉␉␉CYLINDER_SKEW_FACTOR;␊ |
273 | ␉UInt8␉␉␉␉␉SSEC_HSEC_RMB_SURF;␊ |
274 | ␉UInt8␉␉␉␉␉RESERVED[3];␊ |
275 | } SBCModePageFormatDevice;␊ |
276 | ␊ |
277 | ␊ |
278 | /*!␊ |
279 | @struct SBCModePageRigidDiskGeometry␊ |
280 | @discussion␊ |
281 | Rigid Disk Geometry Mode Page (PAGE CODE 0x04) format.␊ |
282 | */␊ |
283 | typedef struct SBCModePageRigidDiskGeometry␊ |
284 | {␊ |
285 | ␉ModePageFormatHeader␉header;␊ |
286 | ␉UInt8␉␉␉␉␉NUMBER_OF_CYLINDERS[3];␊ |
287 | ␉UInt8␉␉␉␉␉NUMBER_OF_HEADS;␊ |
288 | ␉UInt8␉␉␉␉␉STARTING_CYLINDER_WRITE_PRECOMPENSATION[3];␊ |
289 | ␉UInt8␉␉␉␉␉STARTING_CYLINDER_REDUCED_WRITE_CURRENT[3];␊ |
290 | ␉UInt16␉␉␉␉␉DEVICE_STEP_RATE;␊ |
291 | ␉UInt8␉␉␉␉␉LANDING_ZONE_CYLINDER[3];␊ |
292 | ␉UInt8␉␉␉␉␉RPL;␊ |
293 | ␉UInt8␉␉␉␉␉ROTATIONAL_OFFSET;␊ |
294 | ␉UInt8␉␉␉␉␉RESERVED;␊ |
295 | ␉UInt16␉␉␉␉␉MEDIUM_ROTATION_RATE;␊ |
296 | ␉UInt8␉␉␉␉␉RESERVED1[2];␊ |
297 | } SBCModePageRigidDiskGeometry;␊ |
298 | ␊ |
299 | ␊ |
300 | /*!␊ |
301 | @enum Rigid Disk Geometry bitfields␊ |
302 | @discussion␊ |
303 | Bit field masks for Rigid Disk Geometry structure fields.␊ |
304 | @constant kSBCModePageRigidDiskGeometry_RPL_Mask␊ |
305 | Mask for use with the RPL field.␊ |
306 | */␊ |
307 | enum␊ |
308 | {␊ |
309 | ␉kSBCModePageRigidDiskGeometry_RPL_Mask␉= 0x03␊ |
310 | };␊ |
311 | ␊ |
312 | ␊ |
313 | /*!␊ |
314 | @struct SBCModePageFlexibleDisk␊ |
315 | @discussion␊ |
316 | Flexible Disk Mode Page (PAGE CODE 0x05) format.␊ |
317 | */␊ |
318 | typedef struct SBCModePageFlexibleDisk␊ |
319 | {␊ |
320 | ␉ModePageFormatHeader␉header;␊ |
321 | ␉UInt16␉␉␉␉␉TRANSFER_RATE;␊ |
322 | ␉UInt8␉␉␉␉␉NUMBER_OF_HEADS;␊ |
323 | ␉UInt8␉␉␉␉␉SECTORS_PER_TRACK;␊ |
324 | ␉UInt16␉␉␉␉␉DATA_BYTES_PER_SECTOR;␊ |
325 | ␉UInt16␉␉␉␉␉NUMBER_OF_CYLINDERS;␊ |
326 | ␉UInt16␉␉␉␉␉STARTING_CYLINDER_WRITE_PRECOMPENSATION;␊ |
327 | ␉UInt16␉␉␉␉␉STARTING_CYLINDER_REDUCED_WRITE_CURRENT;␊ |
328 | ␉UInt16␉␉␉␉␉DEVICE_STEP_RATE;␊ |
329 | ␉UInt8␉␉␉␉␉DEVICE_STEP_PULSE_WIDTH;␊ |
330 | ␉UInt16␉␉␉␉␉HEAD_SETTLE_DELAY;␊ |
331 | ␉UInt8␉␉␉␉␉MOTOR_ON_DELAY;␊ |
332 | ␉UInt8␉␉␉␉␉MOTOR_OFF_DELAY;␊ |
333 | ␉UInt8␉␉␉␉␉TRDY_SSN_MO;␊ |
334 | ␉UInt8␉␉␉␉␉SPC;␊ |
335 | ␉UInt8␉␉␉␉␉WRITE_COMPENSATION;␊ |
336 | ␉UInt8␉␉␉␉␉HEAD_LOAD_DELAY;␊ |
337 | ␉UInt8␉␉␉␉␉HEAD_UNLOAD_DELAY;␊ |
338 | ␉UInt8␉␉␉␉␉PIN_34_PIN_2;␊ |
339 | ␉UInt8␉␉␉␉␉PIN_4_PIN_1;␊ |
340 | ␉UInt16␉␉␉␉␉MEDIUM_ROTATION_RATE;␊ |
341 | ␉UInt8␉␉␉␉␉RESERVED[2];␊ |
342 | } SBCModePageFlexibleDisk;␊ |
343 | ␊ |
344 | ␊ |
345 | /*!␊ |
346 | @enum TRDY_SSN_MO bitfields␊ |
347 | @discussion␊ |
348 | Bit field definitions and masks for Flexible Disk TRDY_SSN_MO field.␊ |
349 | @constant kSBCModePageFlexibleDisk_MO_Bit␊ |
350 | MO Bit definition.␊ |
351 | @constant kSBCModePageFlexibleDisk_SSN_Bit␊ |
352 | SSN Bit definition.␊ |
353 | @constant kSBCModePageFlexibleDisk_TRDY_Bit␊ |
354 | TRDY Bit definition.␊ |
355 | @constant kSBCModePageFlexibleDisk_MO_Mask␊ |
356 | Mask for use with TRDY_SSN_MO field.␊ |
357 | @constant kSBCModePageFlexibleDisk_SSN_Mask␊ |
358 | Mask for use with TRDY_SSN_MO field.␊ |
359 | @constant kSBCModePageFlexibleDisk_TRDY_Mask␊ |
360 | Mask for use with TRDY_SSN_MO field.␊ |
361 | */␊ |
362 | enum␊ |
363 | {␊ |
364 | ␉// Bits 0:4 Reserved␊ |
365 | ␉kSBCModePageFlexibleDisk_MO_Bit␉␉= 5,␊ |
366 | ␉kSBCModePageFlexibleDisk_SSN_Bit␉= 6,␊ |
367 | ␉kSBCModePageFlexibleDisk_TRDY_Bit␉= 7,␊ |
368 | ␉␊ |
369 | ␉kSBCModePageFlexibleDisk_MO_Mask␉= (1 << kSBCModePageFlexibleDisk_MO_Bit),␊ |
370 | ␉kSBCModePageFlexibleDisk_SSN_Mask␉= (1 << kSBCModePageFlexibleDisk_SSN_Bit),␊ |
371 | ␉kSBCModePageFlexibleDisk_TRDY_Mask␉= (1 << kSBCModePageFlexibleDisk_TRDY_Bit)␊ |
372 | };␊ |
373 | ␊ |
374 | ␊ |
375 | /*!␊ |
376 | @enum SPC bitfields␊ |
377 | @discussion␊ |
378 | Bit field definitions and masks for Flexible Disk SPC field.␊ |
379 | @constant kSBCModePageFlexibleDisk_SPC_Mask␊ |
380 | Mask for use with SPC field.␊ |
381 | */␊ |
382 | enum␊ |
383 | {␊ |
384 | ␉kSBCModePageFlexibleDisk_SPC_Mask␉= 0x0F␊ |
385 | };␊ |
386 | ␊ |
387 | ␊ |
388 | /*!␊ |
389 | @enum PIN_34_PIN_2 bitfields␊ |
390 | @discussion␊ |
391 | Bit field definitions and masks for Flexible Disk PIN_34_PIN_2 field.␊ |
392 | @constant kSBCModePageFlexibleDisk_PIN_2_Mask␊ |
393 | Mask for use with PIN_34_PIN_2 field.␊ |
394 | @constant kSBCModePageFlexibleDisk_PIN_34_Mask␊ |
395 | Mask for use with PIN_34_PIN_2 field.␊ |
396 | */␊ |
397 | enum␊ |
398 | {␊ |
399 | ␉kSBCModePageFlexibleDisk_PIN_2_Mask␉␉= 0x0F,␊ |
400 | ␉kSBCModePageFlexibleDisk_PIN_34_Mask␉= 0xF0␊ |
401 | };␊ |
402 | ␊ |
403 | ␊ |
404 | /*!␊ |
405 | @enum PIN_4_PIN_1 bitfields␊ |
406 | @discussion␊ |
407 | Bit field definitions and masks for Flexible Disk PIN_4_PIN_1 field.␊ |
408 | @constant kSBCModePageFlexibleDisk_PIN_1_Mask␊ |
409 | Mask for use with PIN_4_PIN_1 field.␊ |
410 | @constant kSBCModePageFlexibleDisk_PIN_4_Mask␊ |
411 | Mask for use with PIN_4_PIN_1 field.␊ |
412 | */␊ |
413 | enum␊ |
414 | {␊ |
415 | ␉kSBCModePageFlexibleDisk_PIN_1_Mask␉␉= 0x0F,␊ |
416 | ␉kSBCModePageFlexibleDisk_PIN_4_Mask␉␉= 0xF0␊ |
417 | };␊ |
418 | ␊ |
419 | ␊ |
420 | /*!␊ |
421 | @struct SBCModePageCaching␊ |
422 | @discussion␊ |
423 | Caching Mode Page (PAGE CODE 0x08) format.␊ |
424 | */␊ |
425 | typedef struct SBCModePageCaching␊ |
426 | {␊ |
427 | ␉ModePageFormatHeader␉header;␊ |
428 | ␉UInt8␉␉␉␉␉flags;␊ |
429 | ␉UInt8␉␉␉␉␉DEMAND_READ_WRITE_RETENTION_PRIORITY;␊ |
430 | ␉UInt16␉␉␉␉␉DISABLE_PREFETCH_TRANSFER_LENGTH;␊ |
431 | ␉UInt16␉␉␉␉␉MINIMUM_PREFETCH;␊ |
432 | ␉UInt16␉␉␉␉␉MAXIMUM_PREFETCH;␊ |
433 | ␉UInt16␉␉␉␉␉MAXIMUM_PREFETCH_CEILING;␊ |
434 | ␉UInt8␉␉␉␉␉flags2;␊ |
435 | ␉UInt8␉␉␉␉␉NUMBER_OF_CACHE_SEGMENTS;␊ |
436 | ␉UInt16␉␉␉␉␉CACHE_SEGMENT_SIZE;␊ |
437 | ␉UInt8␉␉␉␉␉RESERVED;␊ |
438 | ␉UInt8␉␉␉␉␉NON_CACHE_SEGMENT_SIZE[3];␊ |
439 | } SBCModePageCaching;␊ |
440 | ␊ |
441 | ␊ |
442 | /*!␊ |
443 | @enum Caching flags bitfields␊ |
444 | @discussion␊ |
445 | Bit field definitions and masks for Caching flags field.␊ |
446 | @constant kSBCModePageCaching_RCD_Bit␊ |
447 | RCD Bit definition.␊ |
448 | @constant kSBCModePageCaching_MF_Bit␊ |
449 | MF Bit definition.␊ |
450 | @constant kSBCModePageCaching_WCE_Bit␊ |
451 | WCE Bit definition.␊ |
452 | @constant kSBCModePageCaching_SIZE_Bit␊ |
453 | SIZE Bit definition.␊ |
454 | @constant kSBCModePageCaching_DISC_Bit␊ |
455 | DISC Bit definition.␊ |
456 | @constant kSBCModePageCaching_CAP_Bit␊ |
457 | CAP Bit definition.␊ |
458 | @constant kSBCModePageCaching_ABPF_Bit␊ |
459 | ABPF Bit definition.␊ |
460 | @constant kSBCModePageCaching_IC_Bit␊ |
461 | IC Bit definition.␊ |
462 | @constant kSBCModePageCaching_RCD_Mask␊ |
463 | Mask for use with flags field.␊ |
464 | @constant kSBCModePageCaching_MF_Mask␊ |
465 | Mask for use with flags field.␊ |
466 | @constant kSBCModePageCaching_WCE_Mask␊ |
467 | Mask for use with flags field.␊ |
468 | @constant kSBCModePageCaching_SIZE_Mask␊ |
469 | Mask for use with flags field.␊ |
470 | @constant kSBCModePageCaching_DISC_Mask␊ |
471 | Mask for use with flags field.␊ |
472 | @constant kSBCModePageCaching_CAP_Mask␊ |
473 | Mask for use with flags field.␊ |
474 | @constant kSBCModePageCaching_ABPF_Mask␊ |
475 | Mask for use with flags field.␊ |
476 | @constant kSBCModePageCaching_IC_Mask␊ |
477 | Mask for use with flags field.␊ |
478 | */␊ |
479 | enum␊ |
480 | {␊ |
481 | ␉kSBCModePageCaching_RCD_Bit␉␉= 0,␊ |
482 | ␉kSBCModePageCaching_MF_Bit␉␉= 1,␊ |
483 | ␉kSBCModePageCaching_WCE_Bit␉␉= 2,␊ |
484 | ␉kSBCModePageCaching_SIZE_Bit␉= 3,␊ |
485 | ␉kSBCModePageCaching_DISC_Bit␉= 4,␊ |
486 | ␉kSBCModePageCaching_CAP_Bit␉␉= 5,␊ |
487 | ␉kSBCModePageCaching_ABPF_Bit␉= 6,␊ |
488 | ␉kSBCModePageCaching_IC_Bit␉␉= 7,␊ |
489 | ␊ |
490 | ␉kSBCModePageCaching_RCD_Mask␉= (1 << kSBCModePageCaching_RCD_Bit),␊ |
491 | ␉kSBCModePageCaching_MF_Mask␉␉= (1 << kSBCModePageCaching_MF_Bit),␊ |
492 | ␉kSBCModePageCaching_WCE_Mask␉= (1 << kSBCModePageCaching_WCE_Bit),␊ |
493 | ␉kSBCModePageCaching_SIZE_Mask␉= (1 << kSBCModePageCaching_SIZE_Bit),␊ |
494 | ␉kSBCModePageCaching_DISC_Mask␉= (1 << kSBCModePageCaching_DISC_Bit),␊ |
495 | ␉kSBCModePageCaching_CAP_Mask␉= (1 << kSBCModePageCaching_CAP_Bit),␊ |
496 | ␉kSBCModePageCaching_ABPF_Mask␉= (1 << kSBCModePageCaching_ABPF_Bit),␊ |
497 | ␉kSBCModePageCaching_IC_Mask␉␉= (1 << kSBCModePageCaching_IC_Bit)␊ |
498 | };␊ |
499 | ␊ |
500 | ␊ |
501 | /*!␊ |
502 | @enum Demand Read/Write Retention masks␊ |
503 | @discussion␊ |
504 | Demand Read/Write Retention masks.␊ |
505 | @constant kSBCModePageCaching_DEMAND_WRITE_Mask␊ |
506 | Mask for the DEMAND_READ_WRITE_RETENTION_PRIORITY field.␊ |
507 | @constant kSBCModePageCaching_DEMAND_READ_Mask␊ |
508 | Mask for the DEMAND_READ_WRITE_RETENTION_PRIORITY field.␊ |
509 | */␊ |
510 | enum␊ |
511 | {␊ |
512 | ␉kSBCModePageCaching_DEMAND_WRITE_Mask␉= 0x00FF,␊ |
513 | ␉kSBCModePageCaching_DEMAND_READ_Mask ␉= 0xFF00␊ |
514 | };␊ |
515 | ␊ |
516 | /*!␊ |
517 | @enum Caching flags2 bitfields␊ |
518 | @discussion␊ |
519 | Bit field definitions and masks for Caching flags2 field.␊ |
520 | @constant kSBCModePageCaching_VS1_Bit␊ |
521 | VS1 Bit definition.␊ |
522 | @constant kSBCModePageCaching_VS2_Bit␊ |
523 | VS2 Bit definition.␊ |
524 | @constant kSBCModePageCaching_DRA_Bit␊ |
525 | DRA Bit definition.␊ |
526 | @constant kSBCModePageCaching_LBCSS_Bit␊ |
527 | LBCSS Bit definition.␊ |
528 | @constant kSBCModePageCaching_FSW_Bit␊ |
529 | FSW Bit definition.␊ |
530 | @constant kSBCModePageCaching_VS1_Mask␊ |
531 | Mask for use with flags2 field.␊ |
532 | @constant kSBCModePageCaching_VS2_Mask␊ |
533 | Mask for use with flags2 field.␊ |
534 | @constant kSBCModePageCaching_DRA_Mask␊ |
535 | Mask for use with flags2 field.␊ |
536 | @constant kSBCModePageCaching_LBCSS_Mask␊ |
537 | Mask for use with flags2 field.␊ |
538 | @constant kSBCModePageCaching_FSW_Mask␊ |
539 | Mask for use with flags2 field.␊ |
540 | */␊ |
541 | enum␊ |
542 | {␊ |
543 | ␉// Bits 0:2 Reserved␊ |
544 | ␉kSBCModePageCaching_VS1_Bit␉␉= 3,␊ |
545 | ␉kSBCModePageCaching_VS2_Bit␉␉= 4,␊ |
546 | ␉kSBCModePageCaching_DRA_Bit␉␉= 5,␊ |
547 | ␉kSBCModePageCaching_LBCSS_Bit␉= 6,␊ |
548 | ␉kSBCModePageCaching_FSW_Bit␉␉= 7,␊ |
549 | ␊ |
550 | ␉kSBCModePageCaching_VS1_Mask␉= (1 << kSBCModePageCaching_VS1_Bit),␊ |
551 | ␉kSBCModePageCaching_VS2_Mask␉= (1 << kSBCModePageCaching_VS2_Bit),␊ |
552 | ␉kSBCModePageCaching_DRA_Mask␉= (1 << kSBCModePageCaching_DRA_Bit),␊ |
553 | ␉kSBCModePageCaching_LBCSS_Mask␉= (1 << kSBCModePageCaching_LBCSS_Bit),␊ |
554 | ␉kSBCModePageCaching_FSW_Mask␉= (1 << kSBCModePageCaching_FSW_Bit)␊ |
555 | };␊ |
556 | ␊ |
557 | #pragma options align=reset␊ |
558 | ␊ |
559 | #endif␉/* _IOKIT_SCSI_CMDS_MODE_DEFINITIONS_H_ */␊ |
560 |