123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
|
/**
* D header file for POSIX.
*
* Copyright: Public Domain
* License: Public Domain
* Authors: Sean Kelly
* Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
*/
module tango.stdc.posix.sys.ipc;
private import tango.stdc.posix.config;
public import tango.stdc.posix.sys.types; // for uid_t, gid_t, mode_t, key_t
private import tango.core.Octal;
extern (C):
//
// XOpen (XSI)
//
/*
struct ipc_perm
{
uid_t uid;
gid_t gid;
uid_t cuid;
gid_t cgid;
mode_t mode;
}
IPC_CREAT
IPC_EXCL
IPC_NOWAIT
IPC_PRIVATE
IPC_RMID
IPC_SET
IPC_STAT
key_t ftok(in char*, int);
*/
version( linux )
{
struct ipc_perm
{
key_t __key;
uid_t uid;
gid_t gid;
uid_t cuid;
gid_t cgid;
ushort mode;
ushort __pad1;
ushort __seq;
ushort __pad2;
c_ulong __unused1;
c_ulong __unused2;
}
const IPC_CREAT = octal!1000;
const IPC_EXCL = octal!2000;
const IPC_NOWAIT = octal!4000;
const key_t IPC_PRIVATE = 0;
const IPC_RMID = 0;
const IPC_SET = 1;
const IPC_STAT = 2;
key_t ftok(in char*, int);
}
else version( darwin )
{
}
else version( FreeBSD )
{
struct ipc_perm
{
ushort cuid;
ushort cguid;
ushort uid;
ushort gid;
ushort mode;
ushort seq;
key_t key;
}
const IPC_CREAT = octal!1000;
const IPC_EXCL = octal!2000;
const IPC_NOWAIT = octal!4000;
const key_t IPC_PRIVATE = 0;
const IPC_RMID = 0;
const IPC_SET = 1;
const IPC_STAT = 2;
key_t ftok(in char*, int);
}
else version( solaris )
{
struct ipc_perm
{
uid_t uid; /* owner's user id */
gid_t gid; /* owner's group id */
uid_t cuid; /* creator's user id */
gid_t cgid; /* creator's group id */
mode_t mode; /* access modes */
uint seq; /* slot usage sequence number */
key_t key; /* key */
version(X86_64){} else version(X86) {
int[4] pad; /* reserve area */
}
}
const IPC_CREAT = octal!1000;
const IPC_EXCL = octal!2000;
const IPC_NOWAIT = octal!4000;
const key_t IPC_PRIVATE = 0;
const IPC_RMID = 10;
const IPC_SET = 11;
const IPC_STAT = 12;
key_t ftok(in char*, int);
}
|