summaryrefslogtreecommitdiffhomepage
path: root/ebpf/include/linux/binfmts.h
diff options
context:
space:
mode:
authorDavid Anderson <danderson@tailscale.com>2021-11-10 12:15:03 -0800
committerDavid Anderson <danderson@tailscale.com>2021-11-10 12:15:03 -0800
commit41710e1b810aa25c14ceb657a40b9ba616615435 (patch)
tree4953322c9930fde10dae9ff057de28827e87fb52 /ebpf/include/linux/binfmts.h
parent4a51050c498da33eaecb520b78aeb5f445a442f1 (diff)
downloadtailscale-danderson/ebpf.tar.xz
tailscale-danderson/ebpf.zip
ebpf: experiments.danderson/ebpf
Diffstat (limited to 'ebpf/include/linux/binfmts.h')
-rw-r--r--ebpf/include/linux/binfmts.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/ebpf/include/linux/binfmts.h b/ebpf/include/linux/binfmts.h
new file mode 100644
index 000000000..9847a0874
--- /dev/null
+++ b/ebpf/include/linux/binfmts.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef _LINUX_BINFMTS_H
+#define _LINUX_BINFMTS_H
+
+#include <linux/capability.h>
+
+struct pt_regs;
+
+/*
+ * These are the maximum length and maximum number of strings passed to the
+ * execve() system call. MAX_ARG_STRLEN is essentially random but serves to
+ * prevent the kernel from being unduly impacted by misaddressed pointers.
+ * MAX_ARG_STRINGS is chosen to fit in a signed 32-bit integer.
+ */
+#define MAX_ARG_STRLEN (PAGE_SIZE * 32)
+#define MAX_ARG_STRINGS 0x7FFFFFFF
+
+/* sizeof(linux_binprm->buf) */
+#define BINPRM_BUF_SIZE 256
+
+/* preserve argv0 for the interpreter */
+#define AT_FLAGS_PRESERVE_ARGV0_BIT 0
+#define AT_FLAGS_PRESERVE_ARGV0 (1 << AT_FLAGS_PRESERVE_ARGV0_BIT)
+
+#endif /* _LINUX_BINFMTS_H */