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