summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrpaulo <rpaulo@FreeBSD.org>2010-08-22 11:04:43 +0000
committerrpaulo <rpaulo@FreeBSD.org>2010-08-22 11:04:43 +0000
commited2c978b97cc24c25bfb908744f42b613c2915cd (patch)
tree8cb3949b004d7c6441737bf3f87051f563ff8110
parenta0dc7e84cff2c39510d98dd9a1fadfc44052b0a7 (diff)
downloadFreeBSD-src-ed2c978b97cc24c25bfb908744f42b613c2915cd.zip
FreeBSD-src-ed2c978b97cc24c25bfb908744f42b613c2915cd.tar.gz
Add more compatibility structure members needed by the upcoming fasttrap
DTrace device. Sponsored by: The FreeBSD Foundation
-rw-r--r--sys/cddl/dev/dtrace/dtrace_cddl.h36
1 files changed, 33 insertions, 3 deletions
diff --git a/sys/cddl/dev/dtrace/dtrace_cddl.h b/sys/cddl/dev/dtrace/dtrace_cddl.h
index 75fe864..d2adfbc 100644
--- a/sys/cddl/dev/dtrace/dtrace_cddl.h
+++ b/sys/cddl/dev/dtrace/dtrace_cddl.h
@@ -36,6 +36,7 @@ typedef struct kdtrace_proc {
int p_dtrace_probes; /* Are there probes for this proc? */
u_int64_t p_dtrace_count; /* Number of DTrace tracepoints */
void *p_dtrace_helpers; /* DTrace helpers, if any */
+ int p_dtrace_model;
} kdtrace_proc_t;
@@ -59,6 +60,9 @@ typedef struct kdtrace_thread {
/* Handling a return probe. */
u_int8_t _td_dtrace_ast;
/* Saved ast flag. */
+#ifdef __amd64__
+ u_int8_t _td_dtrace_reg;
+#endif
} _tds;
u_long _td_dtrace_ft; /* Bitwise or of these flags. */
} _tdu;
@@ -67,6 +71,7 @@ typedef struct kdtrace_thread {
#define td_dtrace_step _tdu._tds._td_dtrace_step
#define td_dtrace_ret _tdu._tds._td_dtrace_ret
#define td_dtrace_ast _tdu._tds._td_dtrace_ast
+#define td_dtrace_reg _tdu._tds._td_dtrace_reg
uintptr_t td_dtrace_pc; /* DTrace saved pc from fasttrap. */
uintptr_t td_dtrace_npc; /* DTrace next pc from fasttrap. */
@@ -74,6 +79,9 @@ typedef struct kdtrace_thread {
/* DTrace per-thread scratch location. */
uintptr_t td_dtrace_astpc;
/* DTrace return sequence location. */
+#ifdef __amd64__
+ uintptr_t td_dtrace_regv;
+#endif
u_int64_t td_hrtime; /* Last time on cpu. */
int td_errno; /* Syscall return value. */
} kdtrace_thread_t;
@@ -89,16 +97,38 @@ typedef struct kdtrace_thread {
#define t_dtrace_stop td_dtrace->td_dtrace_stop
#define t_dtrace_sig td_dtrace->td_dtrace_sig
#define t_predcache td_dtrace->td_predcache
-#define p_dtrace_helpers p_dtrace->p_dtrace_helpers
+#define t_dtrace_ft td_dtrace->td_dtrace_ft
+#define t_dtrace_on td_dtrace->td_dtrace_on
+#define t_dtrace_step td_dtrace->td_dtrace_step
+#define t_dtrace_ret td_dtrace->td_dtrace_ret
+#define t_dtrace_ast td_dtrace->td_dtrace_ast
+#define t_dtrace_reg td_dtrace->td_dtrace_reg
+#define t_dtrace_pc td_dtrace->td_dtrace_pc
+#define t_dtrace_npc td_dtrace->td_dtrace_npc
+#define t_dtrace_scrpc td_dtrace->td_dtrace_scrpc
+#define t_dtrace_astpc td_dtrace->td_dtrace_astpc
+#define t_dtrace_regv td_dtrace->td_dtrace_regv
+#define p_dtrace_helpers p_dtrace->p_dtrace_helpers
+#define p_dtrace_count p_dtrace->p_dtrace_count
+#define p_dtrace_probes p_dtrace->p_dtrace_probes
+#define p_model p_dtrace->p_dtrace_model
+#define DATAMODEL_NATIVE 0
+#ifdef __amd64__
+#define DATAMODEL_LP64 0
+#define DATAMODEL_ILP32 1
+#else
+#define DATAMODEL_LP64 1
+#define DATAMODEL_ILP32 0
+#endif
/*
- * Definitions for fields in struct proc which are named differntly in FreeBSD.
+ * Definitions for fields in struct proc which are named differently in FreeBSD.
*/
#define p_cred p_ucred
#define p_parent p_pptr
/*
- * Definitions for fields in struct thread which are named differntly in FreeBSD.
+ * Definitions for fields in struct thread which are named differently in FreeBSD.
*/
#define t_procp td_proc
#define t_tid td_tid
OpenPOWER on IntegriCloud