Loading...
--- xnu/xnu-12377.101.15/iokit/IOKit/IOKitDebug.h
+++ xnu/xnu-517/iokit/IOKit/IOKitDebug.h
@@ -1,20 +1,17 @@
/*
- * Copyright (c) 1998-2019 Apple Inc. All rights reserved.
+ * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
*
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
+ * @APPLE_LICENSE_HEADER_START@
+ *
+ * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
+ *
* 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.
- *
+ * compliance with the License. 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,
@@ -22,9 +19,16 @@
* 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_HEADER_END@
+ */
+/*
+ * Copyright (c) 1998 Apple Computer, Inc. All rights reserved.
*
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ * HISTORY
+ *
*/
+
#ifndef _IOKIT_IOKITDEBUG_H
#define _IOKIT_IOKITDEBUG_H
@@ -40,297 +44,52 @@
class IOKitDiagnostics : public OSObject
{
- OSDeclareDefaultStructors(IOKitDiagnostics);
+ OSDeclareDefaultStructors(IOKitDiagnostics)
public:
- static OSObject * diagnostics( void );
- virtual bool serialize(OSSerialize *s) const APPLE_KEXT_OVERRIDE;
+ static OSObject * diagnostics( void );
+ virtual bool serialize(OSSerialize *s) const;
private:
- static void updateOffset( OSDictionary * dict,
- UInt64 value, const char * name );
+ static void updateOffset( OSDictionary * dict,
+ UInt32 value, const char * name );
};
-#endif /* __cplusplus */
+#endif __cplusplus
enum {
- // loggage
- kIOLogAttach = 0x00000001ULL,
- kIOLogProbe = 0x00000002ULL,
- kIOLogStart = 0x00000004ULL,
- kIOLogRegister = 0x00000008ULL,
- kIOLogMatch = 0x00000010ULL,
- kIOLogConfig = 0x00000020ULL,
- kIOLogYield = 0x00000040ULL,
- kIOLogPower = 0x00000080ULL,
- kIOLogMapping = 0x00000100ULL,
- kIOLogCatalogue = 0x00000200ULL,
- kIOLogTracePower = 0x00000400ULL, // Obsolete: Use iotrace=0x00000400ULL to enable now
- kIOLogDebugPower = 0x00000800ULL,
- kIOLogServiceTree = 0x00001000ULL,
- kIOLogDTree = 0x00002000ULL,
- kIOLogMemory = 0x00004000ULL,
- kIOLogKextMemory = 0x00008000ULL,
- kOSLogRegistryMods = 0x00010000ULL,// Log attempts to modify registry collections
- kIOLogPMRootDomain = 0x00020000ULL,
- kOSRegistryModsMode = 0x00040000ULL,// Change default registry modification handling - panic vs. log
-// kIOTraceIOService = 0x00080000ULL, // Obsolete: Use iotrace=0x00080000ULL to enable now
- kIOLogHibernate = 0x00100000ULL,
- kIOStatistics = 0x04000000ULL,
- kIOSleepWakeWdogOff = 0x40000000ULL,
- kIOKextSpinDump = 0x80000000ULL,
+// loggage
+ kIOLogAttach = 0x00000001ULL,
+ kIOLogProbe = 0x00000002ULL,
+ kIOLogStart = 0x00000004ULL,
+ kIOLogRegister = 0x00000008ULL,
+ kIOLogMatch = 0x00000010ULL,
+ kIOLogConfig = 0x00000020ULL,
+ kIOLogYield = 0x00000040ULL,
+ kIOLogPower = 0x00000080ULL,
+ kIOLogMapping = 0x00000100ULL,
+ kIOLogCatalogue = 0x00000200ULL,
+ kIOLogTracePower = 0x00000400ULL,
- // debug aids - change behaviour
- kIONoFreeObjects = 0x00100000ULL,
-// kIOLogSynchronous = 0x00200000ULL, // IOLog completes synchronously -- obsolete
- kIOTracking = 0x00400000ULL,
- kIOWaitQuietPanics = 0x00800000ULL,
- kIOWaitQuietBeforeRoot = 0x01000000ULL,
- kIOTrackingBoot = 0x02000000ULL,
+ kIOLogServiceTree = 0x00001000ULL,
+ kIOLogDTree = 0x00002000ULL,
+ kIOLogMemory = 0x00004000ULL,
- kIOLogExclaves = 0x100000000ULL,
-
- _kIODebugTopFlag = 0x8000000000000000ULL// force enum to be 64 bits
+// debug aids - change behaviour
+ kIONoFreeObjects = 0x00100000ULL,
+ kIOLogSynchronous = 0x00200000ULL, // IOLog completes synchrounsly
};
-enum {
- kIOKitDebugUserOptions = 0
- | kIOLogAttach
- | kIOLogProbe
- | kIOLogStart
- | kIOLogRegister
- | kIOLogMatch
- | kIOLogConfig
- | kIOLogYield
- | kIOLogPower
- | kIOLogMapping
- | kIOLogCatalogue
- | kIOLogTracePower
- | kIOLogDebugPower
- | kOSLogRegistryMods
- | kIOLogPMRootDomain
- | kOSRegistryModsMode
- | kIOLogHibernate
- | kIOSleepWakeWdogOff
- | kIOKextSpinDump
- | kIOWaitQuietPanics
- | kIOLogExclaves
-};
-
-enum {
- kIOTraceInterrupts = 0x00000001ULL, // Trace primary interrupts
- kIOTraceWorkLoops = 0x00000002ULL, // Trace workloop activity
- kIOTraceEventSources = 0x00000004ULL, // Trace non-passive event sources
- kIOTraceIntEventSource = 0x00000008ULL, // Trace IOIES and IOFIES sources
- kIOTraceCommandGates = 0x00000010ULL, // Trace command gate activity
- kIOTraceTimers = 0x00000020ULL, // Trace timer event source activity
-
- kIOTracePowerMgmt = 0x00000400ULL, // Trace power management changes
-
- kIOTraceIOService = 0x00080000ULL, // registerService/termination
-
- kIOTraceCompatBootArgs = kIOTraceIOService | kIOTracePowerMgmt
-};
-
-enum {
- kIODKEnable = 0x00000001ULL,
- kIODKLogSetup = 0x00000002ULL,
- kIODKLogIPC = 0x00000004ULL,
- kIODKLogPM = 0x00000008ULL,
- kIODKLogMessages = 0x00000010ULL,
-
- kIODKDisablePM = 0x000000100ULL,
- kIODKDisableDextLaunch = 0x00001000ULL,
- kIODKDisableDextTag = 0x00002000ULL,
- kIODKDisableCDHashChecking = 0x00004000ULL,
- kIODKDisableEntitlementChecking = 0x00008000ULL,
- kIODKDisableCheckInTokenVerification = 0x00010000ULL,
- kIODKDisableIOPMSystemOffPhase2Allow = 0x00020000ULL,
-};
-
-#if XNU_KERNEL_PRIVATE
-
-#define DKLOG(fmt, args...) { IOLog("DK: " fmt, ## args); }
-#define DKS "%s-0x%qx"
-#define DKN(s) s ? s->getName() : "NO-NAME", s ? s->getRegistryEntryID() : UINT64_MAX
-
-#ifdef IOKITDEBUG
-#define DEBUG_INIT_VALUE IOKITDEBUG
-#else
-// Enable IOWaitQuiet panics except on KASAN. These panics can only
-// be triggered by specially entitled entities granted the privilege
-// to panic on a registry quiesce timeout.
-#if KASAN
-#define DEBUG_INIT_VALUE 0
-#else /* !KASAN */
-#define DEBUG_INIT_VALUE kIOWaitQuietPanics
-#endif /* KASAN */
-#endif
-
-#endif /* XNU_KERNEL_PRIVATE */
-
-extern SInt64 gIOKitDebug;
-extern SInt64 gIOKitTrace;
-extern SInt64 gIODKDebug;
-
-#ifdef __cplusplus
-
-typedef kern_return_t (*IOCoreAnalyticsSendEventProc)(
- uint64_t options,
- OSString * eventName,
- OSDictionary * eventPayload);
-
-#if XNU_KERNEL_PRIVATE
-extern IOCoreAnalyticsSendEventProc gIOCoreAnalyticsSendEventProc;
-#endif /* XNU_KERNEL_PRIVATE */
-
-#endif /* __cplusplus */
+extern SInt64 gIOKitDebug;
+extern char iokit_version[];
#ifdef __cplusplus
extern "C" {
#endif
-#ifdef __cplusplus
-class IORegistryPlane;
-#endif
-
-extern void IOPrintPlane(
-#ifdef __cplusplus
- const IORegistryPlane * plane
-#else
- const struct IORegistryPlane * plane
-#endif
- );
-#ifndef _OSCPPDEBUG_H
-extern void OSPrintMemory( void );
-#endif
+struct IORegistryPlane;
+extern void IOPrintPlane( const struct IORegistryPlane * plane );
+extern void OSPrintMemory( void );
#define IOPrintMemory OSPrintMemory
-
-#if defined(KERNEL) && defined(__cplusplus)
-kern_return_t
-IOSetCoreAnalyticsSendEventProc(IOCoreAnalyticsSendEventProc proc);
-#endif /* defined(KERNEL) && defined(__cplusplus) */
-
-#define kIOKitDiagnosticsClientClassName "IOKitDiagnosticsClient"
-
-enum{
- kIOKitDiagnosticsClientType = 0x99000002
-};
-
-
-struct IOKitDiagnosticsParameters {
- size_t size;
- uint64_t value;
- uint32_t options;
- uint32_t tag;
- uint32_t zsize;
- uint32_t reserved[8];
-};
-typedef struct IOKitDiagnosticsParameters IOKitDiagnosticsParameters;
-
-enum{
- kIOTrackingCallSiteBTs = 16,
-};
-
-struct IOTrackingCallSiteInfo {
- uint32_t count;
- pid_t addressPID;
- mach_vm_address_t address;
- mach_vm_size_t size[2];
- pid_t btPID;
- mach_vm_address_t bt[2][kIOTrackingCallSiteBTs];
-};
-
-#define kIOMallocTrackingName "IOMalloc"
-#define kIOWireTrackingName "IOWire"
-#define kIOMapTrackingName "IOMap"
-
-#if XNU_KERNEL_PRIVATE && IOTRACKING
-
-struct IOTrackingQueue;
-struct IOTrackingCallSite;
-
-struct IOTracking {
- queue_chain_t link;
- IOTrackingCallSite * site;
-#if !defined(__LP64__)
- uint32_t flags;
-#endif
-};
-
-struct IOTrackingAddress {
- IOTracking tracking;
- uintptr_t address;
- size_t size;
-#if defined(__LP64__)
- uint32_t flags;
-#endif
-};
-
-struct IOTrackingUser {
- queue_chain_t link;
- pid_t btPID;
- uint8_t user32;
- uint8_t userCount;
- uintptr_t bt[kIOTrackingCallSiteBTs];
- uintptr_t btUser[kIOTrackingCallSiteBTs];
-};
-
-enum{
- kIOTrackingQueueTypeDefaultOn = 0x00000001,
- kIOTrackingQueueTypeAlloc = 0x00000002,
- kIOTrackingQueueTypeMap = 0x00000004,
- kIOTrackingQueueTypeUser = 0x00000008,
-};
-
-
-void IOTrackingInit(void);
-IOTrackingQueue * IOTrackingQueueAlloc(const char * name, uintptr_t btEntry,
- size_t allocSize, size_t minCaptureSize,
- uint32_t type, uint32_t numSiteQs);
-void IOTrackingQueueFree(IOTrackingQueue * head);
-void IOTrackingQueueCollectUser(IOTrackingQueue * queue);
-void IOTrackingAdd(IOTrackingQueue * head, IOTracking * mem, size_t size, bool address, vm_tag_t tag);
-void IOTrackingRemove(IOTrackingQueue * head, IOTracking * mem, size_t size);
-void IOTrackingRemoveAddress(IOTrackingQueue * head, IOTrackingAddress * mem, size_t size);
-void IOTrackingAddUser(IOTrackingQueue * queue, IOTrackingUser * mem, vm_size_t size);
-void IOTrackingRemoveUser(IOTrackingQueue * head, IOTrackingUser * tracking);
-
-void IOTrackingAlloc(IOTrackingQueue * head, uintptr_t address, size_t size);
-void IOTrackingFree(IOTrackingQueue * head, uintptr_t address, size_t size);
-void IOTrackingReset(IOTrackingQueue * head);
-void IOTrackingAccumSize(IOTrackingQueue * head, IOTracking * mem, size_t size);
-kern_return_t IOTrackingDebug(uint32_t selector, uint32_t options,
- const char * names, size_t namesLen,
- size_t size, OSObject ** result);
-
-extern IOTrackingQueue * gIOMallocTracking;
-extern IOTrackingQueue * gIOWireTracking;
-extern IOTrackingQueue * gIOMapTracking;
-
-#endif /* XNU_KERNEL_PRIVATE && IOTRACKING */
-
-enum{
- kIOTrackingLeakScanStart = 0x00000001,
- kIOTrackingLeakScanEnd = 0x00000002,
-};
-
-extern void (*gIOTrackingLeakScanCallback)(uint32_t notification);
-
-enum{
- kIOTrackingExcludeNames = 0x00000001,
-};
-
-enum{
- kIOTrackingGetTracking = 0x00000001,
- kIOTrackingGetMappings = 0x00000002,
- kIOTrackingResetTracking = 0x00000003,
- kIOTrackingStartCapture = 0x00000004,
- kIOTrackingStopCapture = 0x00000005,
- kIOTrackingSetMinCaptureSize = 0x00000006,
- kIOTrackingLeaks = 0x00000007,
- kIOTrackingInvalid = 0xFFFFFFFE,
-};
-
#ifdef __cplusplus
} /* extern "C" */