#define PTRACE_SINGLEBLOCK 33 /* resume execution until next branch */
+#ifndef __ASSEMBLY__
+
+#include <asm/types.h>
+
/* configuration/status structure used in PTRACE_BTS_CONFIG and
PTRACE_BTS_STATUS commands.
*/
struct ptrace_bts_config {
/* requested or actual size of BTS buffer in bytes */
- unsigned int size;
+ u32 size;
/* bitmask of below flags */
- unsigned int flags;
+ u32 flags;
+ /* buffer overflow signal */
+ u32 signal;
+ /* actual size of bts_struct in bytes */
+ u32 bts_size;
};
+#endif
#define PTRACE_BTS_O_TRACE 0x1 /* branch trace */
#define PTRACE_BTS_O_SCHED 0x2 /* scheduling events w/ jiffies */
-#define PTRACE_BTS_O_SIGNAL 0x4 /* send SIG? on buffer overflow
+#define PTRACE_BTS_O_SIGNAL 0x4 /* send SIG<signal> on buffer overflow
instead of wrapping around */
#define PTRACE_BTS_O_CUT_SIZE 0x8 /* cut requested size to max available
instead of failing */
#define PTRACE_BTS_CONFIG 40
/* Configure branch trace recording.
- DATA is ignored, ADDR points to a struct ptrace_bts_config.
+ ADDR points to a struct ptrace_bts_config.
+ DATA gives the size of that buffer.
A new buffer is allocated, iff the size changes.
+ Returns the number of bytes read.
*/
#define PTRACE_BTS_STATUS 41
-/* Return the current configuration.
- DATA is ignored, ADDR points to a struct ptrace_bts_config
- that will contain the result.
+/* Return the current configuration in a struct ptrace_bts_config
+ pointed to by ADDR; DATA gives the size of that buffer.
+ Returns the number of bytes written.
*/
#define PTRACE_BTS_SIZE 42
/* Return the number of available BTS records.
*/
#define PTRACE_BTS_DRAIN 45
/* Read all available BTS records and clear the buffer.
- DATA is ignored. ADDR points to an array of struct bts_struct of
- suitable size.
+ ADDR points to an array of struct bts_struct.
+ DATA gives the size of that buffer.
BTS records are read from oldest to newest.
Returns number of BTS records drained.
*/