27 #include <sys/cdefs.h>
32 #include <sys/param.h>
33 #include <sys/systm.h>
34 #include <sys/eventhandler.h>
36 #include <sys/kernel.h>
37 #include <sys/malloc.h>
39 #include <sys/dtrace_bsd.h>
40 #include <sys/sysctl.h>
42 #define KDTRACE_PROC_SIZE 64
43 #define KDTRACE_THREAD_SIZE 256
46 "Kernel DTrace hooks which are required to load DTrace kernel modules");
69 if (p->p_dtrace != NULL) {
70 free(p->p_dtrace, M_KDTRACE);
94 if (td->td_dtrace != NULL) {
95 free(td->td_dtrace, M_KDTRACE);
108 EVENTHANDLER_PRI_ANY);
110 EVENTHANDLER_PRI_ANY);
112 EVENTHANDLER_PRI_ANY);
114 EVENTHANDLER_PRI_ANY);
static void thread_dtor(void *mem, int size, void *arg)
void * malloc(unsigned long size, struct malloc_type *mtp, int flags)
static void init_dtrace(void *dummy __unused)
static MALLOC_DEFINE(M_KDTRACE,"kdtrace","DTrace hooks")
static void kdtrace_thread_ctor(void *arg __unused, struct thread *td)
SYSINIT(kdtrace, SI_SUB_KDTRACE, SI_ORDER_FIRST, init_dtrace, NULL)
static void kdtrace_proc_dtor(void *arg __unused, struct proc *p)
#define KDTRACE_PROC_SIZE
static int thread_ctor(void *mem, int size, void *arg, int flags)
#define KDTRACE_THREAD_SIZE
void free(void *addr, struct malloc_type *mtp)
static void kdtrace_thread_dtor(void *arg __unused, struct thread *td)
size_t kdtrace_thread_size()
FEATURE(kdtrace_hooks,"Kernel DTrace hooks which are required to load DTrace kernel modules")
size_t kdtrace_proc_size()
static void kdtrace_proc_ctor(void *arg __unused, struct proc *p)