|
@@ -37,6 +37,10 @@
|
|
|
# define MADV_UNMERGEABLE 13
|
|
|
#endif
|
|
|
|
|
|
+#ifndef EFD_SEMAPHORE
|
|
|
+# define EFD_SEMAPHORE 1
|
|
|
+#endif
|
|
|
+
|
|
|
struct tp_field {
|
|
|
int offset;
|
|
|
union {
|
|
@@ -279,6 +283,11 @@ static size_t syscall_arg__scnprintf_strarray(char *bf, size_t size,
|
|
|
|
|
|
#define SCA_STRARRAY syscall_arg__scnprintf_strarray
|
|
|
|
|
|
+#if defined(__i386__) || defined(__x86_64__)
|
|
|
+/*
|
|
|
+ * FIXME: Make this available to all arches as soon as the ioctl beautifier
|
|
|
+ * gets rewritten to support all arches.
|
|
|
+ */
|
|
|
static size_t syscall_arg__scnprintf_strhexarray(char *bf, size_t size,
|
|
|
struct syscall_arg *arg)
|
|
|
{
|
|
@@ -286,6 +295,7 @@ static size_t syscall_arg__scnprintf_strhexarray(char *bf, size_t size,
|
|
|
}
|
|
|
|
|
|
#define SCA_STRHEXARRAY syscall_arg__scnprintf_strhexarray
|
|
|
+#endif /* defined(__i386__) || defined(__x86_64__) */
|
|
|
|
|
|
static size_t syscall_arg__scnprintf_fd(char *bf, size_t size,
|
|
|
struct syscall_arg *arg);
|
|
@@ -839,6 +849,10 @@ static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscal
|
|
|
|
|
|
#define SCA_SIGNUM syscall_arg__scnprintf_signum
|
|
|
|
|
|
+#if defined(__i386__) || defined(__x86_64__)
|
|
|
+/*
|
|
|
+ * FIXME: Make this available to all arches.
|
|
|
+ */
|
|
|
#define TCGETS 0x5401
|
|
|
|
|
|
static const char *tioctls[] = {
|
|
@@ -860,6 +874,7 @@ static const char *tioctls[] = {
|
|
|
};
|
|
|
|
|
|
static DEFINE_STRARRAY_OFFSET(tioctls, 0x5401);
|
|
|
+#endif /* defined(__i386__) || defined(__x86_64__) */
|
|
|
|
|
|
#define STRARRAY(arg, name, array) \
|
|
|
.arg_scnprintf = { [arg] = SCA_STRARRAY, }, \
|
|
@@ -941,9 +956,16 @@ static struct syscall_fmt {
|
|
|
{ .name = "getrlimit", .errmsg = true, STRARRAY(0, resource, rlimit_resources), },
|
|
|
{ .name = "ioctl", .errmsg = true,
|
|
|
.arg_scnprintf = { [0] = SCA_FD, /* fd */
|
|
|
+#if defined(__i386__) || defined(__x86_64__)
|
|
|
+/*
|
|
|
+ * FIXME: Make this available to all arches.
|
|
|
+ */
|
|
|
[1] = SCA_STRHEXARRAY, /* cmd */
|
|
|
[2] = SCA_HEX, /* arg */ },
|
|
|
.arg_parm = { [1] = &strarray__tioctls, /* cmd */ }, },
|
|
|
+#else
|
|
|
+ [2] = SCA_HEX, /* arg */ }, },
|
|
|
+#endif
|
|
|
{ .name = "kill", .errmsg = true,
|
|
|
.arg_scnprintf = { [1] = SCA_SIGNUM, /* sig */ }, },
|
|
|
{ .name = "linkat", .errmsg = true,
|