|
nsz |
f81126 |
#include <sys/shm.h>
|
|
nsz |
f81126 |
#define T(t) (t*)0;
|
|
nsz |
f81126 |
#define F(t,n) {t *y = &x.;;}
|
|
nsz |
f81126 |
#define C(n) switch(n){case n:;}
|
|
nsz |
f81126 |
static void f()
|
|
nsz |
f81126 |
{
|
|
nsz |
f81126 |
T(shmatt_t)
|
|
nsz |
f81126 |
T(pid_t)
|
|
nsz |
f81126 |
T(size_t)
|
|
nsz |
f81126 |
T(time_t)
|
|
nsz |
f81126 |
C(SHM_RDONLY)
|
|
nsz |
f81126 |
C(SHM_RND)
|
|
nsz |
f81126 |
C(SHMLBA)
|
|
nsz |
f81126 |
{
|
|
nsz |
f81126 |
struct shmid_ds x;
|
|
nsz |
f81126 |
F(struct ipc_perm, shm_perm)
|
|
nsz |
f81126 |
F(size_t,shm_segsz)
|
|
nsz |
f81126 |
F(pid_t, shm_lpid)
|
|
nsz |
f81126 |
F(pid_t, shm_cpid)
|
|
nsz |
f81126 |
F(shmatt_t,shm_nattch)
|
|
nsz |
f81126 |
F(time_t,shm_atime)
|
|
nsz |
f81126 |
F(time_t,shm_dtime)
|
|
nsz |
f81126 |
F(time_t,shm_ctime)
|
|
nsz |
f81126 |
}
|
|
nsz |
f81126 |
void*(*p_shmat)(int,const void*,int) = shmat;
|
|
nsz |
f81126 |
int(*p_shmctl)(int,int,struct shmid_ds*) = shmctl;
|
|
nsz |
f81126 |
int(*p_shmdt)(const void*) = shmdt;
|
|
nsz |
f81126 |
int(*p_shmget)(key_t,size_t,int) = shmget;
|
|
nsz |
f81126 |
|
|
nsz |
f81126 |
T(uid_t)
|
|
nsz |
f81126 |
T(gid_t)
|
|
nsz |
f81126 |
T(mode_t)
|
|
nsz |
f81126 |
T(key_t)
|
|
nsz |
f81126 |
{
|
|
nsz |
f81126 |
struct ipc_perm x;
|
|
nsz |
f81126 |
F(uid_t,uid)
|
|
nsz |
f81126 |
F(gid_t,gid)
|
|
nsz |
f81126 |
F(uid_t,cuid)
|
|
nsz |
f81126 |
F(gid_t,cgid)
|
|
nsz |
f81126 |
F(mode_t, mode)
|
|
nsz |
f81126 |
}
|
|
nsz |
f81126 |
C(IPC_CREAT)
|
|
nsz |
f81126 |
C(IPC_EXCL)
|
|
nsz |
f81126 |
C(IPC_NOWAIT)
|
|
nsz |
f81126 |
C(IPC_PRIVATE)
|
|
nsz |
f81126 |
C(IPC_RMID)
|
|
nsz |
f81126 |
C(IPC_SET)
|
|
nsz |
f81126 |
C(IPC_STAT)
|
|
nsz |
f81126 |
key_t(*p_ftok)(const char*,int) = ftok;
|
|
nsz |
f81126 |
}
|