Chameleon

Chameleon Svn Source Tree

Root/branches/rewrite/i386/include/IOKit/storage/IOBDMedia.h

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) 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
94class IOBDMedia : public IOMedia
95{
96 OSDeclareDefaultStructors(IOBDMedia)
97
98protected:
99
100 struct ExpansionData { /* */ };
101 ExpansionData * _expansionData;
102
103public:
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

Archive Download this file

Revision: 1129