X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/8ad349bb6ed4a0be06e34c92be0d98b92e078db4..a1c7dba18ef36983396c282fe85292db066e39db:/iokit/IOKit/IOTypes.h diff --git a/iokit/IOKit/IOTypes.h b/iokit/IOKit/IOTypes.h index 6e5783589..aa8afd057 100644 --- a/iokit/IOKit/IOTypes.h +++ b/iokit/IOKit/IOTypes.h @@ -1,39 +1,30 @@ /* - * Copyright (c) 1998-2004 Apple Computer, Inc. All rights reserved. + * Copyright (c) 1998-2012 Apple Computer, Inc. All rights reserved. * - * @APPLE_LICENSE_OSREFERENCE_HEADER_START@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. The rights granted to you under the - * License may not be used to create, or enable the creation or - * redistribution of, unlawful or unlicensed copies of an Apple operating - * system, or to circumvent, violate, or enable the circumvention or - * violation of, any terms of an Apple operating system software license - * agreement. - * - * Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and * limitations under the License. - * - * @APPLE_LICENSE_OSREFERENCE_HEADER_END@ - */ -/* - * Copyright (c) 1998 Apple Computer, Inc. All rights reserved. - * - * HISTORY - * + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ - #ifndef __IOKIT_IOTYPES_H #define __IOKIT_IOTYPES_H @@ -55,72 +46,88 @@ extern "C" { #endif #ifndef NULL +#if defined (__cplusplus) #define NULL 0 +#else +#define NULL ((void *)0) +#endif #endif /* * Simple data types. */ -#ifndef __MACTYPES__ /* CF MacTypes.h */ -#ifndef __TYPES__ /* guess... Mac Types.h */ - +#include #include -#ifndef __cplusplus -#if !TYPE_BOOL -#ifdef KERNEL -typedef int bool; -enum { - false = 0, - true = 1 -}; -#endif -#endif +#if KERNEL +#include #endif -#endif /* __TYPES__ */ -#endif /* __MACTYPES__ */ - typedef UInt32 IOOptionBits; typedef SInt32 IOFixed; typedef UInt32 IOVersion; typedef UInt32 IOItemCount; typedef UInt32 IOCacheMode; -typedef UInt32 IOByteCount; +typedef UInt32 IOByteCount32; +typedef UInt64 IOByteCount64; + +typedef UInt32 IOPhysicalAddress32; +typedef UInt64 IOPhysicalAddress64; +typedef UInt32 IOPhysicalLength32; +typedef UInt64 IOPhysicalLength64; + +#if !defined(__arm__) && !defined(__i386__) +typedef mach_vm_address_t IOVirtualAddress; +#else +typedef vm_address_t IOVirtualAddress; +#endif + +#if !defined(__arm__) && !defined(__i386__) && !(defined(__x86_64__) && !defined(KERNEL)) +typedef IOByteCount64 IOByteCount; +#else +typedef IOByteCount32 IOByteCount; +#endif - /* LP64todo - these will need to expand to mach_vm_address_t */ -typedef vm_address_t IOVirtualAddress; -typedef IOVirtualAddress IOLogicalAddress; +typedef IOVirtualAddress IOLogicalAddress; -#if 0 +#if !defined(__arm__) && !defined(__i386__) && !(defined(__x86_64__) && !defined(KERNEL)) -typedef UInt64 IOPhysicalAddress; -typedef UInt64 IOPhysicalLength; +typedef IOPhysicalAddress64 IOPhysicalAddress; +typedef IOPhysicalLength64 IOPhysicalLength; #define IOPhysical32( hi, lo ) ((UInt64) lo + ((UInt64)(hi) << 32)) #define IOPhysSize 64 #else -typedef UInt32 IOPhysicalAddress; -typedef UInt32 IOPhysicalLength; +typedef IOPhysicalAddress32 IOPhysicalAddress; +typedef IOPhysicalLength32 IOPhysicalLength; #define IOPhysical32( hi, lo ) (lo) #define IOPhysSize 32 #endif -#if __cplusplus -struct IOVirtualRange + +typedef struct { - IOVirtualAddress address; + IOPhysicalAddress address; IOByteCount length; -}; -#else +} IOPhysicalRange; + typedef struct { IOVirtualAddress address; IOByteCount length; } IOVirtualRange; + +#if !defined(__arm__) && !defined(__i386__) +typedef IOVirtualRange IOAddressRange; +#else +typedef struct +{ + mach_vm_address_t address; + mach_vm_size_t length; +} IOAddressRange; #endif /* @@ -151,7 +158,12 @@ typedef unsigned int IOAlignment; #ifndef __IOKIT_PORTS_DEFINED__ #define __IOKIT_PORTS_DEFINED__ #ifdef KERNEL +#ifdef __cplusplus +class OSObject; +typedef OSObject * io_object_t; +#else typedef struct OSObject * io_object_t; +#endif #else /* KERNEL */ typedef mach_port_t io_object_t; #endif /* KERNEL */ @@ -179,7 +191,8 @@ enum { kIOInhibitCache = 1, kIOWriteThruCache = 2, kIOCopybackCache = 3, - kIOWriteCombineCache = 4 + kIOWriteCombineCache = 4, + kIOCopybackInnerCache = 5 }; // IOMemory mapping options @@ -188,11 +201,12 @@ enum { kIOMapCacheMask = 0x00000700, kIOMapCacheShift = 8, - kIOMapDefaultCache = kIODefaultCache << kIOMapCacheShift, - kIOMapInhibitCache = kIOInhibitCache << kIOMapCacheShift, - kIOMapWriteThruCache = kIOWriteThruCache << kIOMapCacheShift, - kIOMapCopybackCache = kIOCopybackCache << kIOMapCacheShift, - kIOMapWriteCombineCache = kIOWriteCombineCache << kIOMapCacheShift, + kIOMapDefaultCache = kIODefaultCache << kIOMapCacheShift, + kIOMapInhibitCache = kIOInhibitCache << kIOMapCacheShift, + kIOMapWriteThruCache = kIOWriteThruCache << kIOMapCacheShift, + kIOMapCopybackCache = kIOCopybackCache << kIOMapCacheShift, + kIOMapWriteCombineCache = kIOWriteCombineCache << kIOMapCacheShift, + kIOMapCopybackInnerCache = kIOCopybackInnerCache << kIOMapCacheShift, kIOMapUserOptionsMask = 0x00000fff, @@ -200,7 +214,11 @@ enum { kIOMapStatic = 0x01000000, kIOMapReference = 0x02000000, - kIOMapUnique = 0x04000000 + kIOMapUnique = 0x04000000, +#ifdef XNU_KERNEL_PRIVATE + kIOMap64Bit = 0x08000000, +#endif + kIOMapPrefault = 0x10000000, }; /*! @enum Scale Factors @@ -219,21 +237,15 @@ enum { kTickScale = (kSecondScale / 100) }; +enum { + kIOConnectMethodVarOutputSize = -3 +}; + /* compatibility types */ #ifndef KERNEL -/* - * Machine-independent caching specification. - */ -typedef enum { - IO_CacheOff, // cache inhibit - IO_WriteThrough, - IO_CopyBack -} IOCache; -//typedef char OSString[64]; typedef unsigned int IODeviceNumber; -typedef unsigned int IOObjectNumber; #endif