xref: /aosp_15_r20/external/kernel-headers/original/uapi/linux/binfmts.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_BINFMTS_H
3*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_LINUX_BINFMTS_H
4*f80ad8b4SAndroid Build Coastguard Worker 
5*f80ad8b4SAndroid Build Coastguard Worker #include <linux/capability.h>
6*f80ad8b4SAndroid Build Coastguard Worker 
7*f80ad8b4SAndroid Build Coastguard Worker struct pt_regs;
8*f80ad8b4SAndroid Build Coastguard Worker 
9*f80ad8b4SAndroid Build Coastguard Worker /*
10*f80ad8b4SAndroid Build Coastguard Worker  * These are the maximum length and maximum number of strings passed to the
11*f80ad8b4SAndroid Build Coastguard Worker  * execve() system call.  MAX_ARG_STRLEN is essentially random but serves to
12*f80ad8b4SAndroid Build Coastguard Worker  * prevent the kernel from being unduly impacted by misaddressed pointers.
13*f80ad8b4SAndroid Build Coastguard Worker  * MAX_ARG_STRINGS is chosen to fit in a signed 32-bit integer.
14*f80ad8b4SAndroid Build Coastguard Worker  */
15*f80ad8b4SAndroid Build Coastguard Worker #define MAX_ARG_STRLEN (PAGE_SIZE * 32)
16*f80ad8b4SAndroid Build Coastguard Worker #define MAX_ARG_STRINGS 0x7FFFFFFF
17*f80ad8b4SAndroid Build Coastguard Worker 
18*f80ad8b4SAndroid Build Coastguard Worker /* sizeof(linux_binprm->buf) */
19*f80ad8b4SAndroid Build Coastguard Worker #define BINPRM_BUF_SIZE 256
20*f80ad8b4SAndroid Build Coastguard Worker 
21*f80ad8b4SAndroid Build Coastguard Worker /* preserve argv0 for the interpreter  */
22*f80ad8b4SAndroid Build Coastguard Worker #define AT_FLAGS_PRESERVE_ARGV0_BIT 0
23*f80ad8b4SAndroid Build Coastguard Worker #define AT_FLAGS_PRESERVE_ARGV0 (1 << AT_FLAGS_PRESERVE_ARGV0_BIT)
24*f80ad8b4SAndroid Build Coastguard Worker 
25*f80ad8b4SAndroid Build Coastguard Worker #endif /* _UAPI_LINUX_BINFMTS_H */
26