Chameleon

Chameleon Svn Source Tree

Root/branches/Chimera/i386/include/IOKit/storage/IOMedia.h

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/*!
25 * @header IOMedia
26 * @abstract
27 * This header contains the IOMedia class definition.
28 */
29
30#ifndef _IOMEDIA_H
31#define _IOMEDIA_H
32
33#include <IOKit/IOTypes.h>
34
35/*!
36 * @defined kIOMediaClass
37 * @abstract
38 * The name of the IOMedia class.
39 */
40
41#define kIOMediaClass "IOMedia"
42
43/*!
44 * @defined kIOMediaContentKey
45 * @abstract
46 * A property of IOMedia objects.
47 * @discussion
48 * The kIOMediaContentKey property has an OSString
49 * value and contains a description of the media's
50 * contents. The description is the same as the hint at the time of the
51 * object's creation, but it is possible that the description has been overridden
52 * by a client (which has probed the media and identified the content correctly)
53 * of the media object. It is more accurate than the hint for this reason. The
54 * string is formed in the likeness of Apple's "Apple_HFS" strings or in the
55 * likeness of a UUID.
56 */
57
58#define kIOMediaContentKey "Content"
59
60/*!
61 * @defined kIOMediaContentHintKey
62 * @abstract
63 * A property of IOMedia objects.
64 * @discussion
65 * The kIOMediaContentHintKey property has an OSString
66 * value and contains a hint of the media's contents.
67 * The hint is set at the time of the object's creation, should the creator have
68 * a clue as to what it may contain. The hint string does not change for the
69 * lifetime of the object and is formed in the likeness of Apple's "Apple_HFS"
70 * strings or in the likeness of a UUID.
71 */
72
73#define kIOMediaContentHintKey "Content Hint"
74
75/*!
76 * @defined kIOMediaEjectableKey
77 * @abstract
78 * A property of IOMedia objects.
79 * @discussion
80 * The kIOMediaEjectableKey property has an OSBoolean
81 * value and describes whether the media is ejectable
82 * from the drive mechanism under software control. Implies IOMediaRemovable
83 * is also true.
84 */
85
86#define kIOMediaEjectableKey "Ejectable"
87
88/*!
89 * @defined kIOMediaLeafKey
90 * @abstract
91 * A property of IOMedia objects.
92 * @discussion
93 * The kIOMediaLeafKey property has an OSBoolean value and describes whether the media is a leaf, that is,
94 * it is the deepest media object in this branch of the I/O Registry.
95 */
96
97#define kIOMediaLeafKey "Leaf"
98
99/*!
100 * @defined kIOMediaOpenKey
101 * @abstract
102 * A property of IOMedia objects.
103 * @discussion
104 * The kIOMediaOpenKey property has an OSBoolean value and describes whether
105 * a client presently has an open on this media.
106 */
107
108#define kIOMediaOpenKey "Open"
109
110/*!
111 * @defined kIOMediaPreferredBlockSizeKey
112 * @abstract
113 * A property of IOMedia objects.
114 * @discussion
115 * The kIOMediaPreferredBlockSizeKey property has an
116 * OSNumber value and describes the media's natural
117 * block size in bytes. This information is useful to clients that want to
118 * optimize access to the media.
119 */
120
121#define kIOMediaPreferredBlockSizeKey "Preferred Block Size"
122
123/*!
124 * @defined kIOMediaRemovableKey
125 * @abstract
126 * A property of IOMedia objects.
127 * @discussion
128 * The kIOMediaRemovableKey property has an OSBoolean
129 * value and describes whether the media is removable
130 * from the drive mechanism.
131 */
132
133#define kIOMediaRemovableKey "Removable"
134
135/*!
136 * @defined kIOMediaSizeKey
137 * @abstract
138 * A property of IOMedia objects.
139 * @discussion
140 * The kIOMediaSizeKey property has an OSNumber value and describes the total length of the media in
141 * bytes.
142 */
143
144#define kIOMediaSizeKey "Size"
145
146/*!
147 * @defined kIOMediaUUIDKey
148 * @abstract
149 * A property of IOMedia objects.
150 * @discussion
151 * The kIOMediaUUIDKey property has an OSString value and contains a persistent
152 * Universal Unique Identifier for the media if such an identifier is available.
153 */
154
155#define kIOMediaUUIDKey "UUID"
156
157/*!
158 * @defined kIOMediaWholeKey
159 * @abstract
160 * A property of IOMedia objects.
161 * @discussion
162 * The kIOMediaWholeKey property has an OSBoolean
163 * value and describes whether the media is whole, that is,
164 * it represents the whole disk (the physical disk, or a virtual replica
165 * thereof).
166 */
167
168#define kIOMediaWholeKey "Whole"
169
170/*!
171 * @defined kIOMediaWritableKey
172 * @abstract
173 * A property of IOMedia objects.
174 * @discussion
175 * The kIOMediaWritableKey property has an OSBoolean
176 * value and describes whether the media is writable.
177 */
178
179#define kIOMediaWritableKey "Writable"
180
181/*!
182 * @defined kIOMediaContentMaskKey
183 * @abstract
184 * A property of IOMedia clients.
185 * @discussion
186 * The kIOMediaContentMaskKey property has an OSString
187 * value and must exist in all IOMedia clients that
188 * drive new content (that is, produce new media objects). When the client
189 * matches against the provider media, the value of the client's
190 * kIOMediaContentMaskKey property is used to replace the provider's
191 * kIOMediaContentKey property.
192 */
193
194#define kIOMediaContentMaskKey "Content Mask"
195
196/*!
197 * @defined kIOMediaIconKey
198 * @abstract
199 * A property of any object in the media stack.
200 * @discussion
201 * kIOMediaIconKey is a property of any object in the media stack that wishes
202 * to override the default icon shown for the media objects in the stack. It
203 * is usually defined in a provider object below the media object. It has an
204 * OSDictionary value, with properties identical to the kIOIconKey definition,
205 * that is, kCFBundleIdentifierKey and kIOBundleResourceFileKey.
206 */
207
208#define kIOMediaIconKey "IOMediaIcon"
209
210/*!
211 * @enum IOMediaAttributeMask
212 * @discussion
213 * The IOMediaAttributeMask bit mask describes various attributes of
214 * the media object, such as its ejectability and its removability.
215 * @constant kIOMediaAttributeEjectableMask
216 * Indicates whether the media is ejectable from the drive mechanism
217 * under software control. Implies kIOMediaAttributeRemovableMask.
218 * @constant kIOMediaAttributeRemovableMask
219 * Indicates whether the media is removable from the drive mechanism.
220 */
221
222enum
223{
224 kIOMediaAttributeEjectableMask = 0x00000001,
225 kIOMediaAttributeRemovableMask = 0x00000002,
226 kIOMediaAttributeReservedMask = 0xFFFFFFFC
227};
228
229typedef UInt32 IOMediaAttributeMask;
230
231#endif /* !_IOMEDIA_H */
232

Archive Download this file

Revision: 1340