fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / linux / blktrace_api.h
index b34d3e7..3680ff9 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef BLKTRACE_H
 #define BLKTRACE_H
 
-#include <linux/config.h>
 #include <linux/blkdev.h>
 #include <linux/relay.h>
 
@@ -12,7 +11,7 @@ enum blktrace_cat {
        BLK_TC_READ     = 1 << 0,       /* reads */
        BLK_TC_WRITE    = 1 << 1,       /* writes */
        BLK_TC_BARRIER  = 1 << 2,       /* barrier */
-       BLK_TC_SYNC     = 1 << 3,       /* barrier */
+       BLK_TC_SYNC     = 1 << 3,       /* sync IO */
        BLK_TC_QUEUE    = 1 << 4,       /* queueing/merging */
        BLK_TC_REQUEUE  = 1 << 5,       /* requeueing */
        BLK_TC_ISSUE    = 1 << 6,       /* issue */
@@ -20,6 +19,8 @@ enum blktrace_cat {
        BLK_TC_FS       = 1 << 8,       /* fs requests */
        BLK_TC_PC       = 1 << 9,       /* pc requests */
        BLK_TC_NOTIFY   = 1 << 10,      /* special message */
+       BLK_TC_AHEAD    = 1 << 11,      /* readahead */
+       BLK_TC_META     = 1 << 12,      /* metadata */
 
        BLK_TC_END      = 1 << 15,      /* only 16-bits, reminder */
 };
@@ -48,6 +49,15 @@ enum blktrace_act {
        __BLK_TA_REMAP,                 /* bio was remapped */
 };
 
+/*
+ * Notify events.
+ */
+enum blktrace_notify {
+       __BLK_TN_PROCESS = 0,           /* establish pid/name mapping */
+       __BLK_TN_TIMESTAMP,             /* include system clock */
+};
+
+
 /*
  * Trace actions in full. Additionally, read or write is masked
  */
@@ -67,6 +77,9 @@ enum blktrace_act {
 #define BLK_TA_BOUNCE          (__BLK_TA_BOUNCE)
 #define BLK_TA_REMAP           (__BLK_TA_REMAP | BLK_TC_ACT(BLK_TC_QUEUE))
 
+#define BLK_TN_PROCESS         (__BLK_TN_PROCESS | BLK_TC_ACT(BLK_TC_NOTIFY))
+#define BLK_TN_TIMESTAMP       (__BLK_TN_TIMESTAMP | BLK_TC_ACT(BLK_TC_NOTIFY))
+
 #define BLK_IO_TRACE_MAGIC     0x65617400
 #define BLK_IO_TRACE_VERSION   0x07
 
@@ -91,9 +104,9 @@ struct blk_io_trace {
  * The remap event
  */
 struct blk_io_trace_remap {
-       u32 device;
+       __be32 device;
        u32 __pad;
-       u64 sector;
+       __be64 sector;
 };
 
 enum {
@@ -148,7 +161,7 @@ static inline void blk_add_trace_rq(struct request_queue *q, struct request *rq,
                                    u32 what)
 {
        struct blk_trace *bt = q->blk_trace;
-       int rw = rq->flags & 0x07;
+       int rw = rq->cmd_flags & 0x03;
 
        if (likely(!bt))
                return;
@@ -225,7 +238,7 @@ static inline void blk_add_trace_pdu_int(struct request_queue *q, u32 what,
                                         struct bio *bio, unsigned int pdu)
 {
        struct blk_trace *bt = q->blk_trace;
-       u64 rpdu = cpu_to_be64(pdu);
+       __be64 rpdu = cpu_to_be64(pdu);
 
        if (likely(!bt))
                return;