Root/
Source at commit 1165 created 13 years 11 days ago. By slice, new targets: make image and make pkg, Russian localization | |
---|---|
1 | /*␊ |
2 | * Copyright (c) 2006-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 | /*!␊ |
25 | * @header IOBDMedia␊ |
26 | * @abstract␊ |
27 | * This header contains the IOBDMedia class definition.␊ |
28 | */␊ |
29 | ␊ |
30 | #ifndef _IOBDMEDIA_H␊ |
31 | #define _IOBDMEDIA_H␊ |
32 | ␊ |
33 | /*!␊ |
34 | * @defined kIOBDMediaClass␊ |
35 | * @abstract␊ |
36 | * kIOBDMediaClass is the name of the IOBDMedia class.␊ |
37 | * @discussion␊ |
38 | * kIOBDMediaClass is the name of the IOBDMedia class.␊ |
39 | */␊ |
40 | ␊ |
41 | #define kIOBDMediaClass "IOBDMedia"␊ |
42 | ␊ |
43 | /*!␊ |
44 | * @defined kIOBDMediaTypeKey␊ |
45 | * @abstract␊ |
46 | * kIOBDMediaTypeKey is a property of IOBDMedia objects. It has an OSString␊ |
47 | * value.␊ |
48 | * @discussion␊ |
49 | * The kIOBDMediaTypeKey property identifies the BD media type (BD-ROM, BD-R,␊ |
50 | * BD-RE, etc). See the kIOBDMediaType contants for possible values.␊ |
51 | */␊ |
52 | ␊ |
53 | #define kIOBDMediaTypeKey "Type"␊ |
54 | ␊ |
55 | /*!␊ |
56 | * @defined kIOBDMediaTypeROM␊ |
57 | * The kIOBDMediaTypeKey constant for BD-ROM media.␊ |
58 | */␊ |
59 | ␊ |
60 | #define kIOBDMediaTypeROM "BD-ROM"␊ |
61 | ␊ |
62 | /*!␊ |
63 | * @defined kIOBDMediaTypeR␊ |
64 | * The kIOBDMediaTypeKey constant for BD-R media.␊ |
65 | */␊ |
66 | ␊ |
67 | #define kIOBDMediaTypeR "BD-R"␊ |
68 | ␊ |
69 | /*!␊ |
70 | * @defined kIOBDMediaTypeRE␊ |
71 | * The kIOBDMediaTypeKey constant for BD-RE media.␊ |
72 | */␊ |
73 | ␊ |
74 | #define kIOBDMediaTypeRE "BD-RE"␊ |
75 | ␊ |
76 | #ifdef KERNEL␊ |
77 | #ifdef __cplusplus␊ |
78 | ␊ |
79 | /*␊ |
80 | * Kernel␊ |
81 | */␊ |
82 | ␊ |
83 | #include <IOKit/storage/IOBDBlockStorageDriver.h>␊ |
84 | #include <IOKit/storage/IOMedia.h>␊ |
85 | ␊ |
86 | /*!␊ |
87 | * @class IOBDMedia␊ |
88 | * @abstract␊ |
89 | * The IOBDMedia class is a random-access disk device abstraction for BDs.␊ |
90 | * @discussion␊ |
91 | * The IOBDMedia class is a random-access disk device abstraction for BDs.␊ |
92 | */␊ |
93 | ␊ |
94 | class IOBDMedia : public IOMedia␊ |
95 | {␊ |
96 | OSDeclareDefaultStructors(IOBDMedia)␊ |
97 | ␊ |
98 | protected:␊ |
99 | ␊ |
100 | struct ExpansionData { /* */ };␊ |
101 | ExpansionData * _expansionData;␊ |
102 | ␊ |
103 | public:␊ |
104 | ␊ |
105 | /*␊ |
106 | * Obtain this object's provider. We override the superclass's method to␊ |
107 | * return a more specific subclass of IOService -- IOBDBlockStorageDriver.␊ |
108 | * This method serves simply as a convenience to subclass developers.␊ |
109 | */␊ |
110 | ␊ |
111 | virtual IOBDBlockStorageDriver * getProvider() const;␊ |
112 | ␊ |
113 | /*␊ |
114 | * Compare the properties in the supplied table to this object's properties.␊ |
115 | */␊ |
116 | ␊ |
117 | virtual bool matchPropertyTable(OSDictionary * table, SInt32 * score);␊ |
118 | ␊ |
119 | /*!␊ |
120 | * @function reportKey␊ |
121 | * @discussion␊ |
122 | * Issue an MMC REPORT KEY command.␊ |
123 | * @param buffer␊ |
124 | * Buffer for the data transfer. The size of the buffer implies the size of␊ |
125 | * the data transfer.␊ |
126 | * @param keyClass␊ |
127 | * As documented by MMC.␊ |
128 | * @param address␊ |
129 | * As documented by MMC.␊ |
130 | * @param grantID␊ |
131 | * As documented by MMC.␊ |
132 | * @param format␊ |
133 | * As documented by MMC.␊ |
134 | * @result␊ |
135 | * Returns the status of the data transfer.␊ |
136 | */␊ |
137 | ␊ |
138 | virtual IOReturn reportKey( IOMemoryDescriptor * buffer,␊ |
139 | UInt8 keyClass,␊ |
140 | UInt32 address,␊ |
141 | UInt8 grantID,␊ |
142 | UInt8 format );␊ |
143 | ␊ |
144 | /*!␊ |
145 | * @function sendKey␊ |
146 | * @discussion␊ |
147 | * Issue an MMC SEND KEY command.␊ |
148 | * @param buffer␊ |
149 | * Buffer for the data transfer. The size of the buffer implies the size of␊ |
150 | * the data transfer.␊ |
151 | * @param keyClass␊ |
152 | * As documented by MMC.␊ |
153 | * @param grantID␊ |
154 | * As documented by MMC.␊ |
155 | * @param format␊ |
156 | * As documented by MMC.␊ |
157 | * @result␊ |
158 | * Returns the status of the data transfer.␊ |
159 | */␊ |
160 | ␊ |
161 | virtual IOReturn sendKey( IOMemoryDescriptor * buffer,␊ |
162 | UInt8 keyClass,␊ |
163 | UInt8 grantID,␊ |
164 | UInt8 format );␊ |
165 | ␊ |
166 | /*!␊ |
167 | * @function readStructure␊ |
168 | * @discussion␊ |
169 | * Issue an MMC READ DISC STRUCTURE command.␊ |
170 | * @param buffer␊ |
171 | * Buffer for the data transfer. The size of the buffer implies the size of␊ |
172 | * the data transfer.␊ |
173 | * @param format␊ |
174 | * As documented by MMC.␊ |
175 | * @param address␊ |
176 | * As documented by MMC.␊ |
177 | * @param layer␊ |
178 | * As documented by MMC.␊ |
179 | * @param grantID␊ |
180 | * As documented by MMC.␊ |
181 | * @result␊ |
182 | * Returns the status of the data transfer.␊ |
183 | */␊ |
184 | ␊ |
185 | virtual IOReturn readStructure( IOMemoryDescriptor * buffer,␊ |
186 | UInt8 format,␊ |
187 | UInt32 address,␊ |
188 | UInt8 layer,␊ |
189 | UInt8 grantID );␊ |
190 | ␊ |
191 | /*!␊ |
192 | * @function getSpeed␊ |
193 | * @discussion␊ |
194 | * Get the current speed used for data transfers.␊ |
195 | * @param kilobytesPerSecond␊ |
196 | * Returns the current speed used for data transfers, in kB/s.␊ |
197 | *␊ |
198 | * kBDSpeedMin specifies the minimum speed for all BD media (1X).␊ |
199 | * kBDSpeedMax specifies the maximum speed supported in hardware.␊ |
200 | * @result␊ |
201 | * Returns the status of the operation.␊ |
202 | */␊ |
203 | ␊ |
204 | virtual IOReturn getSpeed(UInt16 * kilobytesPerSecond);␊ |
205 | ␊ |
206 | /*!␊ |
207 | * @function setSpeed␊ |
208 | * @discussion␊ |
209 | * Set the speed to be used for data transfers.␊ |
210 | * @param kilobytesPerSecond␊ |
211 | * Speed to be used for data transfers, in kB/s.␊ |
212 | *␊ |
213 | * kBDSpeedMin specifies the minimum speed for all BD media (1X).␊ |
214 | * kBDSpeedMax specifies the maximum speed supported in hardware.␊ |
215 | * @result␊ |
216 | * Returns the status of the operation.␊ |
217 | */␊ |
218 | ␊ |
219 | virtual IOReturn setSpeed(UInt16 kilobytesPerSecond);␊ |
220 | ␊ |
221 | /*!␊ |
222 | * @function readDiscInfo␊ |
223 | * @discussion␊ |
224 | * Issue an MMC READ DISC INFORMATION command.␊ |
225 | * @param buffer␊ |
226 | * Buffer for the data transfer. The size of the buffer implies the size of␊ |
227 | * the data transfer.␊ |
228 | * @param type␊ |
229 | * Reserved for future use. Set to zero.␊ |
230 | * @param actualByteCount␊ |
231 | * Returns the actual number of bytes transferred in the data transfer.␊ |
232 | * @result␊ |
233 | * Returns the status of the data transfer.␊ |
234 | */␊ |
235 | ␊ |
236 | virtual IOReturn readDiscInfo( IOMemoryDescriptor * buffer,␊ |
237 | UInt8 type,␊ |
238 | UInt16 * actualByteCount );␊ |
239 | ␊ |
240 | /*!␊ |
241 | * @function readTrackInfo␊ |
242 | * @discussion␊ |
243 | * Issue an MMC READ TRACK INFORMATION command.␊ |
244 | * @param buffer␊ |
245 | * Buffer for the data transfer. The size of the buffer implies the size of␊ |
246 | * the data transfer.␊ |
247 | * @param address␊ |
248 | * As documented by MMC.␊ |
249 | * @param addressType␊ |
250 | * As documented by MMC.␊ |
251 | * @param open␊ |
252 | * Reserved for future use. Set to zero.␊ |
253 | * @param actualByteCount␊ |
254 | * Returns the actual number of bytes transferred in the data transfer.␊ |
255 | * @result␊ |
256 | * Returns the status of the data transfer.␊ |
257 | */␊ |
258 | ␊ |
259 | virtual IOReturn readTrackInfo( IOMemoryDescriptor * buffer,␊ |
260 | UInt32 address,␊ |
261 | UInt8 addressType,␊ |
262 | UInt8 open,␊ |
263 | UInt16 * actualByteCount );␊ |
264 | ␊ |
265 | /*!␊ |
266 | * @function splitTrack␊ |
267 | * @discussion␊ |
268 | * Issue an MMC RESERVE TRACK command with the ARSV bit.␊ |
269 | * @param address␊ |
270 | * As documented by MMC.␊ |
271 | * @result␊ |
272 | * Returns the status of the operation.␊ |
273 | */␊ |
274 | ␊ |
275 | virtual IOReturn splitTrack(UInt32 address);␊ |
276 | ␊ |
277 | OSMetaClassDeclareReservedUnused(IOBDMedia, 0);␊ |
278 | OSMetaClassDeclareReservedUnused(IOBDMedia, 1);␊ |
279 | OSMetaClassDeclareReservedUnused(IOBDMedia, 2);␊ |
280 | OSMetaClassDeclareReservedUnused(IOBDMedia, 3);␊ |
281 | OSMetaClassDeclareReservedUnused(IOBDMedia, 4);␊ |
282 | OSMetaClassDeclareReservedUnused(IOBDMedia, 5);␊ |
283 | OSMetaClassDeclareReservedUnused(IOBDMedia, 6);␊ |
284 | OSMetaClassDeclareReservedUnused(IOBDMedia, 7);␊ |
285 | OSMetaClassDeclareReservedUnused(IOBDMedia, 8);␊ |
286 | OSMetaClassDeclareReservedUnused(IOBDMedia, 9);␊ |
287 | OSMetaClassDeclareReservedUnused(IOBDMedia, 10);␊ |
288 | OSMetaClassDeclareReservedUnused(IOBDMedia, 11);␊ |
289 | OSMetaClassDeclareReservedUnused(IOBDMedia, 12);␊ |
290 | OSMetaClassDeclareReservedUnused(IOBDMedia, 13);␊ |
291 | OSMetaClassDeclareReservedUnused(IOBDMedia, 14);␊ |
292 | OSMetaClassDeclareReservedUnused(IOBDMedia, 15);␊ |
293 | };␊ |
294 | ␊ |
295 | #endif /* __cplusplus */␊ |
296 | #endif /* KERNEL */␊ |
297 | #endif /* !_IOBDMEDIA_H */␊ |
298 |