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