]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/sys/kdebug.h
xnu-517.7.21.tar.gz
[apple/xnu.git] / bsd / sys / kdebug.h
index b242cecb4fdddaa98234d4edeb22957182a4a09e..0f00781f621f25982a0a0a3d86d09a30603c60c9 100644 (file)
 #ifndef BSD_SYS_KDEBUG_H
 #define BSD_SYS_KDEBUG_H
 
 #ifndef BSD_SYS_KDEBUG_H
 #define BSD_SYS_KDEBUG_H
 
+#include <sys/appleapiopts.h>
 #include <sys/cdefs.h>
 __BEGIN_DECLS
 
 #include <sys/cdefs.h>
 __BEGIN_DECLS
 
+#ifdef __APPLE_API_UNSTABLE
+
 #include <mach/clock_types.h>
 #include <mach/clock_types.h>
+#include <stdint.h>
 #if    defined(KERNEL_BUILD)
 #include <kdebug.h>
 #endif /* KERNEL_BUILD */
 #if    defined(KERNEL_BUILD)
 #include <kdebug.h>
 #endif /* KERNEL_BUILD */
@@ -72,6 +76,8 @@ __BEGIN_DECLS
 #define DBG_TRACE               7
 #define DBG_DLIL               8
 #define DBG_MISC               20
 #define DBG_TRACE               7
 #define DBG_DLIL               8
 #define DBG_MISC               20
+#define DBG_DYLD                31
+#define DBG_QT                  32
 #define DBG_MIG                        255
 
 /* **** The Kernel Debug Sub Classes for Mach (DBG_MACH) **** */
 #define DBG_MIG                        255
 
 /* **** The Kernel Debug Sub Classes for Mach (DBG_MACH) **** */
@@ -84,6 +90,7 @@ __BEGIN_DECLS
 #define        DBG_MACH_EXCP_DECI      0x09    /* Decrementer Interrupt */
 #define        DBG_MACH_EXCP_SC        0x0C    /* System Calls */
 #define        DBG_MACH_EXCP_TRACE     0x0D    /* Trace exception */
 #define        DBG_MACH_EXCP_DECI      0x09    /* Decrementer Interrupt */
 #define        DBG_MACH_EXCP_SC        0x0C    /* System Calls */
 #define        DBG_MACH_EXCP_TRACE     0x0D    /* Trace exception */
+#define        DBG_MACH_EXCP_EMUL      0x0E    /* Instruction emulated */
 #define        DBG_MACH_IHDLR          0x10    /* Interrupt Handlers */
 #define        DBG_MACH_IPC            0x20    /* Inter Process Comm */
 #define        DBG_MACH_VM             0x30    /* Virtual Memory */
 #define        DBG_MACH_IHDLR          0x10    /* Interrupt Handlers */
 #define        DBG_MACH_IPC            0x20    /* Inter Process Comm */
 #define        DBG_MACH_VM             0x30    /* Virtual Memory */
@@ -97,6 +104,10 @@ __BEGIN_DECLS
 #define MACH_CALL_CONT          0x3     /* call_continuation() */
 #define MACH_CALLOUT            0x4     /* callouts */
 #define MACH_STACK_DETACH       0x5
 #define MACH_CALL_CONT          0x3     /* call_continuation() */
 #define MACH_CALLOUT            0x4     /* callouts */
 #define MACH_STACK_DETACH       0x5
+#define MACH_MAKE_RUNNABLE      0x6     /* make thread runnable */
+#define        MACH_PROMOTE                    0x7             /* promoted due to resource */
+#define        MACH_DEMOTE                             0x8             /* promotion undone */
+#define MACH_PREBLOCK_MUTEX            0x9             /* preblocking on mutex */
 
 /* **** The Kernel Debug Sub Classes for Network (DBG_NETWORK) **** */
 #define DBG_NETIP      1       /* Internet Protocol */
 
 /* **** The Kernel Debug Sub Classes for Network (DBG_NETWORK) **** */
 #define DBG_NETIP      1       /* Internet Protocol */
@@ -122,6 +133,7 @@ __BEGIN_DECLS
 #define        DBG_NETAFP      107     /* Apple Filing Protocol */
 #define        DBG_NETRTMP     108     /* Routing Table Maintenance Protocol */
 #define        DBG_NETAURP     109     /* Apple Update Routing Protocol */
 #define        DBG_NETAFP      107     /* Apple Filing Protocol */
 #define        DBG_NETRTMP     108     /* Routing Table Maintenance Protocol */
 #define        DBG_NETAURP     109     /* Apple Update Routing Protocol */
+#define        DBG_NETIPSEC    128     /* IPsec Protocol  */
 
 /* **** The Kernel Debug Sub Classes for IOKIT (DBG_IOKIT) **** */
 #define DBG_IOSCSI     1       /* SCSI */
 
 /* **** The Kernel Debug Sub Classes for IOKIT (DBG_IOKIT) **** */
 #define DBG_IOSCSI     1       /* SCSI */
@@ -139,6 +151,7 @@ __BEGIN_DECLS
 #define DBG_IOCMDQ     13      /* Command queue latencies */
 #define DBG_IOMCURS    14      /* Memory Cursor */
 #define DBG_IOMDESC    15      /* Memory Descriptors */
 #define DBG_IOCMDQ     13      /* Command queue latencies */
 #define DBG_IOMCURS    14      /* Memory Cursor */
 #define DBG_IOMDESC    15      /* Memory Descriptors */
+#define DBG_IOPOWER    16      /* Power Managerment */
 
 /* **** The Kernel Debug Sub Classes for Device Drivers (DBG_DRIVERS) **** */
 #define DBG_DRVSCSI    1       /* SCSI */
 
 /* **** The Kernel Debug Sub Classes for Device Drivers (DBG_DRIVERS) **** */
 #define DBG_DRVSCSI    1       /* SCSI */
@@ -160,14 +173,29 @@ __BEGIN_DECLS
 
 /* The Kernel Debug Sub Classes for File System */
 #define DBG_FSRW      1       /* reads and writes to the filesystem */
 
 /* The Kernel Debug Sub Classes for File System */
 #define DBG_FSRW      1       /* reads and writes to the filesystem */
+#define DBG_DKRW      2       /* reads and writes to the disk */
+#define DBG_FSVN      3       /* vnode operations (inc. locking/unlocking) */
+#define DBG_FSLOOOKUP 4       /* namei and other lookup-related operations */
 
 /* The Kernel Debug Sub Classes for BSD */
 #define        DBG_BSD_EXCP_SC 0x0C    /* System Calls */
 
 /* The Kernel Debug Sub Classes for BSD */
 #define        DBG_BSD_EXCP_SC 0x0C    /* System Calls */
+#define        DBG_BSD_AIO             0x0D    /* aio (POSIX async IO) */
+#define DBG_BSD_SC_EXTENDED_INFO 0x0E    /* System Calls, extended info */
 
 /* The Kernel Debug Sub Classes for DBG_TRACE */
 #define DBG_TRACE_DATA      0
 #define DBG_TRACE_STRING    1
 
 
 /* The Kernel Debug Sub Classes for DBG_TRACE */
 #define DBG_TRACE_DATA      0
 #define DBG_TRACE_STRING    1
 
+/* The Kernel Debug Sub Classes for DBG_DYLD */
+#define DBG_DYLD_STRING   5
+
+/* The Kernel Debug modifiers for the DBG_DKRW sub class */
+#define DKIO_DONE      0x01
+#define DKIO_READ      0x02
+#define DKIO_ASYNC     0x04
+#define DKIO_META      0x08
+#define DKIO_PAGING    0x10
+
 /**********************************************************************/
 
 #define KDBG_CODE(Class, SubClass, code) (((Class & 0xff) << 24) | ((SubClass & 0xff) << 16) | ((code & 0x3fff)  << 2))
 /**********************************************************************/
 
 #define KDBG_CODE(Class, SubClass, code) (((Class & 0xff) << 24) | ((SubClass & 0xff) << 16) | ((code & 0x3fff)  << 2))
@@ -183,6 +211,8 @@ __BEGIN_DECLS
 #define TRACEDBG_CODE(SubClass,code) KDBG_CODE(DBG_TRACE, SubClass, code)
 #define MISCDBG_CODE(SubClass,code) KDBG_CODE(DBG_MISC, SubClass, code)
 #define DLILDBG_CODE(SubClass,code) KDBG_CODE(DBG_DLIL, SubClass, code)
 #define TRACEDBG_CODE(SubClass,code) KDBG_CODE(DBG_TRACE, SubClass, code)
 #define MISCDBG_CODE(SubClass,code) KDBG_CODE(DBG_MISC, SubClass, code)
 #define DLILDBG_CODE(SubClass,code) KDBG_CODE(DBG_DLIL, SubClass, code)
+#define DYLDDBG_CODE(SubClass,code) KDBG_CODE(DBG_DYLD, SubClass, code)
+#define QTDBG_CODE(SubClass,code) KDBG_CODE(DBG_QT, SubClass, code)
 
 /*   Usage:
 * kernel_debug((KDBG_CODE(DBG_NETWORK, DNET_PROTOCOL, 51) | DBG_FUNC_START), 
 
 /*   Usage:
 * kernel_debug((KDBG_CODE(DBG_NETWORK, DNET_PROTOCOL, 51) | DBG_FUNC_START), 
@@ -212,12 +242,22 @@ __BEGIN_DECLS
 */
 
 extern unsigned int kdebug_enable;
 */
 
 extern unsigned int kdebug_enable;
+#define KDEBUG_ENABLE_TRACE   0x1
+#define KDEBUG_ENABLE_ENTROPY 0x2
+#define KDEBUG_ENABLE_CHUD    0x4
+
 #define KERNEL_DEBUG_CONSTANT(x,a,b,c,d,e)    \
 do {                                   \
     if (kdebug_enable)                 \
         kernel_debug(x,a,b,c,d,e);     \
 } while(0)
 
 #define KERNEL_DEBUG_CONSTANT(x,a,b,c,d,e)    \
 do {                                   \
     if (kdebug_enable)                 \
         kernel_debug(x,a,b,c,d,e);     \
 } while(0)
 
+#define KERNEL_DEBUG_CONSTANT1(x,a,b,c,d,e)    \
+do {                                   \
+    if (kdebug_enable)                 \
+        kernel_debug1(x,a,b,c,d,e);    \
+} while(0)
+
 extern void kernel_debug(unsigned int debugid, unsigned int arg1, unsigned int arg2, unsigned int arg3,  unsigned int arg4, unsigned int arg5);
 
 extern void kernel_debug1(unsigned int debugid, unsigned int arg1, unsigned int arg2, unsigned int arg3,  unsigned int arg4, unsigned int arg5);
 extern void kernel_debug(unsigned int debugid, unsigned int arg1, unsigned int arg2, unsigned int arg3,  unsigned int arg4, unsigned int arg5);
 
 extern void kernel_debug1(unsigned int debugid, unsigned int arg1, unsigned int arg2, unsigned int arg3,  unsigned int arg4, unsigned int arg5);
@@ -243,16 +283,18 @@ do {                                      \
 
 #endif
 
 
 #endif
 
+#endif /* __APPLE_API_UNSTABLE */
 __END_DECLS
 
 
 #ifdef KERNEL_PRIVATE
 __END_DECLS
 
 
 #ifdef KERNEL_PRIVATE
+#ifdef __APPLE_API_PRIVATE
 /*
  * private kernel_debug definitions
  */
 
 typedef struct {
 /*
  * private kernel_debug definitions
  */
 
 typedef struct {
-mach_timespec_t        timestamp;
+uint64_t       timestamp;
 unsigned int   arg1;
 unsigned int   arg2;
 unsigned int   arg3;
 unsigned int   arg1;
 unsigned int   arg2;
 unsigned int   arg3;
@@ -289,6 +331,7 @@ typedef struct
     int nolog;
     int flags;
     int nkdthreads;
     int nolog;
     int flags;
     int nkdthreads;
+    int bufid;
 } kbufinfo_t;
 
 typedef struct
 } kbufinfo_t;
 
 typedef struct
@@ -324,6 +367,7 @@ typedef struct
 #define KDBG_THRMAP     12
 #define KDBG_PIDEX      14
 #define KDBG_SETRTCDEC  15
 #define KDBG_THRMAP     12
 #define KDBG_PIDEX      14
 #define KDBG_SETRTCDEC  15
+#define KDBG_KDGETENTROPY 16
 
 /* Minimum value allowed when setting decrementer ticks */
 #define KDBG_MINRTCDEC  2500
 
 /* Minimum value allowed when setting decrementer ticks */
 #define KDBG_MINRTCDEC  2500
@@ -353,6 +397,7 @@ typedef struct
     unsigned long pcsample_end;
 } pcinfo_t;
 
     unsigned long pcsample_end;
 } pcinfo_t;
 
+#endif /* __APPLE_API_PRIVATE */
 #endif /* KERNEL_PRIVATE */
 
 #endif /* !BSD_SYS_KDEBUG_H */
 #endif /* KERNEL_PRIVATE */
 
 #endif /* !BSD_SYS_KDEBUG_H */