PERFORCE change 134270 for review
John Birrell
jb at FreeBSD.org
Sun Jan 27 17:15:10 PST 2008
http://perforce.freebsd.org/chv.cgi?CH=134270
Change 134270 by jb at jb_freebsd1 on 2008/01/28 01:14:12
IFdtrace
Affected files ...
.. //depot/projects/dtrace7/src/sys/sys/dtrace_bsd.h#2 integrate
.. //depot/projects/dtrace7/src/sys/sys/sdt.h#1 branch
Differences ...
==== //depot/projects/dtrace7/src/sys/sys/dtrace_bsd.h#2 (text+ko) ====
@@ -31,12 +31,60 @@
#ifndef _SYS_DTRACE_BSD_H
#define _SYS_DTRACE_BSD_H
+/* Forward definitions: */
+struct trapframe;
+struct thread;
+
+/*
+ * Cyclic clock function type definition used to hook the cyclic
+ * subsystem into the appropriate timer interrupt.
+ */
+typedef void (*cyclic_clock_func_t)(struct trapframe *);
+
+/*
+ * These external variables are actually machine-dependent, so
+ * they might not actually exist.
+ *
+ * Defining them here avoids a proliferation of header files.
+ */
+extern cyclic_clock_func_t lapic_cyclic_clock_func[];
+
+/*
+ * The dtrace module handles traps that occur during a DTrace probe.
+ * This type definition is used in the trap handler to provide a
+ * hook for the dtrace module to register it's handler with.
+ */
+typedef int (*dtrace_trap_func_t)(struct trapframe *, u_int);
+
+int dtrace_trap(struct trapframe *, u_int);
+
+extern dtrace_trap_func_t dtrace_trap_func;
+
/* Used by the machine dependent trap() code. */
typedef int (*dtrace_invop_func_t)(uintptr_t, uintptr_t *, uintptr_t);
/* Global variable in trap.c */
extern dtrace_invop_func_t dtrace_invop_func;
+/* Virtual time hook function type. */
+typedef void (*dtrace_vtime_switch_func_t)(struct thread *);
+
+extern int dtrace_vtime_active;
+extern dtrace_vtime_switch_func_t dtrace_vtime_switch_func;
+
+/* The fasttrap module hooks into the fork, exit and exit. */
+typedef void (*dtrace_fork_func_t)(struct proc *, struct proc *);
+typedef void (*dtrace_execexit_func_t)(struct proc *);
+
+/* Global variable in kern_fork.c */
+extern dtrace_fork_func_t dtrace_fasttrap_fork;
+
+/* Global variable in kern_exec.c */
+extern dtrace_execexit_func_t dtrace_fasttrap_exec;
+
+/* Global variable in kern_exit.c */
+extern dtrace_execexit_func_t dtrace_fasttrap_exit;
+
/*
* Functions which allow the dtrace module to check that the kernel
* hooks have been compiled with sufficient space for it's private
@@ -45,4 +93,11 @@
size_t kdtrace_proc_size(void);
size_t kdtrace_thread_size(void);
+/*
+ * OpenSolaris compatible time functions returning nanoseconds.
+ * On OpenSolaris these return hrtime_t which we define as uint64_t.
+ */
+uint64_t dtrace_gethrtime(void);
+uint64_t dtrace_gethrestime(void);
+
#endif /* _SYS_DTRACE_BSD_H */
More information about the p4-projects
mailing list