summaryrefslogtreecommitdiff
path: root/os/windows/posix/include/sys/shm.h
blob: 6f6b032846837c32b2e39960c9a520cf68f174a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#ifndef SYS_SHM_H
#define SYS_SHM_H

#define IPC_RMID        0x1
#define IPC_CREAT       0x2
#define IPC_PRIVATE     0x4

typedef int uid_t;
typedef int gid_t;

typedef int shmatt_t;
typedef int key_t;

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;   //read/write permission
};


struct shmid_ds
{
	struct ipc_perm shm_perm;   //operation permission structure
	size_t          shm_segsz;  //size of segment in bytes
	pid_t           shm_lpid;   //process ID of last shared memory operation
	pid_t           shm_cpid;   //process ID of creator
	shmatt_t        shm_nattch; //number of current attaches
	time_t          shm_atime;  //time of last shmat()
	time_t          shm_dtime;  //time of last shmdt()
	time_t          shm_ctime;  //time of last change by shmctl()
};

int shmctl(int shmid, int cmd, struct shmid_ds *buf);
int shmget(key_t key, size_t size, int shmflg);
void *shmat(int shmid, const void *shmaddr, int shmflg);
int shmdt(const void *shmaddr);

#endif /* SYS_SHM_H */