X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/ff6e181ae92fc6f1e89841290f461d1f2f9badd9..7ee9d059c4eecf68ae4f8b0fb99ae2471eda79af:/bsd/sys/ipc.h?ds=sidebyside diff --git a/bsd/sys/ipc.h b/bsd/sys/ipc.h index 69be11c94..a43cacc55 100644 --- a/bsd/sys/ipc.h +++ b/bsd/sys/ipc.h @@ -1,14 +1,19 @@ /* * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. * - * @APPLE_LICENSE_HEADER_START@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * * 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. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. + * 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. + * + * 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 @@ -18,7 +23,7 @@ * 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) 1988 University of Utah. @@ -100,18 +105,21 @@ typedef __darwin_mode_t mode_t; typedef __int32_t key_t; #endif +#pragma pack(4) + /* * Technically, we should force all code references to the new structure * definition, not in just the standards conformance case, and leave the * legacy interface there for binary compatibility only. Currently, we * are only forcing this for programs requesting standards conformance. */ -#if defined(__POSIX_C_SOURCE) || defined(kernel) || defined(__LP64__) +#if __DARWIN_UNIX03 || defined(KERNEL) /* * [XSI] Information used in determining permission to perform an IPC * operation */ -struct __ipc_perm_new { +struct ipc_perm +{ uid_t uid; /* [XSI] Owner's user ID */ gid_t gid; /* [XSI] Owner's group ID */ uid_t cuid; /* [XSI] Creator's user ID */ @@ -120,12 +128,12 @@ struct __ipc_perm_new { unsigned short _seq; /* Reserved for internal use */ key_t _key; /* Reserved for internal use */ }; -#define ipc_perm __ipc_perm_new -#else /* !_POSIX_C_SOURCE */ +#define __ipc_perm_new ipc_perm +#else /* !__DARWIN_UNIX03 */ #define ipc_perm __ipc_perm_old -#endif /* !_POSIX_C_SOURCE */ +#endif /* !__DARWIN_UNIX03 */ -#if !defined(__POSIX_C_SOURCE) && !defined(__LP64__) +#if !__DARWIN_UNIX03 /* * Legacy structure; this structure is maintained for binary backward * compatability with previous versions of the interface. New code @@ -140,7 +148,9 @@ struct __ipc_perm_old { __uint16_t seq; /* Reserved for internal use */ key_t key; /* Reserved for internal use */ }; -#endif /* !_POSIX_C_SOURCE */ +#endif /* !__DARWIN_UNIX03 */ + +#pragma pack() /* * [XSI] Definitions shall be provided for the following constants: @@ -160,14 +170,14 @@ struct __ipc_perm_old { #define IPC_STAT 2 /* Get options */ -#ifndef _POSIX_C_SOURCE +#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) /* common mode bits */ #define IPC_R 000400 /* Read permission */ #define IPC_W 000200 /* Write/alter permission */ #define IPC_M 010000 /* Modify control info permission */ -#endif /* !_POSIX_C_SOURCE */ +#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ #ifdef BSD_KERNEL_PRIVATE @@ -179,7 +189,7 @@ struct __ipc_perm_old { /* Macros to convert between ipc ids and array indices or sequence ids */ #define IPCID_TO_IX(id) ((id) & 0xffff) #define IPCID_TO_SEQ(id) (((id) >> 16) & 0xffff) -#define IXSEQ_TO_IPCID(ix,perm) (((perm.seq) << 16) | (ix & 0xffff)) +#define IXSEQ_TO_IPCID(ix,perm) (((perm._seq) << 16L) | ((ix) & 0xffff)) struct ucred;