10 #include <linux/kernel.h> 20 #include <uapi/asm-generic/ioctls.h> 24 static const char *ioctl_tty_cmd[] = {
25 "TCGETS",
"TCSETS",
"TCSETSW",
"TCSETSF",
"TCGETA",
"TCSETA",
"TCSETAW",
26 "TCSETAF",
"TCSBRK",
"TCXONC",
"TCFLSH",
"TIOCEXCL",
"TIOCNXCL",
"TIOCSCTTY",
27 "TIOCGPGRP",
"TIOCSPGRP",
"TIOCOUTQ",
"TIOCSTI",
"TIOCGWINSZ",
"TIOCSWINSZ",
28 "TIOCMGET",
"TIOCMBIS",
"TIOCMBIC",
"TIOCMSET",
"TIOCGSOFTCAR",
"TIOCSSOFTCAR",
29 "FIONREAD",
"TIOCLINUX",
"TIOCCONS",
"TIOCGSERIAL",
"TIOCSSERIAL",
"TIOCPKT",
30 "FIONBIO",
"TIOCNOTTY",
"TIOCSETD",
"TIOCGETD",
"TCSBRKP",
31 [_IOC_NR(TIOCSBRK)] =
"TIOCSBRK",
"TIOCCBRK",
"TIOCGSID",
"TCGETS2",
"TCSETS2",
32 "TCSETSW2",
"TCSETSF2",
"TIOCGRS48",
"TIOCSRS485",
"TIOCGPTN",
"TIOCSPTLCK",
33 "TIOCGDEV",
"TCSETX",
"TCSETXF",
"TCSETXW",
"TIOCSIG",
"TIOCVHANGUP",
"TIOCGPKT",
34 "TIOCGPTLCK", [_IOC_NR(TIOCGEXCL)] =
"TIOCGEXCL",
"TIOCGPTPEER",
35 [_IOC_NR(FIONCLEX)] =
"FIONCLEX",
"FIOCLEX",
"FIOASYNC",
"TIOCSERCONFIG",
36 "TIOCSERGWILD",
"TIOCSERSWILD",
"TIOCGLCKTRMIOS",
"TIOCSLCKTRMIOS",
37 "TIOCSERGSTRUCT",
"TIOCSERGETLSR",
"TIOCSERGETMULTI",
"TIOCSERSETMULTI",
38 "TIOCMIWAIT",
"TIOCGICOUNT", };
41 if (nr < strarray__ioctl_tty_cmd.nr_entries && strarray__ioctl_tty_cmd.entries[nr] != NULL)
42 return scnprintf(bf, size,
"%s", strarray__ioctl_tty_cmd.entries[nr]);
44 return scnprintf(bf, size,
"(%#x, %#x, %#x)",
'T', nr, dir);
49 #include "trace/beauty/generated/ioctl/drm_ioctl_array.c" 52 if (nr < strarray__drm_ioctl_cmds.nr_entries && strarray__drm_ioctl_cmds.entries[nr] != NULL)
53 return scnprintf(bf, size,
"DRM_%s", strarray__drm_ioctl_cmds.entries[nr]);
55 return scnprintf(bf, size,
"(%#x, %#x, %#x)",
'd', nr, dir);
60 #include "trace/beauty/generated/ioctl/sndrv_pcm_ioctl_array.c" 63 if (nr < strarray__sndrv_pcm_ioctl_cmds.nr_entries && strarray__sndrv_pcm_ioctl_cmds.entries[nr] != NULL)
64 return scnprintf(bf, size,
"SNDRV_PCM_%s", strarray__sndrv_pcm_ioctl_cmds.entries[nr]);
66 return scnprintf(bf, size,
"(%#x, %#x, %#x)",
'A', nr, dir);
71 #include "trace/beauty/generated/ioctl/sndrv_ctl_ioctl_array.c" 74 if (nr < strarray__sndrv_ctl_ioctl_cmds.nr_entries && strarray__sndrv_ctl_ioctl_cmds.entries[nr] != NULL)
75 return scnprintf(bf, size,
"SNDRV_CTL_%s", strarray__sndrv_ctl_ioctl_cmds.entries[nr]);
77 return scnprintf(bf, size,
"(%#x, %#x, %#x)",
'U', nr, dir);
82 #include "trace/beauty/generated/ioctl/kvm_ioctl_array.c" 85 if (nr < strarray__kvm_ioctl_cmds.nr_entries && strarray__kvm_ioctl_cmds.entries[nr] != NULL)
86 return scnprintf(bf, size,
"KVM_%s", strarray__kvm_ioctl_cmds.entries[nr]);
88 return scnprintf(bf, size,
"(%#x, %#x, %#x)", 0xAE, nr, dir);
93 #include "trace/beauty/generated/ioctl/vhost_virtio_ioctl_array.c" 96 struct strarray *s = (dir & _IOC_READ) ? &strarray__vhost_virtio_ioctl_read_cmds : &strarray__vhost_virtio_ioctl_cmds;
99 return scnprintf(bf, size,
"VHOST_%s", s->
entries[nr]);
101 return scnprintf(bf, size,
"(%#x, %#x, %#x)", 0xAF, nr, dir);
106 #include "trace/beauty/generated/ioctl/perf_ioctl_array.c" 109 if (nr < strarray__perf_ioctl_cmds.nr_entries && strarray__perf_ioctl_cmds.entries[nr] != NULL)
110 return scnprintf(bf, size,
"PERF_%s", strarray__perf_ioctl_cmds.entries[nr]);
112 return scnprintf(bf, size,
"(%#x, %#x, %#x)", 0xAE, nr, dir);
117 int dir = _IOC_DIR(cmd),
118 type = _IOC_TYPE(cmd),
122 static const struct ioctl_type {
124 size_t (*scnprintf)(
int nr,
int dir,
char *bf,
size_t size);
134 const int nr_types = ARRAY_SIZE(ioctl_types);
136 if (type >= ioctl_types[0].type && type <= ioctl_types[nr_types - 1].type) {
137 const int index = type - ioctl_types[0].type;
139 if (ioctl_types[index].scnprintf != NULL)
140 return ioctl_types[index].scnprintf(nr, dir, bf, size);
143 printed += scnprintf(bf + printed, size - printed,
"%c",
'(');
145 if (dir == _IOC_NONE) {
146 printed += scnprintf(bf + printed, size - printed,
"%s",
"NONE");
149 printed += scnprintf(bf + printed, size - printed,
"%s",
"READ");
150 if (dir & _IOC_WRITE)
151 printed += scnprintf(bf + printed, size - printed,
"%s%s", dir & _IOC_READ ?
"|" :
"",
"WRITE");
154 return printed + scnprintf(bf + printed, size - printed,
", %#x, %#x, %#x)", type, nr, sz);
159 unsigned long cmd = arg->
val;
#define DEFINE_STRARRAY(array)
static size_t ioctl__scnprintf_vhost_virtio_cmd(int nr, int dir, char *bf, size_t size)
static size_t ioctl__scnprintf_cmd(unsigned long cmd, char *bf, size_t size)
static size_t ioctl__scnprintf_sndrv_ctl_cmd(int nr, int dir, char *bf, size_t size)
static size_t ioctl__scnprintf_sndrv_pcm_cmd(int nr, int dir, char *bf, size_t size)
size_t syscall_arg__scnprintf_ioctl_cmd(char *bf, size_t size, struct syscall_arg *arg)
static size_t ioctl__scnprintf_tty_cmd(int nr, int dir, char *bf, size_t size)
static size_t ioctl__scnprintf_perf_cmd(int nr, int dir, char *bf, size_t size)
static size_t ioctl__scnprintf_kvm_cmd(int nr, int dir, char *bf, size_t size)
static size_t ioctl__scnprintf_drm_cmd(int nr, int dir, char *bf, size_t size)