]>
git.saurik.com Git - apple/xnu.git/blob - libkern/libkern/c++/OSDictionary.h
74ec638e40d867271da80f68a4cb9c807f4e3321
2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
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. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
29 * Copyright (c) 1998-1999 Apple Computer, Inc. All rights reserved.
33 * OSDictionary.h created by rsulack on Wed 17-Sep-1997
34 * OSDictionary.h converted to C++ by gvdl on Fri 1998-10-30
37 #ifndef _IOKIT_IODICTIONARY_H
38 #define _IOKIT_IODICTIONARY_H
40 #include <libkern/c++/OSCollection.h>
50 * This header declares the OSDictionary collection class.
58 * OSDictionary provides an associative store using strings for keys.
61 * OSDictionary is a container for Libkern C++ objects
63 * @link //apple_ref/doc/class/OSMetaClassBase OSMetaClassBase@/link,
64 * in particular @link //apple_ref/doc/class/OSObject OSObject@/link).
65 * Storage and access are associative, based on string-valued keys
66 * (C string, @link //apple_ref/cpp/cl/OSString OSString@/link,
67 * or @link //apple_ref/cpp/cl/OSSymbol OSSymbol@/link).
68 * When adding an object to an OSDictionary, you provide a string identifier,
69 * which can then used to retrieve that object or remove it from the dictionary.
70 * Setting an object with a key that already has an associated object
71 * replaces the original object.
73 * You must generally cast retrieved objects from
74 * @link //apple_ref/cpp/cl/OSObject OSObject@/link
75 * to the desired class using
76 * <code>@link //apple_ref/cpp/macro/OSDynamicCast OSDynamicCast@/link</code>.
77 * This macro returns the object cast to the desired class,
78 * or <code>NULL</code> if the object isn't derived from that class.
80 * When iterating an OSDictionary using
81 * @link //apple_ref/doc/class/OSCollectionIterator OSCollectionIterator@/link,
82 * the objects returned from
83 * <code>@link //apple_ref/doc/function/OSCollectionIterator::getNextObject
84 * getNextObject@/link</code>
85 * are dictionary keys (not the object values for those keys).
86 * You can use the keys to retrieve their associated object values.
88 * As with all Libkern collection classes,
89 * OSDictionary retains keys and objects added to it,
90 * and releases keys and objects removed from it (or replaced).
91 * An OSDictionary also grows as necessary to accommodate new key/value pairs,
92 * <i>unlike</i> Core Foundation collections (it does not, however, shrink).
94 * <b>Note:</b> OSDictionary currently uses a linear search algorithm,
95 * and is not designed for high-performance access of many values.
96 * It is intended as a simple associative-storage mechanism only.
98 * <b>Use Restrictions</b>
100 * With very few exceptions in the I/O Kit, all Libkern-based C++
101 * classes, functions, and macros are <b>unsafe</b>
102 * to use in a primary interrupt context.
103 * Consult the I/O Kit documentation related to primary interrupts
104 * for more information.
106 * OSDictionary provides no concurrency protection;
107 * it's up to the usage context to provide any protection necessary.
108 * Some portions of the I/O Kit, such as
109 * @link //apple_ref/doc/class/IORegistryEntry IORegistryEntry@/link,
110 * handle synchronization via defined member functions for setting
113 class OSDictionary
: public OSCollection
115 OSDeclareDefaultStructors(OSDictionary
)
119 const OSSymbol
* key
;
120 const OSMetaClassBase
* value
;
122 dictEntry
* dictionary
;
124 unsigned int capacity
;
125 unsigned int capacityIncrement
;
127 struct ExpansionData
{ };
129 /* Reserved for future use. (Internal use only) */
130 ExpansionData
* reserved
;
132 // Member functions used by the OSCollectionIterator class.
133 virtual unsigned int iteratorSize() const;
134 virtual bool initIterator(void * iterator
) const;
135 virtual bool getNextObjectForIterator(void * iterator
, OSObject
** ret
) const;
140 * @function withCapacity
143 * Creates and initializes an empty OSDictionary.
145 * @param capacity The initial storage capacity of the new dictionary object.
148 * An empty instance of OSDictionary
149 * with a retain count of 1;
150 * <code>NULL</code> on failure.
153 * <code>capacity</code> must be nonzero.
154 * The new dictionary will grow as needed to accommodate more key/object pairs
155 * (<i>unlike</i> @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
156 * for which the initial capacity is a hard limit).
158 static OSDictionary
* withCapacity(unsigned int capacity
);
162 * @function withObjects
164 * @abstract Creates and initializes an OSDictionary
165 * populated with keys and objects provided.
167 * @param objects A C array of OSMetaClassBase-derived objects.
168 * @param keys A C array of OSSymbol keys
169 * for the corresponding objects in <code>objects</code>.
170 * @param count The number of keys and objects
171 * to be placed into the dictionary.
172 * @param capacity The initial storage capacity of the new dictionary object.
173 * If 0, <code>count</code> is used; otherwise this value
174 * must be greater than or equal to <code>count</code>.
177 * An instance of OSDictionary
178 * containing the key/object pairs provided,
179 * with a retain count of 1;
180 * <code>NULL</code> on failure.
183 * <code>objects</code> and <code>keys</code> must be non-<code>NULL</code>,
184 * and <code>count</code> must be nonzero.
185 * If <code>capacity</code> is nonzero,
186 * it must be greater than or equal to <code>count</code>.
187 * The new dictionary will grow as needed
188 * to accommodate more key/object pairs
190 * @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
191 * for which the initial capacity is a hard limit).
193 static OSDictionary
* withObjects(
194 const OSObject
* objects
[],
195 const OSSymbol
* keys
[],
197 unsigned int capacity
= 0);
200 * @function withObjects
203 * Creates and initializes an OSDictionary
204 * populated with keys and objects provided.
206 * @param objects A C array of OSMetaClassBase-derived objects.
207 * @param keys A C array of OSString keys for the corresponding objects
208 * in <code>objects</code>.
209 * @param count The number of keys and objects
210 * to be placed into the dictionary.
211 * @param capacity The initial storage capacity of the new dictionary object.
212 * If 0, <code>count</code> is used; otherwise this value
213 * must be greater than or equal to <code>count</code>.
216 * An instance of OSDictionary
217 * containing the key/object pairs provided,
218 * with a retain count of 1;
219 * <code>NULL</code> on failure.
222 * <code>objects</code> and <code>keys</code> must be non-<code>NULL</code>,
223 * and <code>count</code> must be nonzero.
224 * If <code>capacity</code> is nonzero, it must be greater than or equal to <code>count</code>.
225 * The new dictionary will grow as needed
226 * to accommodate more key/object pairs
228 * @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
229 * for which the initial capacity is a hard limit).
231 static OSDictionary
* withObjects(
232 const OSObject
* objects
[],
233 const OSString
* keys
[],
235 unsigned int capacity
= 0);
239 * @function withDictionary
242 * Creates and initializes an OSDictionary
243 * populated with the contents of another dictionary.
245 * @param dict A dictionary whose contents will be stored
246 * in the new instance.
247 * @param capacity The initial storage capacity of the new dictionary object.
248 * If 0, the capacity is set to the number of key/value pairs
249 * in <code>dict</code>;
250 * otherwise <code>capacity</code> must be greater than or equal to
251 * the number of key/value pairs in <code>dict</code>.
254 * An instance of OSDictionary
255 * containing the key/value pairs of <code>dict</code>,
256 * with a retain count of 1;
257 * <code>NULL</code> on failure.
260 * <code>dict</code> must be non-<code>NULL</code>.
261 * If <code>capacity</code> is nonzero, it must be greater than or equal to <code>count</code>.
262 * The new dictionary will grow as needed
263 * to accommodate more key/object pairs
265 * @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
266 * for which the initial capacity is a hard limit).
268 * The keys and objects in <code>dict</code> are retained for storage
269 * in the new OSDictionary,
272 static OSDictionary
* withDictionary(
273 const OSDictionary
* dict
,
274 unsigned int capacity
= 0);
278 * @function initWithCapacity
281 * Initializes a new instance of OSDictionary.
283 * @param capacity The initial storage capacity of the new dictionary object.
285 * <code>true</code> on success, <code>false</code> on failure.
288 * Not for general use. Use the static instance creation method
289 * <code>@link //apple_ref/cpp/clm/OSDictionary/withCapacity/staticOSDictionary*\/(unsignedint)
290 * withCapacity@/link</code>
293 * <code>capacity</code> must be nonzero.
294 * The new dictionary will grow as needed
295 * to accommodate more key/object pairs
297 * @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
298 * for which the initial capacity is a hard limit).
300 virtual bool initWithCapacity(unsigned int capacity
);
304 * @function initWithObjects
306 * @abstract Initializes a new OSDictionary with keys and objects provided.
308 * @param objects A C array of OSMetaClassBase-derived objects.
309 * @param keys A C array of OSSymbol keys
310 * for the corresponding objects in <code>objects</code>.
311 * @param count The number of keys and objects to be placed
312 * into the dictionary.
313 * @param capacity The initial storage capacity of the new dictionary object.
314 * If 0, <code>count</code> is used; otherwise this value
315 * must be greater than or equal to <code>count</code>.
318 * <code>true</code> on success, <code>false</code> on failure.
321 * Not for general use. Use the static instance creation method
323 * //apple_ref/cpp/clm/OSDictionary/withObjects/staticOSDictionary*\/(constOSObject*,constOSString*,unsignedint,unsignedint)
324 * withObjects@/link</code>
327 * <code>objects</code> and <code>keys</code> must be non-<code>NULL</code>,
328 * and <code>count</code> must be nonzero.
329 * If <code>capacity</code> is nonzero,
330 * it must be greater than or equal to <code>count</code>.
331 * The new dictionary will grow as neede
332 * to accommodate more key/object pairs
334 * @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
335 * for which the initial capacity is a hard limit).
337 virtual bool initWithObjects(
338 const OSObject
* objects
[],
339 const OSSymbol
* keys
[],
341 unsigned int capacity
= 0);
345 * @function initWithObjects
348 * Initializes a new OSDictionary with keys and objects provided.
350 * @param objects A C array of OSMetaClassBase-derived objects.
351 * @param keys A C array of OSString keys
352 * for the corresponding objects in <code>objects</code>.
353 * @param count The number of keys and objects
354 * to be placed into the dictionary.
355 * @param capacity The initial storage capacity of the new dictionary object.
356 * If 0, <code>count</code> is used; otherwise this value
357 * must be greater than or equal to <code>count</code>.
360 * <code>true</code> on success, <code>false</code> on failure.
363 * Not for general use. Use the static instance creation method
365 * //apple_ref/cpp/clm/OSDictionary/withObjects/staticOSDictionary*\/(constOSObject*,constOSString*,unsignedint,unsignedint)
366 * withObjects@/link</code>
369 * <code>objects</code> and <code>keys</code> must be non-<code>NULL</code>,
370 * and <code>count</code> must be nonzero.
371 * If <code>capacity</code> is nonzero, it must be greater than or equal to <code>count</code>.
372 * The new dictionary will grow as needed
373 * to accommodate more key/object pairs
375 * @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
376 * for which the initial capacity is a hard limit).
378 virtual bool initWithObjects(
379 const OSObject
* objects
[],
380 const OSString
* keys
[],
382 unsigned int capacity
= 0);
386 * @function initWithDictionary
389 * Initializes a new OSDictionary
390 * with the contents of another dictionary.
392 * @param dict A dictionary whose contents will be placed
393 * in the new instance.
394 * @param capacity The initial storage capacity of the new dictionary object.
395 * If 0, the capacity is set to the number of key/value pairs
396 * in <code>dict</code>;
397 * otherwise <code>capacity</code> must be greater than or equal to
398 * the number of key/value pairs in <code>dict</code>.
401 * <code>true</code> on success, <code>false</code> on failure.
404 * Not for general use. Use the static instance creation method
405 * <code>@link withDictionary withDictionary@/link</code> instead.
407 * <code>dict</code> must be non-<code>NULL</code>.
408 * If <code>capacity</code> is nonzero,
409 * it must be greater than or equal to <code>count</code>.
410 * The new dictionary will grow as needed
411 * to accommodate more key/object pairs
413 * @link //apple_ref/doc/uid/20001497 CFMutableDictionary@/link,
414 * for which the initial capacity is a hard limit).
416 * The keys and objects in <code>dict</code> are retained for storage
417 * in the new OSDictionary,
420 virtual bool initWithDictionary(
421 const OSDictionary
* dict
,
422 unsigned int capacity
= 0);
429 * Deallocates or releases any resources
430 * used by the OSDictionary instance.
433 * This function should not be called directly,
436 * //apple_ref/cpp/instm/OSObject/release/virtualvoid/()
437 * release@/link</code>
447 * Returns the current number of key/object pairs
448 * contained within the dictionary.
451 * The current number of key/object pairs
452 * contained within the dictionary.
454 virtual unsigned int getCount() const;
458 * @function getCapacity
461 * Returns the number of objects the dictionary can store without reallocating.
464 * The number objects the dictionary can store without reallocating.
467 * OSDictionary objects grow when full
468 * to accommodate additional key/object pairs.
471 * //apple_ref/cpp/instm/OSDictionary/getCapacityIncrement/virtualunsignedint/()
472 * getCapacityIncrement@/link</code>
475 * //apple_ref/cpp/instm/OSDictionary/ensureCapacity/virtualunsignedint/(unsignedint)
476 * ensureCapacity@/link</code>.
478 virtual unsigned int getCapacity() const;
482 * @function getCapacityIncrement
485 * Returns the storage increment of the dictionary.
488 * The storage increment of the dictionary.
491 * An OSDictionary allocates storage for key/object pairs in multiples
492 * of the capacity increment.
494 virtual unsigned int getCapacityIncrement() const;
498 * @function setCapacityIncrement
501 * Sets the storage increment of the dictionary.
504 * The new storage increment of the dictionary,
505 * which may be different from the number requested.
508 * An OSDictionary allocates storage for key/object pairs in multiples
509 * of the capacity increment.
510 * Calling this function does not immediately reallocate storage.
512 virtual unsigned int setCapacityIncrement(unsigned increment
);
516 * @function ensureCapacity
519 * Ensures the dictionary has enough space
520 * to store the requested number of key/object pairs.
522 * @param newCapacity The total number of key/object pairs the dictionary
523 * should be able to store.
526 * The new capacity of the dictionary,
527 * which may be different from the number requested
528 * (if smaller, reallocation of storage failed).
531 * This function immediately resizes the dictionary, if necessary,
532 * to accommodate at least <code>newCapacity</code> key/object pairs.
533 * If <code>newCapacity</code> is not greater than the current capacity,
534 * or if an allocation error occurs, the original capacity is returned.
536 * There is no way to reduce the capacity of an OSDictionary.
538 virtual unsigned int ensureCapacity(unsigned int newCapacity
);
542 * @function flushCollection
545 * Removes and releases all keys and objects within the dictionary.
548 * The dictionary's capacity (and therefore direct memory consumption)
549 * is not reduced by this function.
551 virtual void flushCollection();
555 * @function setObject
558 * Stores an object in the dictionary under a key.
560 * @param aKey An OSSymbol identifying the object
561 * placed within the dictionary.
562 * It is automatically retained.
563 * @param anObject The object to be stored in the dictionary.
564 * It is automatically retained.
567 * <code>true</code> if the addition was successful,
568 * <code>false</code> otherwise.
571 * An object already stored under <code>aKey</code> is released.
573 virtual bool setObject(
574 const OSSymbol
* aKey
,
575 const OSMetaClassBase
* anObject
);
579 * @function setObject
581 * @abstract Stores an object in the dictionary under a key.
583 * @param aKey An OSString identifying the object
584 * placed within the dictionary.
585 * @param anObject The object to be stored in the dictionary.
586 * It is automatically retained.
589 * <code>true</code> if the addition was successful,
590 * <code>false</code> otherwise.
593 * An OSSymbol for <code>aKey</code> is created internally.
594 * An object already stored under <code>aKey</code> is released.
596 virtual bool setObject(
597 const OSString
* aKey
,
598 const OSMetaClassBase
* anObject
);
602 * @function setObject
605 * Stores an object in the dictionary under a key.
607 * @param aKey A C string identifying the object
608 * placed within the dictionary.
609 * @param anObject The object to be stored in the dictionary.
610 * It is automatically retained.
613 * <code>true</code> if the addition was successful,
614 * <code>false</code> otherwise.
617 * An OSSymbol for <code>aKey</code> is created internally.
618 * An object already stored under <code>aKey</code> is released.
620 virtual bool setObject(
622 const OSMetaClassBase
* anObject
);
626 * @function removeObject
629 * Removes a key/object pair from the dictionary.
631 * @param aKey An OSSymbol identifying the object
632 * to be removed from the dictionary.
635 * The removed key (not necessarily <code>aKey</code> itself)
636 * and object are automatically released.
638 virtual void removeObject(const OSSymbol
* aKey
);
642 * @function removeObject
645 * Removes a key/object pair from the dictionary.
647 * @param aKey A OSString identifying the object
648 * to be removed from the dictionary.
651 * The removed key (not necessarily <code>aKey</code> itself)
652 * and object are automatically released.
654 virtual void removeObject(const OSString
* aKey
);
658 * @function removeObject
661 * Removes a key/object pair from the dictionary.
663 * @param aKey A C string identifying the object
664 * to be removed from the dictionary.
667 * The removed key (internally an OSSymbol)
668 * and object are automatically released.
670 virtual void removeObject(const char * aKey
);
677 * Merges the contents of a dictionary into the receiver.
679 * @param aDictionary The dictionary whose contents
680 * are to be merged with the receiver.
682 * <code>true</code> if the merge succeeds, <code>false</code> otherwise.
685 * If there are keys in <code>aDictionary</code> that match keys
686 * in the receiving dictionary,
687 * then the objects in the receiver are replaced
688 * by those from <code>aDictionary</code>,
689 * and the replaced objects are released.
691 virtual bool merge(const OSDictionary
* aDictionary
);
695 * @function getObject
698 * Returns the object stored under a given key.
700 * @param aKey An OSSymbol key identifying the object
701 * to be returned to the caller.
704 * The object stored under <code>aKey</code>,
705 * or <code>NULL</code> if the key does not exist in the dictionary.
708 * The returned object will be released if removed from the dictionary;
709 * if you plan to store the reference, you should call
711 * //apple_ref/cpp/instm/OSObject/retain/virtualvoid/()
712 * retain@/link</code>
715 virtual OSObject
* getObject(const OSSymbol
* aKey
) const;
719 * @function getObject
721 * @abstract Returns the object stored under a given key.
723 * @param aKey An OSString key identifying the object
724 * to be returned to caller.
727 * The object stored under <code>aKey</code>,
728 * or <code>NULL</code> if the key does not exist in the dictionary.
731 * The returned object will be released if removed from the dictionary;
732 * if you plan to store the reference, you should call
734 * //apple_ref/cpp/instm/OSObject/retain/virtualvoid/()
735 * retain@/link</code>
738 virtual OSObject
* getObject(const OSString
* aKey
) const;
742 * @function getObject
745 * Returns the object stored under a given key.
747 * @param aKey A C string key identifying the object
748 * to be returned to caller.
751 * The object stored under <code>aKey</code>,
752 * or <code>NULL</code> if the key does not exist in the dictionary.
755 * The returned object will be released if removed from the dictionary;
756 * if you plan to store the reference, you should call
758 * //apple_ref/cpp/instm/OSObject/retain/virtualvoid/()
759 * retain@/link</code>
762 virtual OSObject
* getObject(const char * aKey
) const;
766 * @function isEqualTo
768 * @abstract Tests the equality of two OSDictionary objects
769 * over a subset of keys.
771 * @param aDictionary The dictionary to be compared against the receiver.
772 * @param keys An OSArray or OSDictionary containing the keys
773 * (as @link //apple_ref/cpp/cl/OSString OSStrings@/link or
774 * @link //apple_ref/cpp/cl/OSSymbol OSSymbols@/link)
775 * describing the intersection for the comparison.
778 * <code>true</code> if the intersections
779 * of the two dictionaries are equal.
782 * Two OSDictionary objects are considered equal by this function
783 * if both have objects stored for all keys provided,
784 * and if the objects stored in each under
785 * a given key compare as equal using
787 * //apple_ref/cpp/instm/OSMetaClassBase/isEqualTo/virtualbool/(constOSMetaClassBase*)
788 * isEqualTo@/link</code>.
790 virtual bool isEqualTo(
791 const OSDictionary
* aDictionary
,
792 const OSCollection
* keys
) const;
796 * @function isEqualTo
798 * @abstract Tests the equality of two OSDictionary objects.
800 * @param aDictionary The dictionary to be compared against the receiver.
803 * <code>true</code> if the dictionaries are equal,
804 * <code>false</code> if not.
807 * Two OSDictionary objects are considered equal if they have same count,
808 * the same keys, and if the objects stored in each under
809 * a given key compare as equal using
811 * //apple_ref/cpp/instm/OSMetaClassBase/isEqualTo/virtualbool/(constOSMetaClassBase*)
812 * isEqualTo@/link</code>.
814 virtual bool isEqualTo(const OSDictionary
* aDictionary
) const;
818 * @function isEqualTo
821 * Tests the equality of an OSDictionary to an arbitrary object.
823 * @param anObject An object to be compared against the receiver.
826 * <code>true</code> if the objects are equal.
829 * An OSDictionary is considered equal to another object
830 * if that object is derived from OSDictionary
831 * and contains the same or equivalent objects.
833 virtual bool isEqualTo(const OSMetaClassBase
* anObject
) const;
837 * @function serialize
840 * Archives the receiver into the provided
841 * @link //apple_ref/doc/class/OSSerialize OSSerialize@/link object.
843 * @param serializer The OSSerialize object.
846 * <code>true</code> if serialization succeeds, <code>false</code> if not.
848 virtual bool serialize(OSSerialize
* serializer
) const;
852 * @function setOptions
855 * Recursively sets option bits in the dictionary
856 * and all child collections.
858 * @param options A bitfield whose values turn the options on (1) or off (0).
859 * @param mask A mask indicating which bits
860 * in <code>options</code> to change.
861 * Pass 0 to get the whole current options bitfield
862 * without changing any settings.
863 * @param context Unused.
866 * The options bitfield as it was before the set operation.
869 * Kernel extensions should not call this function.
871 * Child collections' options are changed only if the receiving dictionary's
872 * options actually change.
874 virtual unsigned setOptions(
881 * @function copyCollection
884 * Creates a deep copy of the dictionary
885 * and its child collections.
887 * @param cycleDict A dictionary of all of the collections
888 * that have been copied so far,
889 * which is used to track circular references.
890 * To start the copy at the top level,
891 * pass <code>NULL</code>.
894 * The newly copied dictionary, with a retain count of 1,
895 * or <code>NULL</code> if there is insufficient memory to do the copy.
898 * The receiving dictionary, and any collections it contains, recursively,
900 * Objects that are not derived from OSCollection are retained
901 * rather than copied.
903 OSCollection
* copyCollection(OSDictionary
* cycleDict
= 0);
906 OSMetaClassDeclareReservedUnused(OSDictionary
, 0);
907 OSMetaClassDeclareReservedUnused(OSDictionary
, 1);
908 OSMetaClassDeclareReservedUnused(OSDictionary
, 2);
909 OSMetaClassDeclareReservedUnused(OSDictionary
, 3);
910 OSMetaClassDeclareReservedUnused(OSDictionary
, 4);
911 OSMetaClassDeclareReservedUnused(OSDictionary
, 5);
912 OSMetaClassDeclareReservedUnused(OSDictionary
, 6);
913 OSMetaClassDeclareReservedUnused(OSDictionary
, 7);
916 #endif /* !_IOKIT_IODICTIONARY_H */