X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/91447636331957f3d9b5ca5b508f07c526b0074d..d1ecb069dfe24481e4a83f44cb5217a2b06746d7:/bsd/sys/imgact.h?ds=sidebyside diff --git a/bsd/sys/imgact.h b/bsd/sys/imgact.h index 7a6920171..fa9be0460 100644 --- a/bsd/sys/imgact.h +++ b/bsd/sys/imgact.h @@ -1,23 +1,29 @@ /* - * Copyright (c) 2004 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2004-2005 Apple Computer, Inc. All rights reserved. * - * @APPLE_LICENSE_HEADER_START@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * - * The contents of this file constitute Original Code as defined in and - * are subject to the Apple Public Source License Version 1.1 (the - * "License"). You may not use this file except in compliance with the - * License. Please obtain a copy of the License at - * http://www.apple.com/publicsource and read it before using this file. + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. * - * This Original Code and all software distributed under the License are - * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the - * License for the specific language governing rights and limitations - * under the License. + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. * - * @APPLE_LICENSE_HEADER_END@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ /* * Copyright (c) 1993, David Greenman @@ -51,11 +57,18 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ +/* + * 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. + */ #ifndef _SYS_IMGACT_H_ #define _SYS_IMGACT_H_ #define IMG_SHSIZE 512 /* largest shell interpreter, in bytes */ +struct label; struct proc; struct nameidata; @@ -63,9 +76,12 @@ struct image_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 */ @@ -79,12 +95,18 @@ struct image_params { user_size_t ip_arch_size; /* subfile length in ip_vp */ char ip_interp_name[IMG_SHSIZE]; /* interpreter name */ - /* Next two fields are for support of Classic... */ + /* Next two fields are for support of architecture translation... */ char *ip_p_comm; /* optional alt p->p_comm */ - char *ip_tws_cache_name; /* task working set cache */ struct vfs_context *ip_vfs_context; /* VFS context */ struct nameidata *ip_ndp; /* current nameidata */ - thread_t ip_vfork_thread; /* thread created, if vfork */ + thread_t ip_new_thread; /* thread for spawn/vfork */ + + struct label *ip_execlabelp; /* label of the executable */ + struct label *ip_scriptlabelp; /* label of the script */ + unsigned int ip_csflags; /* code signing flags */ + void *ip_px_sa; + void *ip_px_sfa; + void *ip_px_spa; }; /* @@ -92,8 +114,12 @@ struct image_params { */ #define IMGPF_NONE 0x00000000 /* No flags */ #define IMGPF_INTERPRET 0x00000001 /* Interpreter invoked */ -#define IMGPF_RESERVED1 0x00000002 /* reserved */ +#define IMGPF_POWERPC 0x00000002 /* ppc mode for x86 */ +#if CONFIG_EMBEDDED +#undef IMGPF_POWERPC +#endif #define IMGPF_WAS_64BIT 0x00000004 /* exec from a 64Bit binary */ #define IMGPF_IS_64BIT 0x00000008 /* exec to a 64Bit binary */ +#define IMGPF_SPAWN 0x00000010 /* spawn (without setexec) */ #endif /* !_SYS_IMGACT */