X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/8f6c56a50524aa785f7e596d52dddfb331e18961..7ee9d059c4eecf68ae4f8b0fb99ae2471eda79af:/bsd/sys/ipc.h?ds=sidebyside diff --git a/bsd/sys/ipc.h b/bsd/sys/ipc.h index 4a6ec9735..a43cacc55 100644 --- a/bsd/sys/ipc.h +++ b/bsd/sys/ipc.h @@ -105,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 */ @@ -125,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 @@ -145,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: @@ -165,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 @@ -184,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;