Root/
Source at commit 1129 created 12 years 11 months ago. By meklort, Change options.o so that it reloads the system config as well. Also change it so that it uses that config for variables (NOTE: if the calue exists in chameleonConfig, it's used instead. | |
---|---|
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 |