/*
    AUTOMATICALLY GENERATED BY tspec 2.10
    API SUBSET: xpg3:sys/ipc.h
*/

#ifndef __TDF_XPG3_SYS_IPC_H
#define __TDF_XPG3_SYS_IPC_H

#ifdef __cplusplus
extern "C" {
#endif

#pragma TenDRA declaration block api__xpg3__sys_ipc begin

#ifndef __TDF_XPG3_SYS_TYPES_H
#pragma extend interface "../../xpg3.api/sys/types.h"
#endif /* __TDF_XPG3_SYS_TYPES_H */
/* These types have been abstracted */
#if __STRICT_XPG3
typedef uid_t __local_ipc_uid_t;
typedef gid_t __local_ipc_gid_t;
typedef mode_t __local_ipc_mode_t;
#else /* __STRICT_XPG3 */
#pragma token ARITHMETIC __local_ipc_uid_t # xpg3.ipc.__local_ipc_uid_t
#pragma token ARITHMETIC __local_ipc_gid_t # xpg3.ipc.__local_ipc_gid_t
#pragma token ARITHMETIC __local_ipc_mode_t # xpg3.ipc.__local_ipc_mode_t
#pragma token PROC (EXP rvalue : __local_ipc_uid_t : ) EXP rvalue : uid_t : __ipc_uid2uid # xpg3.ipc.__ipc_uid2uid
#pragma token PROC (EXP rvalue : uid_t : ) EXP rvalue : __local_ipc_uid_t : __uid2ipc_uid # xpg3.ipc.__uid2ipc_uid
#pragma token PROC (EXP rvalue : __local_ipc_gid_t : ) EXP rvalue : gid_t : __ipc_gid2gid # xpg3.ipc.__ipc_gid2gid
#pragma token PROC (EXP rvalue : gid_t : ) EXP rvalue : __local_ipc_gid_t : __gid2ipc_gid # xpg3.ipc.__gid2ipc_gid
#pragma token PROC (EXP rvalue : __local_ipc_mode_t : ) EXP rvalue : mode_t : __ipc_mode2mode # xpg3.ipc.__ipc_mode2mode
#pragma token PROC (EXP rvalue : mode_t : ) EXP rvalue : __local_ipc_mode_t : __mode2ipc_mode # xpg3.ipc.__mode2ipc_mode
#ifndef __BUILDING_LIBS
#pragma accept conversion __ipc_uid2uid
#pragma accept conversion __uid2ipc_uid
#pragma accept conversion __ipc_gid2gid
#pragma accept conversion __gid2ipc_gid
#pragma accept conversion __ipc_mode2mode
#pragma accept conversion __mode2ipc_mode
#endif /* __BUILDING_LIBS */
#endif /* __STRICT_XPG3 */
#pragma token STRUCT TAG ipc_perm # xpg3.ipc.ipc_perm
#pragma token MEMBER __local_ipc_uid_t : struct ipc_perm : uid # xpg3.ipc.ipc_perm.uid
#pragma token MEMBER __local_ipc_gid_t : struct ipc_perm : gid # xpg3.ipc.ipc_perm.gid
#pragma token MEMBER __local_ipc_uid_t : struct ipc_perm : cuid # xpg3.ipc.ipc_perm.cuid
#pragma token MEMBER __local_ipc_gid_t : struct ipc_perm : cgid # xpg3.ipc.ipc_perm.cgid
#pragma token MEMBER __local_ipc_mode_t : struct ipc_perm : mode # xpg3.ipc.ipc_perm.mode
#pragma token EXP const : int : IPC_CREAT # xpg3.ipc.IPC_CREAT
#pragma token EXP const : int : IPC_EXCL # xpg3.ipc.IPC_EXCL
#pragma token EXP const : int : IPC_NOWAIT # xpg3.ipc.IPC_NOWAIT
#pragma token EXP const : key_t : IPC_PRIVATE # xpg3.ipc.IPC_PRIVATE
#pragma token EXP const : int : IPC_RMID # xpg3.ipc.IPC_RMID
#pragma token EXP const : int : IPC_SET # xpg3.ipc.IPC_SET
#pragma token EXP const : int : IPC_STAT # xpg3.ipc.IPC_STAT

#if __STRICT_XPG3
#else /* __STRICT_XPG3 */
#pragma interface __local_ipc_uid_t __local_ipc_gid_t __local_ipc_mode_t
#pragma interface __ipc_uid2uid __uid2ipc_uid __ipc_gid2gid __gid2ipc_gid
#pragma interface __ipc_mode2mode __mode2ipc_mode
#endif /* __STRICT_XPG3 */
#pragma interface TAG ipc_perm TAG ipc_perm.uid TAG ipc_perm.gid
#pragma interface TAG ipc_perm.cuid TAG ipc_perm.cgid TAG ipc_perm.mode
#pragma interface IPC_CREAT IPC_EXCL IPC_NOWAIT IPC_PRIVATE IPC_RMID IPC_SET
#pragma interface IPC_STAT

#pragma TenDRA declaration block end

#ifdef __cplusplus
}
#endif

#endif /* __TDF_XPG3_SYS_IPC_H */
