提交 c0ddffa8 编写于 作者: S Sven Schuetz 提交者: Jens Axboe

include blktrace_api.h in headers_install

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: NSven Schuetz <sven@linux.vnet.ibm.com>
Signed-off-by: NMartin Peschke <mp3@de.ibm.com>
Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
上级 e3ba9ae5
...@@ -180,6 +180,7 @@ unifdef-y += audit.h ...@@ -180,6 +180,7 @@ unifdef-y += audit.h
unifdef-y += auto_fs.h unifdef-y += auto_fs.h
unifdef-y += auxvec.h unifdef-y += auxvec.h
unifdef-y += binfmts.h unifdef-y += binfmts.h
unifdef-y += blktrace_api.h
unifdef-y += capability.h unifdef-y += capability.h
unifdef-y += capi.h unifdef-y += capi.h
unifdef-y += cciss_ioctl.h unifdef-y += cciss_ioctl.h
......
#ifndef BLKTRACE_H #ifndef BLKTRACE_H
#define BLKTRACE_H #define BLKTRACE_H
#ifdef __KERNEL__
#include <linux/blkdev.h> #include <linux/blkdev.h>
#include <linux/relay.h> #include <linux/relay.h>
#endif
/* /*
* Trace categories * Trace categories
...@@ -92,17 +94,17 @@ enum blktrace_notify { ...@@ -92,17 +94,17 @@ enum blktrace_notify {
* The trace itself * The trace itself
*/ */
struct blk_io_trace { struct blk_io_trace {
u32 magic; /* MAGIC << 8 | version */ __u32 magic; /* MAGIC << 8 | version */
u32 sequence; /* event number */ __u32 sequence; /* event number */
u64 time; /* in microseconds */ __u64 time; /* in microseconds */
u64 sector; /* disk offset */ __u64 sector; /* disk offset */
u32 bytes; /* transfer length */ __u32 bytes; /* transfer length */
u32 action; /* what happened */ __u32 action; /* what happened */
u32 pid; /* who did it */ __u32 pid; /* who did it */
u32 device; /* device number */ __u32 device; /* device number */
u32 cpu; /* on what cpu did it happen */ __u32 cpu; /* on what cpu did it happen */
u16 error; /* completion error */ __u16 error; /* completion error */
u16 pdu_len; /* length of data after this trace */ __u16 pdu_len; /* length of data after this trace */
}; };
/* /*
...@@ -120,6 +122,25 @@ enum { ...@@ -120,6 +122,25 @@ enum {
Blktrace_stopped, 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 { struct blk_trace {
int trace_state; int trace_state;
struct rchan *rchan; struct rchan *rchan;
...@@ -136,21 +157,6 @@ struct blk_trace { ...@@ -136,21 +157,6 @@ struct blk_trace {
atomic_t dropped; 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 int blk_trace_ioctl(struct block_device *, unsigned, char __user *);
extern void blk_trace_shutdown(struct request_queue *); extern void blk_trace_shutdown(struct request_queue *);
extern void __blk_add_trace(struct blk_trace *, sector_t, int, int, u32, int, int, void *); extern void __blk_add_trace(struct blk_trace *, sector_t, int, int, u32, int, int, void *);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册