+++ /dev/null
-From: Gerald Schaefer <geraldsc@de.ibm.com>
-Subject: (kernel):FCP - Performance Data colletion & analysis
-References: bnc#417243
-
-This header file is of interest for user space programming, i.e.
-for tools that process blktrace data.
-
-We would like to use it for a tool on-top of blktrace which processes
-data provided by blktrace. For this purpose, it would be helpful
-if the blktrace API would make it to /usr/include/linux.
-
-The git tree for the blktrace tools comes with its own copy of this header
-file. I didn't manage to replace that copy with the file generated
-by the patch below yet. A few more cleanups would be needed.
-For example, the blktrace ioctl numbers, which are currently defined in
-usr/include/fs.h, might need to be moved. Should be feasible, though.
-
-
-Signed-off-by: Sven Schuetz <sven@linux.vnet.ibm.com>
-Signed-off-by: Martin Peschke <mp3@de.ibm.com>
-
-Acked-by: John Jolly <jjolly@suse.de>
-
----
- include/linux/Kbuild | 1
- include/linux/blktrace_api.h | 58 +++++++++++++++++++++++--------------------
- 2 files changed, 33 insertions(+), 26 deletions(-)
-
---- a/include/linux/blktrace_api.h
-+++ b/include/linux/blktrace_api.h
-@@ -1,8 +1,10 @@
- #ifndef BLKTRACE_H
- #define BLKTRACE_H
-
-+#ifdef __KERNEL__
- #include <linux/blkdev.h>
- #include <linux/relay.h>
-+#endif
-
- /*
- * Trace categories
-@@ -89,17 +91,17 @@ enum blktrace_notify {
- * The trace itself
- */
- struct blk_io_trace {
-- u32 magic; /* MAGIC << 8 | version */
-- u32 sequence; /* event number */
-- u64 time; /* in microseconds */
-- u64 sector; /* disk offset */
-- u32 bytes; /* transfer length */
-- u32 action; /* what happened */
-- u32 pid; /* who did it */
-- u32 device; /* device number */
-- u32 cpu; /* on what cpu did it happen */
-- u16 error; /* completion error */
-- u16 pdu_len; /* length of data after this trace */
-+ __u32 magic; /* MAGIC << 8 | version */
-+ __u32 sequence; /* event number */
-+ __u64 time; /* in microseconds */
-+ __u64 sector; /* disk offset */
-+ __u32 bytes; /* transfer length */
-+ __u32 action; /* what happened */
-+ __u32 pid; /* who did it */
-+ __u32 device; /* device number */
-+ __u32 cpu; /* on what cpu did it happen */
-+ __u16 error; /* completion error */
-+ __u16 pdu_len; /* length of data after this trace */
- };
-
- /*
-@@ -117,6 +119,25 @@ enum {
- Blktrace_stopped,
- };
-
-+/*
-+ * User setup structure passed with BLKTRACESTART
-+ */
-+struct blk_user_trace_setup {
-+#ifdef __KERNEL__
-+ char name[BDEVNAME_SIZE]; /* output */
-+#else
-+ char name[32]; /* output */
-+#endif
-+ __u16 act_mask; /* input */
-+ __u32 buf_size; /* input */
-+ __u32 buf_nr; /* input */
-+ __u64 start_lba;
-+ __u64 end_lba;
-+ __u32 pid;
-+};
-+
-+#ifdef __KERNEL__
-+#if defined(CONFIG_BLK_DEV_IO_TRACE)
- struct blk_trace {
- int trace_state;
- struct rchan *rchan;
-@@ -133,21 +154,6 @@ struct blk_trace {
- atomic_t dropped;
- };
-
--/*
-- * User setup structure passed with BLKTRACESTART
-- */
--struct blk_user_trace_setup {
-- char name[BDEVNAME_SIZE]; /* output */
-- u16 act_mask; /* input */
-- u32 buf_size; /* input */
-- u32 buf_nr; /* input */
-- u64 start_lba;
-- u64 end_lba;
-- u32 pid;
--};
--
--#ifdef __KERNEL__
--#if defined(CONFIG_BLK_DEV_IO_TRACE)
- extern int blk_trace_ioctl(struct block_device *, unsigned, char __user *);
- extern void blk_trace_shutdown(struct request_queue *);
- extern void __blk_add_trace(struct blk_trace *, sector_t, int, int, u32, int, int, void *);
---- a/include/linux/Kbuild
-+++ b/include/linux/Kbuild
-@@ -181,6 +181,7 @@ unifdef-y += audit.h
- unifdef-y += auto_fs.h
- unifdef-y += auxvec.h
- unifdef-y += binfmts.h
-+unifdef-y += blktrace_api.h
- unifdef-y += capability.h
- unifdef-y += capi.h
- unifdef-y += cciss_ioctl.h