]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/asm-x86/ds.h
Merge branch 'x86/core' into x86/apic
[karo-tx-linux.git] / include / asm-x86 / ds.h
index edd8467740a63b9481de92a3a24ec3ccd441494e..6b27c686fa10f43046cd3fa123a365f408941080 100644 (file)
@@ -17,8 +17,8 @@
  * Markus Metzger <markus.t.metzger@intel.com>, Dec 2007
  */
 
-#ifndef _ASM_X86_DS_H
-#define _ASM_X86_DS_H
+#ifndef ASM_X86__DS_H
+#define ASM_X86__DS_H
 
 #include <linux/types.h>
 #include <linux/init.h>
@@ -39,27 +39,34 @@ enum bts_qualifier {
 };
 
 struct bts_struct {
-       enum bts_qualifier qualifier;
+       u64 qualifier;
        union {
                /* BTS_BRANCH */
                struct {
-                       long from_ip;
-                       long to_ip;
+                       u64 from_ip;
+                       u64 to_ip;
                } lbr;
                /* BTS_TASK_ARRIVES or
                   BTS_TASK_DEPARTS */
-               unsigned long long timestamp;
+               u64 jiffies;
        } variant;
 };
 
+/* Overflow handling mechanisms */
+#define DS_O_SIGNAL    1 /* send overflow signal */
+#define DS_O_WRAP      2 /* wrap around */
 
 extern int ds_allocate(void **, size_t);
 extern int ds_free(void **);
 extern int ds_get_bts_size(void *);
+extern int ds_get_bts_end(void *);
 extern int ds_get_bts_index(void *);
-extern int ds_read_bts(void *, size_t, struct bts_struct *);
+extern int ds_set_overflow(void *, int);
+extern int ds_get_overflow(void *);
+extern int ds_clear(void *);
+extern int ds_read_bts(void *, int, struct bts_struct *);
 extern int ds_write_bts(void *, const struct bts_struct *);
 extern unsigned long ds_debugctl_mask(void);
 extern void __cpuinit ds_init_intel(struct cpuinfo_x86 *c);
 
-#endif /* _ASM_X86_DS_H */
+#endif /* ASM_X86__DS_H */