#include "blktrace_api.h"
#define CHECK_MAGIC(t) (((t)->magic & 0xffffff00) == BLK_IO_TRACE_MAGIC)
-#define SUPPORTED_VERSION (0x03)
+#define SUPPORTED_VERSION (0x04)
#if defined(__LITTLE_ENDIAN_BITFIELD)
#define be16_to_cpu(x) __bswap_16(x)
t->bytes = cpu_to_be32(t->bytes);
t->action = cpu_to_be32(t->action);
t->pid = cpu_to_be32(t->pid);
- t->cpu = cpu_to_be16(t->cpu);
+ t->cpu = cpu_to_be32(t->cpu);
t->error = cpu_to_be16(t->error);
t->pdu_len = cpu_to_be16(t->pdu_len);
+ t->device = cpu_to_be32(t->device);
+ /* t->comm is a string (endian neutral) */
}
static inline void trace_to_cpu(struct blk_io_trace *t)
t->bytes = be32_to_cpu(t->bytes);
t->action = be32_to_cpu(t->action);
t->pid = be32_to_cpu(t->pid);
- t->cpu = be16_to_cpu(t->cpu);
+ t->cpu = be32_to_cpu(t->cpu);
t->error = be16_to_cpu(t->error);
t->pdu_len = be16_to_cpu(t->pdu_len);
+ t->device = be32_to_cpu(t->device);
+ /* t->comm is a string (endian neutral) */
}
#endif
#define BLK_TA_COMPLETE (__BLK_TA_COMPLETE| BLK_TC_ACT(BLK_TC_COMPLETE))
#define BLK_IO_TRACE_MAGIC 0x65617400
-#define BLK_IO_TRACE_VERSION 0x03
+#define BLK_IO_TRACE_VERSION 0x04
/*
* The trace itself
__u32 bytes; /* transfer length */
__u32 action; /* what happened */
__u32 pid; /* who did it */
- __u16 cpu; /* on what cpu did it happen */
+ __u32 cpu; /* on what cpu did it happen */
__u16 error; /* completion error */
__u16 pdu_len; /* length of data after this trace */
+ __u32 device; /* device identifier (dev_t) */
+ char comm[16]; /* task command name (TASK_COMM_LEN) */
};
/*