summaryrefslogtreecommitdiff
path: root/block.c
diff options
context:
space:
mode:
authorEugene Syromyatnikov <evgsyr@gmail.com>2016-11-13 19:00:27 +0300
committerDmitry V. Levin <ldv@altlinux.org>2016-11-20 10:41:07 +0000
commit1d82c0f8c03fe4ba7a1ec6d40519ad07cd61091b (patch)
tree590e7687ee87eb9d34bef64d95aa2e4388275e5d /block.c
parent2c9464c5a39154d7348a0b65c49229b785c5837b (diff)
downloadstrace-1d82c0f8c03fe4ba7a1ec6d40519ad07cd61091b.tar.gz
block: add some definitions from <linux/blkpg.h>
This is done in order to fix build error on old distributions where struct blkpg_ioctl_arg declaration is broken: In file included from block.c:35: /usr/include/linux/blkpg.h:36: error: expected ':', ',', ';', '}' or '__attribute__' before '*' token block.c: In function 'print_blkpg_req': block.c:113: error: 'struct_blkpg_ioctl_arg' has no member named 'data' (from SLE10) * block.c: Include <linux/ioctl.h> instead of <linux/blkpg.h>. (BLKPG, BLKPG_DEVNAMELTH, BLKPG_VOLNAMELTH): New macros. (struct_blkpg_ioctl_arg, struct_blkpg_partition): New definitions, copied from blkpg_ioctl_arg and blkpg_partition structures defined in <linux/blkpg.h>.
Diffstat (limited to 'block.c')
-rw-r--r--block.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/block.c b/block.c
index 3c007464e..6dd62d68d 100644
--- a/block.c
+++ b/block.c
@@ -32,9 +32,27 @@
#include DEF_MPERS_TYPE(struct_blkpg_ioctl_arg)
#include DEF_MPERS_TYPE(struct_blkpg_partition)
-#include <linux/blkpg.h>
+#include <linux/ioctl.h>
#include <linux/fs.h>
+typedef struct {
+ int op;
+ int flags;
+ int datalen;
+ void *data;
+} struct_blkpg_ioctl_arg;
+
+#define BLKPG_DEVNAMELTH 64
+#define BLKPG_VOLNAMELTH 64
+typedef struct {
+ long long start; /* starting offset in bytes */
+ long long length; /* length in bytes */
+ int pno; /* partition number */
+ char devname[BLKPG_DEVNAMELTH]; /* partition name, like sda5 or c0d1p2,
+ to be used in kernel messages */
+ char volname[BLKPG_VOLNAMELTH]; /* volume label */
+} struct_blkpg_partition;
+
#define BLKTRACE_BDEV_SIZE 32
typedef struct blk_user_trace_setup {
char name[BLKTRACE_BDEV_SIZE]; /* output */
@@ -46,11 +64,12 @@ typedef struct blk_user_trace_setup {
uint32_t pid;
} struct_blk_user_trace_setup;
-typedef struct blkpg_ioctl_arg struct_blkpg_ioctl_arg;
-typedef struct blkpg_partition struct_blkpg_partition;
-
#include MPERS_DEFS
+#ifndef BLKPG
+# define BLKPG _IO(0x12,105)
+#endif
+
/*
* ioctl numbers <= 114 are present in Linux 2.4. The following ones have been
* added since then and headers containing them may not be available on every