/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-#if (KDEBUG_LEVEL >= KDEBUG_LEVEL_STANDARD)
-
-#define IOServiceTrace(csc, a, b, c, d) do { \
- if(kIOTraceIOService & gIOKitTrace) { \
- KERNEL_DEBUG_CONSTANT(IODBG_IOSERVICE(csc), a, b, c, d, 0); \
- } \
-} while(0)
-
-#else /* (KDEBUG_LEVEL >= KDEBUG_LEVEL_STANDARD) */
-
-#define IOServiceTrace(csc, a, b, c, d) do { \
- (void)a; \
- (void)b; \
- (void)c; \
- (void)d; \
-} while (0)
-
-#endif /* (KDEBUG_LEVEL >= KDEBUG_LEVEL_STANDARD) */
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
typedef kern_return_t (*IOIteratePageableMapsCallback)(vm_map_t map, void * ref);
void IOLibInit(void);
({ typeof(expr) expr_ = (type)(uintptr_t)(expr); \
(type)(uintptr_t)(expr_); })
+struct IODMACommandMapSegment {
+ uint64_t fDMAOffset; // The offset of this segment in DMA
+ uint64_t fMapOffset; // Offset of segment in mapping
+ uint64_t fPageOffset; // Offset within first page of segment
+};
struct IODMACommandInternal {
IOMDDMAWalkSegmentState fState;
UInt8 fCheckAddressing;
UInt8 fIterateOnly;
UInt8 fMisaligned;
- UInt8 fMapContig;
UInt8 fPrepared;
UInt8 fDoubleBuffer;
UInt8 fNewMD;
uint64_t fLocalMapperAlloc;
uint64_t fLocalMapperAllocLength;
- class IOBufferMemoryDescriptor * fCopyMD;
+ OSPtr<IOBufferMemoryDescriptor> fCopyMD;
IOService * fDevice;
IOReturn fStatus;
UInt64 fActualByteCount;
AbsoluteTime fTimeStamp;
+
+ // Multisegment vars
+ IODMACommandMapSegment * fMapSegments;
+ uint32_t fMapSegmentsCount;
+ uint64_t fLocalMapperAllocBase;
+ uint64_t fOffset2Index;
+ uint64_t fNextOffset;
+ uint64_t fIndex;
};
struct IOMemoryDescriptorDevicePager {
struct IOMemoryDescriptorReserved {
IOMemoryDescriptorDevicePager dp;
+ uint64_t descriptorID;
uint64_t preparationID;
// for kernel IOMD subclasses... they have no expansion
uint64_t kernReserved[4];
vm_tag_t kernelTag;
vm_tag_t userTag;
+ task_t creator;
};
struct iopa_t {
};
extern "C" void iopa_init(iopa_t * a);
-extern "C" uintptr_t iopa_alloc(iopa_t * a, iopa_proc_t alloc, vm_size_t bytes, uint32_t balign);
+extern "C" uintptr_t iopa_alloc(iopa_t * a, iopa_proc_t alloc, vm_size_t bytes, vm_size_t balign);
extern "C" uintptr_t iopa_free(iopa_t * a, uintptr_t addr, vm_size_t bytes);
extern "C" uint32_t gIOPageAllocChunkBytes;
extern OSSet * gIORemoveOnReadProperties;
extern "C" void IOKitInitializeTime( void );
+extern void IOMachPortInitialize(void);
extern "C" OSString * IOCopyLogNameForPID(int pid);
extern const OSSymbol * gIOCreateEFIDevicePathSymbol;
extern "C" void IOSetKeyStoreData(LIBKERN_CONSUMED IOMemoryDescriptor * data);
extern "C" void IOSetAPFSKeyStoreData(LIBKERN_CONSUMED IOMemoryDescriptor* data);
+extern "C" void IOSetARVRootHashData(LIBKERN_CONSUMED IOMemoryDescriptor* arvData);
+extern "C" void IOSetARVManifestData(LIBKERN_CONSUMED IOMemoryDescriptor* arvData);
#endif
extern const OSSymbol * gAKSGetKey;
void IOCPUInitialize(void);
IOReturn IOInstallServicePlatformActions(IOService * service);
+IOReturn IOInstallServiceSleepPlatformActions(IOService * service);
IOReturn IORemoveServicePlatformActions(IOService * service);
+void IOCPUSleepKernel(void);
+void IOPlatformActionsInitialize(void);
#endif /* ! _IOKIT_KERNELINTERNAL_H */