From: Eugene Syromyatnikov Date: Sun, 13 Nov 2016 16:00:27 +0000 (+0300) Subject: block: add some definitions from X-Git-Tag: v4.15~103 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1d82c0f8c03fe4ba7a1ec6d40519ad07cd61091b;p=strace block: add some definitions from 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 instead of . (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 . --- diff --git a/block.c b/block.c index 3c007464..6dd62d68 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 +#include #include +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