]>
git.saurik.com Git - apple/xnu.git/blob - libkern/c++/OSCollection.cpp
bb0b9b3c0d716e75773cb744a684cc601e93c168
   2  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. 
   4  * @APPLE_LICENSE_OSREFERENCE_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  
  10  * License may not be used to create, or enable the creation or  
  11  * redistribution of, unlawful or unlicensed copies of an Apple operating  
  12  * system, or to circumvent, violate, or enable the circumvention or  
  13  * violation of, any terms of an Apple operating system software license  
  16  * Please obtain a copy of the License at  
  17  * http://www.opensource.apple.com/apsl/ and read it before using this  
  20  * The Original Code and all software distributed under the License are  
  21  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER  
  22  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,  
  23  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,  
  24  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.  
  25  * Please see the License for the specific language governing rights and  
  26  * limitations under the License. 
  28  * @APPLE_LICENSE_OSREFERENCE_HEADER_END@ 
  30 /* IOArray.h created by rsulack on Thu 11-Sep-1997 */ 
  32 #include <libkern/OSDebug.h> 
  34 #include <libkern/c++/OSCollection.h> 
  35 #include <libkern/c++/OSDictionary.h> 
  37 #include <IOKit/IOKitDebug.h> 
  39 #define super OSObject 
  41 OSDefineMetaClassAndAbstractStructors(OSCollection
, OSObject
) 
  44 OSMetaClassDefineReservedUsed(OSCollection
, 0); 
  45 OSMetaClassDefineReservedUsed(OSCollection
, 1); 
  46 OSMetaClassDefineReservedUnused(OSCollection
, 2); 
  47 OSMetaClassDefineReservedUnused(OSCollection
, 3); 
  48 OSMetaClassDefineReservedUnused(OSCollection
, 4); 
  49 OSMetaClassDefineReservedUnused(OSCollection
, 5); 
  50 OSMetaClassDefineReservedUnused(OSCollection
, 6); 
  51 OSMetaClassDefineReservedUnused(OSCollection
, 7); 
  53 bool OSCollection::init() 
  63 void OSCollection::haveUpdated() 
  65     if ( (gIOKitDebug 
& kOSLogRegistryMods
) && (fOptions 
& kImmutable
) ) 
  66         OSReportWithBacktrace("Trying to change a collection in the registry"); 
  71 unsigned OSCollection::setOptions(unsigned options
, unsigned mask
, void *) 
  73     unsigned old 
= fOptions
; 
  76         fOptions 
= (old 
& ~mask
) | (options 
& mask
); 
  81 OSCollection 
*  OSCollection::copyCollection(OSDictionary 
*cycleDict
) 
  84         OSObject 
*obj 
= cycleDict
->getObject((const OSSymbol 
*) this); 
  88         return reinterpret_cast<OSCollection 
*>(obj
); 
  91         // If we are here it means that there is a collection subclass that 
  92         // hasn't overridden the copyCollection method.  In which case just 
  93         // return a reference to ourselves.   
  94         // Hopefully this collection will not be inserted into the registry