]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/sys/dtrace.h
xnu-7195.101.1.tar.gz
[apple/xnu.git] / bsd / sys / dtrace.h
index 29540c2a3dd4a59a529f014c3ee6faa9ec1ccefc..b5a0d018de75516efc5a0597bb8bf10642b47498 100644 (file)
@@ -34,8 +34,6 @@
 #ifndef _SYS_DTRACE_H
 #define _SYS_DTRACE_H
 
-/* #pragma ident       "@(#)dtrace.h   1.37    07/06/05 SMI" */
-
 #ifdef  __cplusplus
 extern "C" {
 #endif
@@ -73,12 +71,6 @@ extern "C" {
 #endif
 #endif
 
-#ifdef KERNEL
-#ifndef _KERNEL
-#define _KERNEL /* Solaris vs. Darwin */
-#endif
-#endif
-
 #if defined(__BIG_ENDIAN__)
 #if !defined(_BIG_ENDIAN)
 #define _BIG_ENDIAN /* Solaris vs. Darwin */
@@ -91,6 +83,12 @@ extern "C" {
 #error Unknown endian-ness
 #endif
 
+#ifdef KERNEL
+#ifndef _KERNEL
+#define _KERNEL /* Solaris vs. Darwin */
+#endif
+#endif
+
 #include <sys/types.h>
 #include <sys/param.h>
 #include <stdint.h>
@@ -286,6 +284,7 @@ typedef enum dtrace_probespec {
 #define        DIF_OP_RLDX     77              /* rldx  [r1], rd */
 #define        DIF_OP_XLATE    78              /* xlate xlrindex, rd */
 #define        DIF_OP_XLARG    79              /* xlarg xlrindex, rd */
+#define        DIF_OP_STRIP    80              /* strip r1, key, rd */
 
 #define        DIF_INTOFF_MAX          0xffff  /* highest integer table offset */
 #define        DIF_STROFF_MAX          0xffff  /* highest string table offset */
@@ -304,6 +303,7 @@ typedef enum dtrace_probespec {
 #define        DIF_VAR_ARGS            0x0000  /* arguments array */
 #define        DIF_VAR_REGS            0x0001  /* registers array */
 #define        DIF_VAR_UREGS           0x0002  /* user registers array */
+#define        DIF_VAR_VMREGS          0x0003  /* virtual machine registers array */
 #define        DIF_VAR_CURTHREAD       0x0100  /* thread pointer */
 #define        DIF_VAR_TIMESTAMP       0x0101  /* timestamp */
 #define        DIF_VAR_VTIMESTAMP      0x0102  /* virtual timestamp */
@@ -340,12 +340,13 @@ typedef enum dtrace_probespec {
 #if defined(__APPLE__)
 #define DIF_VAR_PTHREAD_SELF   0x0200  /* Apple specific PTHREAD_SELF (Not currently supported!) */
 #define DIF_VAR_DISPATCHQADDR  0x0201  /* Apple specific dispatch queue addr */
-#define DIF_VAR_MACHTIMESTAMP  0x0202  /* mach_absolute_timestamp() */
+#define DIF_VAR_MACHTIMESTAMP  0x0202  /* mach_absolute_time() */
 #define DIF_VAR_CPU            0x0203  /* cpu number */
 #define DIF_VAR_CPUINSTRS      0x0204  /* cpu instructions */
 #define DIF_VAR_CPUCYCLES      0x0205  /* cpu cycles */
 #define DIF_VAR_VINSTRS                0x0206  /* virtual instructions */
 #define DIF_VAR_VCYCLES                0x0207  /* virtual cycles */
+#define DIF_VAR_MACHCTIMESTAMP 0x0208  /* mach_continuous_time() */
 #endif /* __APPLE __ */
 
 #define        DIF_SUBR_RAND                   0
@@ -394,7 +395,10 @@ typedef enum dtrace_probespec {
 #define        DIF_SUBR_INET_NTOA6             43
 #define        DIF_SUBR_TOUPPER                44
 #define        DIF_SUBR_TOLOWER                45
-#define DIF_SUBR_MAX                   46      /* max subroutine value */
+#define DIF_SUBR_JSON                  46
+#define DIF_SUBR_STRTOLL               47
+#define DIF_SUBR_STRIP                 48
+#define DIF_SUBR_MAX                   48      /* max subroutine value */
 
 /* Apple-specific subroutines */
 #if defined(__APPLE__)
@@ -402,7 +406,11 @@ typedef enum dtrace_probespec {
 #define DIF_SUBR_VM_KERNEL_ADDRPERM    200
 #define DIF_SUBR_KDEBUG_TRACE          201
 #define DIF_SUBR_KDEBUG_TRACE_STRING   202
-#define DIF_SUBR_APPLE_MAX             202      /* max apple-specific subroutine value */
+#define DIF_SUBR_MTONS                 203
+#define DIF_SUBR_PHYSMEM_READ          204
+#define DIF_SUBR_PHYSMEM_WRITE         205
+#define DIF_SUBR_KVTOPHYS              206
+#define DIF_SUBR_APPLE_MAX             206      /* max apple-specific subroutine value */
 #endif /* __APPLE__ */
 
 typedef uint32_t dif_instr_t;
@@ -412,6 +420,7 @@ typedef uint32_t dif_instr_t;
 #define DIF_INSTR_R2(i)                 (((i) >>  8) & 0xff)
 #define DIF_INSTR_RD(i)                 ((i) & 0xff)
 #define DIF_INSTR_RS(i)                 ((i) & 0xff)
+#define DIF_INSTR_IMM2(i)               (((i) >>  8) & 0xff)
 #define DIF_INSTR_LABEL(i)              ((i) & 0xffffff)
 #define DIF_INSTR_VAR(i)                (((i) >>  8) & 0xffff)
 #define DIF_INSTR_INTEGER(i)            (((i) >>  8) & 0xffff)
@@ -1457,6 +1466,7 @@ typedef struct dtrace_module_symbols {
 } dtrace_module_symbols_t;
 
 #define DTRACE_MODULE_SYMBOLS_SIZE(count) (sizeof(dtrace_module_symbols_t) + ((count - 1) * sizeof(dtrace_symbol_t)))
+#define DTRACE_MODULE_SYMBOLS_COUNT(size) ((size - sizeof(dtrace_module_symbols_t)) / sizeof(dtrace_symbol_t) + 1)
 
 typedef struct dtrace_module_uuids_list {
        uint64_t        dtmul_count;
@@ -2558,25 +2568,6 @@ extern void dtrace_sync(void);
 extern void dtrace_toxic_ranges(void (*)(uintptr_t, uintptr_t));
 extern void dtrace_xcall(processorid_t, dtrace_xcall_t, void *);
 
-extern int dtrace_safe_defer_signal(void);
-extern void dtrace_safe_synchronous_signal(void);
-
-extern int dtrace_mach_aframes(void);
-
-#if !defined(__APPLE__)
-#if defined(__i386) || defined(__amd64)
-extern int dtrace_instr_size(uchar_t *instr);
-extern int dtrace_instr_size_isa(uchar_t *, model_t, int *);
-extern void dtrace_invop_add(int (*)(uintptr_t, uintptr_t *, uintptr_t));
-extern void dtrace_invop_remove(int (*)(uintptr_t, uintptr_t *, uintptr_t));
-extern void dtrace_invop_callsite(void);
-#endif
-
-#ifdef __sparc
-extern int dtrace_blksuword32(uintptr_t, uint32_t *, int);
-extern void dtrace_getfsr(uint64_t *);
-#endif
-#else
 #if defined(__i386__) || defined(__x86_64__)
 extern int dtrace_instr_size(uchar_t *instr);
 extern int dtrace_instr_size_isa(uchar_t *, model_t, int *);
@@ -2586,16 +2577,17 @@ extern void *dtrace_invop_callsite_pre;
 extern void *dtrace_invop_callsite_post;
 #endif
 
-#if defined(__arm__) || defined(__arm64__)
+#if defined(__arm__)
 extern int dtrace_instr_size(uint32_t instr, int thumb_mode);
+#endif
+#if defined(__arm__) || defined(__arm64__)
 extern void dtrace_invop_add(int (*)(uintptr_t, uintptr_t *, uintptr_t));    
 extern void dtrace_invop_remove(int (*)(uintptr_t, uintptr_t *, uintptr_t));
 extern void *dtrace_invop_callsite_pre;
 extern void *dtrace_invop_callsite_post;
 #endif
-    
+
 #undef proc_t
-#endif /* __APPLE__ */
 
 #define DTRACE_CPUFLAG_ISSET(flag) \
         (cpu_core[CPU->cpu_id].cpuc_dtrace_flags & (flag))
@@ -2610,17 +2602,6 @@ extern void *dtrace_invop_callsite_post;
 
 #endif  /* _ASM */
 
-#if !defined(__APPLE__)
-#if defined(__i386) || defined(__amd64)
-
-#define        DTRACE_INVOP_PUSHL_EBP          1
-#define        DTRACE_INVOP_POPL_EBP           2
-#define        DTRACE_INVOP_LEAVE              3
-#define        DTRACE_INVOP_NOP                4
-#define        DTRACE_INVOP_RET                5
-
-#endif
-#else
 #if defined(__i386__) || defined(__x86_64__)
 
 #define DTRACE_INVOP_PUSHL_EBP          1
@@ -2639,8 +2620,6 @@ extern void *dtrace_invop_callsite_post;
 
 #endif
 
-#endif /* __APPLE__ */
-
 #ifdef  __cplusplus
 }
 #endif