1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/****************************************************************************
2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   This header was automatically generated from a Linux kernel header
5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   of the same name, to make information necessary for userspace to
6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   structures, and macros generated from the original header, and thus,
8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   contains no copyrightable information.
9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   To edit the content of this header, modify the corresponding
11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   Any manual change here will be lost the next time this script will
15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   be run. You've been warned!
16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/
19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _UAPIBLKTRACE_H
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _UAPIBLKTRACE_H
21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h>
22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum blktrace_cat {
23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_READ = 1 << 0,
25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_WRITE = 1 << 1,
26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_FLUSH = 1 << 2,
27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_SYNC = 1 << 3,
28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_SYNCIO = BLK_TC_SYNC,
30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_QUEUE = 1 << 4,
31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_REQUEUE = 1 << 5,
32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_ISSUE = 1 << 6,
33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_COMPLETE = 1 << 7,
35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_FS = 1 << 8,
36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_PC = 1 << 9,
37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_NOTIFY = 1 << 10,
38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_AHEAD = 1 << 11,
40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_META = 1 << 12,
41655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_DISCARD = 1 << 13,
42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_DRV_DATA = 1 << 14,
43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_FUA = 1 << 15,
45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng BLK_TC_END = 1 << 15,
46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TC_SHIFT (16)
48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TC_ACT(act) ((act) << BLK_TC_SHIFT)
50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum blktrace_act {
51655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_QUEUE = 1,
52655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_BACKMERGE,
53655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_FRONTMERGE,
55655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_GETRQ,
56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_SLEEPRQ,
57655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_REQUEUE,
58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_ISSUE,
60655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_COMPLETE,
61655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_PLUG,
62655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_UNPLUG_IO,
63655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_UNPLUG_TIMER,
65655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_INSERT,
66655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_SPLIT,
67655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_BOUNCE,
68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_REMAP,
70655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_ABORT,
71655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TA_DRV_DATA,
72655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
73655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum blktrace_notify {
75655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TN_PROCESS = 0,
76655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TN_TIMESTAMP,
77655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __BLK_TN_MESSAGE,
78655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
80655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_QUEUE (__BLK_TA_QUEUE | BLK_TC_ACT(BLK_TC_QUEUE))
81655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_BACKMERGE (__BLK_TA_BACKMERGE | BLK_TC_ACT(BLK_TC_QUEUE))
82655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_FRONTMERGE (__BLK_TA_FRONTMERGE | BLK_TC_ACT(BLK_TC_QUEUE))
83655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_GETRQ (__BLK_TA_GETRQ | BLK_TC_ACT(BLK_TC_QUEUE))
85655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_SLEEPRQ (__BLK_TA_SLEEPRQ | BLK_TC_ACT(BLK_TC_QUEUE))
86655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_REQUEUE (__BLK_TA_REQUEUE | BLK_TC_ACT(BLK_TC_REQUEUE))
87655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_ISSUE (__BLK_TA_ISSUE | BLK_TC_ACT(BLK_TC_ISSUE))
88655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_COMPLETE (__BLK_TA_COMPLETE| BLK_TC_ACT(BLK_TC_COMPLETE))
90655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_PLUG (__BLK_TA_PLUG | BLK_TC_ACT(BLK_TC_QUEUE))
91655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_UNPLUG_IO (__BLK_TA_UNPLUG_IO | BLK_TC_ACT(BLK_TC_QUEUE))
92655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_UNPLUG_TIMER (__BLK_TA_UNPLUG_TIMER | BLK_TC_ACT(BLK_TC_QUEUE))
93655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_INSERT (__BLK_TA_INSERT | BLK_TC_ACT(BLK_TC_QUEUE))
95655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_SPLIT (__BLK_TA_SPLIT)
96655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_BOUNCE (__BLK_TA_BOUNCE)
97655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_REMAP (__BLK_TA_REMAP | BLK_TC_ACT(BLK_TC_QUEUE))
98655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_ABORT (__BLK_TA_ABORT | BLK_TC_ACT(BLK_TC_QUEUE))
100655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TA_DRV_DATA (__BLK_TA_DRV_DATA | BLK_TC_ACT(BLK_TC_DRV_DATA))
101655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TN_PROCESS (__BLK_TN_PROCESS | BLK_TC_ACT(BLK_TC_NOTIFY))
102655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TN_TIMESTAMP (__BLK_TN_TIMESTAMP | BLK_TC_ACT(BLK_TC_NOTIFY))
103655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_TN_MESSAGE (__BLK_TN_MESSAGE | BLK_TC_ACT(BLK_TC_NOTIFY))
105655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_IO_TRACE_MAGIC 0x65617400
106655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLK_IO_TRACE_VERSION 0x07
107655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct blk_io_trace {
108655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u32 magic;
110655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u32 sequence;
111655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u64 time;
112655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u64 sector;
113655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u32 bytes;
115655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u32 action;
116655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u32 pid;
117655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u32 device;
118655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u32 cpu;
120655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u16 error;
121655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u16 pdu_len;
122655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
123655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct blk_io_trace_remap {
125655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __be32 device_from;
126655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __be32 device_to;
127655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __be64 sector_from;
128655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
130655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum {
131655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng Blktrace_setup = 1,
132655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng Blktrace_running,
133655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng Blktrace_stopped,
135655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
136655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BLKTRACE_BDEV_SIZE 32
137655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct blk_user_trace_setup {
138655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng char name[BLKTRACE_BDEV_SIZE];
140655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u16 act_mask;
141655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u32 buf_size;
142655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u32 buf_nr;
143655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u64 start_lba;
145655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u64 end_lba;
146655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng __u32 pid;
147655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
148655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
150