Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0ddffa8 authored by Sven Schuetz's avatar Sven Schuetz Committed by Jens Axboe
Browse files

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: default avatarSven Schuetz <sven@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Peschke <mp3@de.ibm.com>
Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent e3ba9ae5
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -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
+32 −26
Original line number Original line Diff line number Diff line
#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 {
 * 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 {
	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 {
	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 *);