#include <sys/imgact.h>

sys/imgact.h Kernel.framework

NOTICE: This file was modified by SPARTA, Inc. in 2005 to introduce support for mandatory and extensible security protections. This notice is included in support of clause 2.2 (b) of the Apple Public License, Version 2.0.
20 macros · 1 struct

macroIMG_SHSIZE

#define IMG_SHSIZE 512
largest shell interpreter, in bytes

structimage_params

size 856, align 8
user_addr_tip_user_fnameargument
user_addr_tip_user_argvargument
user_addr_tip_user_envvargument
intip_segsegment for arguments
struct vnode *ip_vpfile
struct vnode_attr *ip_vattrrun file attributes
struct vnode_attr *ip_origvattrinvocation file attributes
cpu_type_tip_origcputypecputype of invocation file
cpu_subtype_tip_origcpusubtypesubtype of invocation file
char *ip_vdatafile data (up to one page)
intip_flagsimage flags
intip_argcargument count
intip_envcenvironment count
intip_applecapple vector count
char *ip_startargvargument vector beginning
char *ip_endargvend of argv/start of envv
char *ip_endenvvend of envv/start of applev
char *ip_stringsbase address for strings
char *ip_strendpcurrent end pointer
char *ip_subsystem_root_pathfilepath for the subsystem root
intip_argspaceremaining space of NCARGS limit (argv+envv)
intip_strspaceremaining total string space
user_size_tip_arch_offsetsubfile offset in ip_vp
user_size_tip_arch_sizesubfile length in ip_vp
char[512]ip_interp_bufferinterpreter buffer space
intip_interp_sugid_fdfd for sugid script
struct vfs_context *ip_vfs_contextNext two fields are for support of architecture translation... VFS context
struct nameidata *ip_ndpcurrent nameidata
thread_tip_new_threadthread for spawn
struct label *ip_execlabelplabel of the executable
struct label *ip_scriptlabelplabel of the script
struct vnode *ip_scriptvpscript
unsigned intip_csflagscode signing flags
intip_mac_returnreturn code from mac policy checks
void *ip_px_saposix_spawn attrs
void *ip_px_sfaposix_spawn file actions
void *ip_px_spaposix_spawn port actions
vm_map_tip_free_mapmap to free once iocount is dropped on vnode
struct ip_px_smpx_sip_px_smpxMAC-specific spawn attrs.
void *ip_px_personapersona args
void *ip_px_pcred_infoposix cred args
void *ip_cs_errorcodesigning error reason
char *ip_inherited_shared_region_idinherited shared region id for ptr auth
uint64_tip_dyld_fsid
uint64_tip_dyld_fsobjid
uint64_tip_inherited_jop_pid
unsigned intip_flags2extended image flags

macroIMGPF_NONE

Image flags
#define IMGPF_NONE 0x00000000
No flags

macroIMGPF_INTERPRET

#define IMGPF_INTERPRET 0x00000001
Interpreter invoked

macroIMGPF_RESERVED

#define IMGPF_RESERVED 0x00000002

macroIMGPF_WAS_64BIT_ADDR

#define IMGPF_WAS_64BIT_ADDR 0x00000004
exec from a 64Bit address space

macroIMGPF_IS_64BIT_ADDR

#define IMGPF_IS_64BIT_ADDR 0x00000008
exec to a 64Bit address space

macroIMGPF_SPAWN

#define IMGPF_SPAWN 0x00000010
spawn (without setexec)

macroIMGPF_DISABLE_ASLR

#define IMGPF_DISABLE_ASLR 0x00000020
disable ASLR

macroIMGPF_ALLOW_DATA_EXEC

#define IMGPF_ALLOW_DATA_EXEC 0x00000040
forcibly disallow data execution

macroIMGPF_EXEC

#define IMGPF_EXEC 0x00000100
exec

macroIMGPF_HIGH_BITS_ASLR

#define IMGPF_HIGH_BITS_ASLR 0x00000200
randomize high bits of ASLR slide

macroIMGPF_IS_64BIT_DATA

#define IMGPF_IS_64BIT_DATA 0x00000400
exec to a 64Bit register state

macroIMGPF_DRIVER

#define IMGPF_DRIVER 0x00000800
exec of a driver binary (no LC_MAIN)

macroIMGPF_RESLIDE

#define IMGPF_RESLIDE 0x00001000
reslide the shared cache

macroIMGPF_PLUGIN_HOST_DISABLE_A_KEYS

#define IMGPF_PLUGIN_HOST_DISABLE_A_KEYS 0x00002000
process hosts plugins, disable ptr auth A keys

macroIMGPF_HW_TPRO

#define IMGPF_HW_TPRO 0x00004000
HW support for read-only/read-write trusted paths

macroIMGPF_HARDENED_HEAP

#define IMGPF_HARDENED_HEAP 0x00008000
enable hardened-heap for the process

macroIMGPF_ROSETTA

#define IMGPF_ROSETTA 0x10000000
load rosetta runtime

macroIMGPF_ALT_ROSETTA

#define IMGPF_ALT_ROSETTA 0x20000000
load alternative rosetta runtime

macroIMGPF_NOJOP

#define IMGPF_NOJOP 0x80000000