diff options
author | Markus Metzger <markus.t.metzger@intel.com> | 2008-01-30 07:31:20 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:31:20 -0500 |
commit | a95d67f87e1a5f1b4429be3ba3bf7b4051657908 (patch) | |
tree | 4a67994b901c5dfbf3c2ee752efd53dbce938c36 /include/asm-x86/ds.h | |
parent | e4811f2568c55e595a7bf15a3b9aba863b31fb94 (diff) |
x86, ptrace: new ptrace BTS API
Here's the new ptrace BTS API that supports two different overflow handling mechanisms (wrap-around and buffer-full-signal) to support two different use cases (debugging and profiling).
It further combines buffer allocation and configuration.
Opens:
- memory rlimit
- overflow signal
What would be the right signal to use?
Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/asm-x86/ds.h')
-rw-r--r-- | include/asm-x86/ds.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/asm-x86/ds.h b/include/asm-x86/ds.h index c9e15381dc7..b84040abee6 100644 --- a/include/asm-x86/ds.h +++ b/include/asm-x86/ds.h | |||
@@ -52,11 +52,18 @@ struct bts_struct { | |||
52 | } variant; | 52 | } variant; |
53 | }; | 53 | }; |
54 | 54 | ||
55 | /* Overflow handling mechanisms */ | ||
56 | #define DS_O_SIGNAL 1 /* send overflow signal */ | ||
57 | #define DS_O_WRAP 2 /* wrap around */ | ||
55 | 58 | ||
56 | extern int ds_allocate(void **, size_t); | 59 | extern int ds_allocate(void **, size_t); |
57 | extern int ds_free(void **); | 60 | extern int ds_free(void **); |
58 | extern int ds_get_bts_size(void *); | 61 | extern int ds_get_bts_size(void *); |
62 | extern int ds_get_bts_end(void *); | ||
59 | extern int ds_get_bts_index(void *); | 63 | extern int ds_get_bts_index(void *); |
64 | extern int ds_set_overflow(void *, int); | ||
65 | extern int ds_get_overflow(void *); | ||
66 | extern int ds_clear(void *); | ||
60 | extern int ds_read_bts(void *, size_t, struct bts_struct *); | 67 | extern int ds_read_bts(void *, size_t, struct bts_struct *); |
61 | extern int ds_write_bts(void *, const struct bts_struct *); | 68 | extern int ds_write_bts(void *, const struct bts_struct *); |
62 | extern unsigned long ds_debugctl_mask(void); | 69 | extern unsigned long ds_debugctl_mask(void); |