xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/blktrace_api.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPIBLKTRACE_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPIBLKTRACE_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
10*8d67ca89SAndroid Build Coastguard Worker enum blktrace_cat {
11*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_READ = 1 << 0,
12*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_WRITE = 1 << 1,
13*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_FLUSH = 1 << 2,
14*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_SYNC = 1 << 3,
15*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_SYNCIO = BLK_TC_SYNC,
16*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_QUEUE = 1 << 4,
17*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_REQUEUE = 1 << 5,
18*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_ISSUE = 1 << 6,
19*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_COMPLETE = 1 << 7,
20*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_FS = 1 << 8,
21*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_PC = 1 << 9,
22*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_NOTIFY = 1 << 10,
23*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_AHEAD = 1 << 11,
24*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_META = 1 << 12,
25*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_DISCARD = 1 << 13,
26*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_DRV_DATA = 1 << 14,
27*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_FUA = 1 << 15,
28*8d67ca89SAndroid Build Coastguard Worker   BLK_TC_END = 1 << 15,
29*8d67ca89SAndroid Build Coastguard Worker };
30*8d67ca89SAndroid Build Coastguard Worker #define BLK_TC_SHIFT (16)
31*8d67ca89SAndroid Build Coastguard Worker #define BLK_TC_ACT(act) ((act) << BLK_TC_SHIFT)
32*8d67ca89SAndroid Build Coastguard Worker enum blktrace_act {
33*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_QUEUE = 1,
34*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_BACKMERGE,
35*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_FRONTMERGE,
36*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_GETRQ,
37*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_SLEEPRQ,
38*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_REQUEUE,
39*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_ISSUE,
40*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_COMPLETE,
41*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_PLUG,
42*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_UNPLUG_IO,
43*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_UNPLUG_TIMER,
44*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_INSERT,
45*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_SPLIT,
46*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_BOUNCE,
47*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_REMAP,
48*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_ABORT,
49*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_DRV_DATA,
50*8d67ca89SAndroid Build Coastguard Worker   __BLK_TA_CGROUP = 1 << 8,
51*8d67ca89SAndroid Build Coastguard Worker };
52*8d67ca89SAndroid Build Coastguard Worker enum blktrace_notify {
53*8d67ca89SAndroid Build Coastguard Worker   __BLK_TN_PROCESS = 0,
54*8d67ca89SAndroid Build Coastguard Worker   __BLK_TN_TIMESTAMP,
55*8d67ca89SAndroid Build Coastguard Worker   __BLK_TN_MESSAGE,
56*8d67ca89SAndroid Build Coastguard Worker   __BLK_TN_CGROUP = __BLK_TA_CGROUP,
57*8d67ca89SAndroid Build Coastguard Worker };
58*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_QUEUE (__BLK_TA_QUEUE | BLK_TC_ACT(BLK_TC_QUEUE))
59*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_BACKMERGE (__BLK_TA_BACKMERGE | BLK_TC_ACT(BLK_TC_QUEUE))
60*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_FRONTMERGE (__BLK_TA_FRONTMERGE | BLK_TC_ACT(BLK_TC_QUEUE))
61*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_GETRQ (__BLK_TA_GETRQ | BLK_TC_ACT(BLK_TC_QUEUE))
62*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_SLEEPRQ (__BLK_TA_SLEEPRQ | BLK_TC_ACT(BLK_TC_QUEUE))
63*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_REQUEUE (__BLK_TA_REQUEUE | BLK_TC_ACT(BLK_TC_REQUEUE))
64*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_ISSUE (__BLK_TA_ISSUE | BLK_TC_ACT(BLK_TC_ISSUE))
65*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_COMPLETE (__BLK_TA_COMPLETE | BLK_TC_ACT(BLK_TC_COMPLETE))
66*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_PLUG (__BLK_TA_PLUG | BLK_TC_ACT(BLK_TC_QUEUE))
67*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_UNPLUG_IO (__BLK_TA_UNPLUG_IO | BLK_TC_ACT(BLK_TC_QUEUE))
68*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_UNPLUG_TIMER (__BLK_TA_UNPLUG_TIMER | BLK_TC_ACT(BLK_TC_QUEUE))
69*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_INSERT (__BLK_TA_INSERT | BLK_TC_ACT(BLK_TC_QUEUE))
70*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_SPLIT (__BLK_TA_SPLIT)
71*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_BOUNCE (__BLK_TA_BOUNCE)
72*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_REMAP (__BLK_TA_REMAP | BLK_TC_ACT(BLK_TC_QUEUE))
73*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_ABORT (__BLK_TA_ABORT | BLK_TC_ACT(BLK_TC_QUEUE))
74*8d67ca89SAndroid Build Coastguard Worker #define BLK_TA_DRV_DATA (__BLK_TA_DRV_DATA | BLK_TC_ACT(BLK_TC_DRV_DATA))
75*8d67ca89SAndroid Build Coastguard Worker #define BLK_TN_PROCESS (__BLK_TN_PROCESS | BLK_TC_ACT(BLK_TC_NOTIFY))
76*8d67ca89SAndroid Build Coastguard Worker #define BLK_TN_TIMESTAMP (__BLK_TN_TIMESTAMP | BLK_TC_ACT(BLK_TC_NOTIFY))
77*8d67ca89SAndroid Build Coastguard Worker #define BLK_TN_MESSAGE (__BLK_TN_MESSAGE | BLK_TC_ACT(BLK_TC_NOTIFY))
78*8d67ca89SAndroid Build Coastguard Worker #define BLK_IO_TRACE_MAGIC 0x65617400
79*8d67ca89SAndroid Build Coastguard Worker #define BLK_IO_TRACE_VERSION 0x07
80*8d67ca89SAndroid Build Coastguard Worker struct blk_io_trace {
81*8d67ca89SAndroid Build Coastguard Worker   __u32 magic;
82*8d67ca89SAndroid Build Coastguard Worker   __u32 sequence;
83*8d67ca89SAndroid Build Coastguard Worker   __u64 time;
84*8d67ca89SAndroid Build Coastguard Worker   __u64 sector;
85*8d67ca89SAndroid Build Coastguard Worker   __u32 bytes;
86*8d67ca89SAndroid Build Coastguard Worker   __u32 action;
87*8d67ca89SAndroid Build Coastguard Worker   __u32 pid;
88*8d67ca89SAndroid Build Coastguard Worker   __u32 device;
89*8d67ca89SAndroid Build Coastguard Worker   __u32 cpu;
90*8d67ca89SAndroid Build Coastguard Worker   __u16 error;
91*8d67ca89SAndroid Build Coastguard Worker   __u16 pdu_len;
92*8d67ca89SAndroid Build Coastguard Worker };
93*8d67ca89SAndroid Build Coastguard Worker struct blk_io_trace_remap {
94*8d67ca89SAndroid Build Coastguard Worker   __be32 device_from;
95*8d67ca89SAndroid Build Coastguard Worker   __be32 device_to;
96*8d67ca89SAndroid Build Coastguard Worker   __be64 sector_from;
97*8d67ca89SAndroid Build Coastguard Worker };
98*8d67ca89SAndroid Build Coastguard Worker enum {
99*8d67ca89SAndroid Build Coastguard Worker   Blktrace_setup = 1,
100*8d67ca89SAndroid Build Coastguard Worker   Blktrace_running,
101*8d67ca89SAndroid Build Coastguard Worker   Blktrace_stopped,
102*8d67ca89SAndroid Build Coastguard Worker };
103*8d67ca89SAndroid Build Coastguard Worker #define BLKTRACE_BDEV_SIZE 32
104*8d67ca89SAndroid Build Coastguard Worker struct blk_user_trace_setup {
105*8d67ca89SAndroid Build Coastguard Worker   char name[BLKTRACE_BDEV_SIZE];
106*8d67ca89SAndroid Build Coastguard Worker   __u16 act_mask;
107*8d67ca89SAndroid Build Coastguard Worker   __u32 buf_size;
108*8d67ca89SAndroid Build Coastguard Worker   __u32 buf_nr;
109*8d67ca89SAndroid Build Coastguard Worker   __u64 start_lba;
110*8d67ca89SAndroid Build Coastguard Worker   __u64 end_lba;
111*8d67ca89SAndroid Build Coastguard Worker   __u32 pid;
112*8d67ca89SAndroid Build Coastguard Worker };
113*8d67ca89SAndroid Build Coastguard Worker #endif
114