blob: 41965208cc5c6ed254f1486773ed82c5ac79e105 [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef _UAPIBLKTRACE_H
8#define _UAPIBLKTRACE_H
9#include <linux/types.h>
10enum blktrace_cat {
Tao Baod7db5942015-01-28 10:07:51 -080011 BLK_TC_READ = 1 << 0,
12 BLK_TC_WRITE = 1 << 1,
13 BLK_TC_FLUSH = 1 << 2,
14 BLK_TC_SYNC = 1 << 3,
Tao Baod7db5942015-01-28 10:07:51 -080015 BLK_TC_SYNCIO = BLK_TC_SYNC,
16 BLK_TC_QUEUE = 1 << 4,
17 BLK_TC_REQUEUE = 1 << 5,
18 BLK_TC_ISSUE = 1 << 6,
Tao Baod7db5942015-01-28 10:07:51 -080019 BLK_TC_COMPLETE = 1 << 7,
20 BLK_TC_FS = 1 << 8,
21 BLK_TC_PC = 1 << 9,
22 BLK_TC_NOTIFY = 1 << 10,
Tao Baod7db5942015-01-28 10:07:51 -080023 BLK_TC_AHEAD = 1 << 11,
24 BLK_TC_META = 1 << 12,
25 BLK_TC_DISCARD = 1 << 13,
26 BLK_TC_DRV_DATA = 1 << 14,
Tao Baod7db5942015-01-28 10:07:51 -080027 BLK_TC_FUA = 1 << 15,
28 BLK_TC_END = 1 << 15,
Ben Cheng655a7c02013-10-16 16:09:24 -070029};
30#define BLK_TC_SHIFT (16)
Ben Cheng655a7c02013-10-16 16:09:24 -070031#define BLK_TC_ACT(act) ((act) << BLK_TC_SHIFT)
32enum blktrace_act {
Tao Baod7db5942015-01-28 10:07:51 -080033 __BLK_TA_QUEUE = 1,
34 __BLK_TA_BACKMERGE,
Tao Baod7db5942015-01-28 10:07:51 -080035 __BLK_TA_FRONTMERGE,
36 __BLK_TA_GETRQ,
37 __BLK_TA_SLEEPRQ,
38 __BLK_TA_REQUEUE,
Tao Baod7db5942015-01-28 10:07:51 -080039 __BLK_TA_ISSUE,
40 __BLK_TA_COMPLETE,
41 __BLK_TA_PLUG,
42 __BLK_TA_UNPLUG_IO,
Tao Baod7db5942015-01-28 10:07:51 -080043 __BLK_TA_UNPLUG_TIMER,
44 __BLK_TA_INSERT,
45 __BLK_TA_SPLIT,
46 __BLK_TA_BOUNCE,
Tao Baod7db5942015-01-28 10:07:51 -080047 __BLK_TA_REMAP,
48 __BLK_TA_ABORT,
49 __BLK_TA_DRV_DATA,
Christopher Ferris1308ad32017-11-14 17:32:13 -080050 __BLK_TA_CGROUP = 1 << 8,
Ben Cheng655a7c02013-10-16 16:09:24 -070051};
Ben Cheng655a7c02013-10-16 16:09:24 -070052enum blktrace_notify {
Tao Baod7db5942015-01-28 10:07:51 -080053 __BLK_TN_PROCESS = 0,
54 __BLK_TN_TIMESTAMP,
55 __BLK_TN_MESSAGE,
Christopher Ferris1308ad32017-11-14 17:32:13 -080056 __BLK_TN_CGROUP = __BLK_TA_CGROUP,
Ben Cheng655a7c02013-10-16 16:09:24 -070057};
58#define BLK_TA_QUEUE (__BLK_TA_QUEUE | BLK_TC_ACT(BLK_TC_QUEUE))
59#define BLK_TA_BACKMERGE (__BLK_TA_BACKMERGE | BLK_TC_ACT(BLK_TC_QUEUE))
60#define BLK_TA_FRONTMERGE (__BLK_TA_FRONTMERGE | BLK_TC_ACT(BLK_TC_QUEUE))
Ben Cheng655a7c02013-10-16 16:09:24 -070061#define BLK_TA_GETRQ (__BLK_TA_GETRQ | BLK_TC_ACT(BLK_TC_QUEUE))
62#define BLK_TA_SLEEPRQ (__BLK_TA_SLEEPRQ | BLK_TC_ACT(BLK_TC_QUEUE))
63#define BLK_TA_REQUEUE (__BLK_TA_REQUEUE | BLK_TC_ACT(BLK_TC_REQUEUE))
64#define BLK_TA_ISSUE (__BLK_TA_ISSUE | BLK_TC_ACT(BLK_TC_ISSUE))
Tao Baod7db5942015-01-28 10:07:51 -080065#define BLK_TA_COMPLETE (__BLK_TA_COMPLETE | BLK_TC_ACT(BLK_TC_COMPLETE))
Ben Cheng655a7c02013-10-16 16:09:24 -070066#define BLK_TA_PLUG (__BLK_TA_PLUG | BLK_TC_ACT(BLK_TC_QUEUE))
67#define BLK_TA_UNPLUG_IO (__BLK_TA_UNPLUG_IO | BLK_TC_ACT(BLK_TC_QUEUE))
68#define BLK_TA_UNPLUG_TIMER (__BLK_TA_UNPLUG_TIMER | BLK_TC_ACT(BLK_TC_QUEUE))
Ben Cheng655a7c02013-10-16 16:09:24 -070069#define BLK_TA_INSERT (__BLK_TA_INSERT | BLK_TC_ACT(BLK_TC_QUEUE))
70#define BLK_TA_SPLIT (__BLK_TA_SPLIT)
71#define BLK_TA_BOUNCE (__BLK_TA_BOUNCE)
72#define BLK_TA_REMAP (__BLK_TA_REMAP | BLK_TC_ACT(BLK_TC_QUEUE))
Ben Cheng655a7c02013-10-16 16:09:24 -070073#define BLK_TA_ABORT (__BLK_TA_ABORT | BLK_TC_ACT(BLK_TC_QUEUE))
74#define BLK_TA_DRV_DATA (__BLK_TA_DRV_DATA | BLK_TC_ACT(BLK_TC_DRV_DATA))
75#define BLK_TN_PROCESS (__BLK_TN_PROCESS | BLK_TC_ACT(BLK_TC_NOTIFY))
76#define BLK_TN_TIMESTAMP (__BLK_TN_TIMESTAMP | BLK_TC_ACT(BLK_TC_NOTIFY))
Ben Cheng655a7c02013-10-16 16:09:24 -070077#define BLK_TN_MESSAGE (__BLK_TN_MESSAGE | BLK_TC_ACT(BLK_TC_NOTIFY))
78#define BLK_IO_TRACE_MAGIC 0x65617400
79#define BLK_IO_TRACE_VERSION 0x07
80struct blk_io_trace {
Tao Baod7db5942015-01-28 10:07:51 -080081 __u32 magic;
82 __u32 sequence;
83 __u64 time;
84 __u64 sector;
Tao Baod7db5942015-01-28 10:07:51 -080085 __u32 bytes;
86 __u32 action;
87 __u32 pid;
88 __u32 device;
Tao Baod7db5942015-01-28 10:07:51 -080089 __u32 cpu;
90 __u16 error;
91 __u16 pdu_len;
Ben Cheng655a7c02013-10-16 16:09:24 -070092};
Ben Cheng655a7c02013-10-16 16:09:24 -070093struct blk_io_trace_remap {
Tao Baod7db5942015-01-28 10:07:51 -080094 __be32 device_from;
95 __be32 device_to;
96 __be64 sector_from;
Ben Cheng655a7c02013-10-16 16:09:24 -070097};
98enum {
Tao Baod7db5942015-01-28 10:07:51 -080099 Blktrace_setup = 1,
100 Blktrace_running,
Tao Baod7db5942015-01-28 10:07:51 -0800101 Blktrace_stopped,
Ben Cheng655a7c02013-10-16 16:09:24 -0700102};
103#define BLKTRACE_BDEV_SIZE 32
104struct blk_user_trace_setup {
Tao Baod7db5942015-01-28 10:07:51 -0800105 char name[BLKTRACE_BDEV_SIZE];
106 __u16 act_mask;
107 __u32 buf_size;
108 __u32 buf_nr;
Tao Baod7db5942015-01-28 10:07:51 -0800109 __u64 start_lba;
110 __u64 end_lba;
111 __u32 pid;
Ben Cheng655a7c02013-10-16 16:09:24 -0700112};
Ben Cheng655a7c02013-10-16 16:09:24 -0700113#endif