#include <sys/imgact.h>
sys/imgact.h
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.
structimage_params
| user_addr_t | ip_user_fname | argument |
| user_addr_t | ip_user_argv | argument |
| user_addr_t | ip_user_envv | argument |
| int | ip_seg | segment for arguments |
| struct vnode * | ip_vp | file |
| struct vnode_attr * | ip_vattr | run file attributes |
| struct vnode_attr * | ip_origvattr | invocation file attributes |
| cpu_type_t | ip_origcputype | cputype of invocation file |
| cpu_subtype_t | ip_origcpusubtype | subtype of invocation file |
| char * | ip_vdata | file data (up to one page) |
| int | ip_flags | image flags |
| int | ip_argc | argument count |
| int | ip_envc | environment count |
| int | ip_applec | apple vector count |
| char * | ip_startargv | argument vector beginning |
| char * | ip_endargv | end of argv/start of envv |
| char * | ip_endenvv | end of envv/start of applev |
| char * | ip_strings | base address for strings |
| char * | ip_strendp | current end pointer |
| char * | ip_subsystem_root_path | filepath for the subsystem root |
| int | ip_argspace | remaining space of NCARGS limit (argv+envv) |
| int | ip_strspace | remaining total string space |
| user_size_t | ip_arch_offset | subfile offset in ip_vp |
| user_size_t | ip_arch_size | subfile length in ip_vp |
| char[512] | ip_interp_buffer | interpreter buffer space |
| int | ip_interp_sugid_fd | fd for sugid script |
| struct vfs_context * | ip_vfs_context | Next two fields are for support of architecture translation... VFS context |
| struct nameidata * | ip_ndp | current nameidata |
| thread_t | ip_new_thread | thread for spawn |
| struct label * | ip_execlabelp | label of the executable |
| struct label * | ip_scriptlabelp | label of the script |
| struct vnode * | ip_scriptvp | script |
| unsigned int | ip_csflags | code signing flags |
| int | ip_mac_return | return code from mac policy checks |
| void * | ip_px_sa | posix_spawn attrs |
| void * | ip_px_sfa | posix_spawn file actions |
| void * | ip_px_spa | posix_spawn port actions |
| vm_map_t | ip_free_map | map to free once iocount is dropped on vnode |
| struct ip_px_smpx_s | ip_px_smpx | MAC-specific spawn attrs. |
| void * | ip_px_persona | persona args |
| void * | ip_px_pcred_info | posix cred args |
| void * | ip_cs_error | codesigning error reason |
| char * | ip_inherited_shared_region_id | inherited shared region id for ptr auth |
| uint64_t | ip_dyld_fsid | |
| uint64_t | ip_dyld_fsobjid | |
| uint64_t | ip_inherited_jop_pid | |
| unsigned int | ip_flags2 | extended image flags |
macroIMGPF_RESERVED
#define IMGPF_RESERVED 0x00000002
macroIMGPF_PLUGIN_HOST_DISABLE_A_KEYS
#define IMGPF_PLUGIN_HOST_DISABLE_A_KEYS 0x00002000
process hosts plugins, disable ptr auth A keys
macroIMGPF_NOJOP
#define IMGPF_NOJOP 0x80000000