|
@@ -81,6 +81,14 @@ static size_t syscall_arg__scnprintf_strarray(char *bf, size_t size,
|
|
|
|
|
|
#define SCA_STRARRAY syscall_arg__scnprintf_strarray
|
|
|
|
|
|
+static size_t syscall_arg__scnprintf_strhexarray(char *bf, size_t size,
|
|
|
+ struct syscall_arg *arg)
|
|
|
+{
|
|
|
+ return __syscall_arg__scnprintf_strarray(bf, size, "%#x", arg);
|
|
|
+}
|
|
|
+
|
|
|
+#define SCA_STRHEXARRAY syscall_arg__scnprintf_strhexarray
|
|
|
+
|
|
|
static size_t syscall_arg__scnprintf_fd(char *bf, size_t size,
|
|
|
struct syscall_arg *arg);
|
|
|
|
|
@@ -633,6 +641,28 @@ static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscal
|
|
|
|
|
|
#define SCA_SIGNUM syscall_arg__scnprintf_signum
|
|
|
|
|
|
+#define TCGETS 0x5401
|
|
|
+
|
|
|
+static const char *tioctls[] = {
|
|
|
+ "TCGETS", "TCSETS", "TCSETSW", "TCSETSF", "TCGETA", "TCSETA", "TCSETAW",
|
|
|
+ "TCSETAF", "TCSBRK", "TCXONC", "TCFLSH", "TIOCEXCL", "TIOCNXCL",
|
|
|
+ "TIOCSCTTY", "TIOCGPGRP", "TIOCSPGRP", "TIOCOUTQ", "TIOCSTI",
|
|
|
+ "TIOCGWINSZ", "TIOCSWINSZ", "TIOCMGET", "TIOCMBIS", "TIOCMBIC",
|
|
|
+ "TIOCMSET", "TIOCGSOFTCAR", "TIOCSSOFTCAR", "FIONREAD", "TIOCLINUX",
|
|
|
+ "TIOCCONS", "TIOCGSERIAL", "TIOCSSERIAL", "TIOCPKT", "FIONBIO",
|
|
|
+ "TIOCNOTTY", "TIOCSETD", "TIOCGETD", "TCSBRKP", [0x27] = "TIOCSBRK",
|
|
|
+ "TIOCCBRK", "TIOCGSID", "TCGETS2", "TCSETS2", "TCSETSW2", "TCSETSF2",
|
|
|
+ "TIOCGRS485", "TIOCSRS485", "TIOCGPTN", "TIOCSPTLCK",
|
|
|
+ "TIOCGDEV||TCGETX", "TCSETX", "TCSETXF", "TCSETXW", "TIOCSIG",
|
|
|
+ "TIOCVHANGUP", "TIOCGPKT", "TIOCGPTLCK", "TIOCGEXCL",
|
|
|
+ [0x50] = "FIONCLEX", "FIOCLEX", "FIOASYNC", "TIOCSERCONFIG",
|
|
|
+ "TIOCSERGWILD", "TIOCSERSWILD", "TIOCGLCKTRMIOS", "TIOCSLCKTRMIOS",
|
|
|
+ "TIOCSERGSTRUCT", "TIOCSERGETLSR", "TIOCSERGETMULTI", "TIOCSERSETMULTI",
|
|
|
+ "TIOCMIWAIT", "TIOCGICOUNT", [0x60] = "FIOQSIZE",
|
|
|
+};
|
|
|
+
|
|
|
+static DEFINE_STRARRAY_OFFSET(tioctls, 0x5401);
|
|
|
+
|
|
|
#define STRARRAY(arg, name, array) \
|
|
|
.arg_scnprintf = { [arg] = SCA_STRARRAY, }, \
|
|
|
.arg_parm = { [arg] = &strarray__##array, }
|
|
@@ -713,7 +743,9 @@ static struct syscall_fmt {
|
|
|
{ .name = "getrlimit", .errmsg = true, STRARRAY(0, resource, rlimit_resources), },
|
|
|
{ .name = "ioctl", .errmsg = true,
|
|
|
.arg_scnprintf = { [0] = SCA_FD, /* fd */
|
|
|
- [2] = SCA_HEX, /* arg */ }, },
|
|
|
+ [1] = SCA_STRHEXARRAY, /* cmd */
|
|
|
+ [2] = SCA_HEX, /* arg */ },
|
|
|
+ .arg_parm = { [1] = &strarray__tioctls, /* cmd */ }, },
|
|
|
{ .name = "kill", .errmsg = true,
|
|
|
.arg_scnprintf = { [1] = SCA_SIGNUM, /* sig */ }, },
|
|
|
{ .name = "linkat", .errmsg = true,
|