shm.h 1019 字节
Newer Older
R
Rich Felker 已提交
1 2 3
#ifndef _SYS_SHM_H
#define _SYS_SHM_H

4 5 6 7
#ifdef __cplusplus
extern "C" {
#endif

8 9
#include <features.h>

R
Rich Felker 已提交
10 11 12 13 14 15 16 17 18
#define __NEED_time_t
#define __NEED_size_t
#define __NEED_pid_t

#include <bits/alltypes.h>

#include <sys/ipc.h>
#include <bits/shm.h>

R
Rich Felker 已提交
19 20 21
#define SHM_R 0400
#define SHM_W 0200

R
Rich Felker 已提交
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
#define SHM_RDONLY 010000
#define SHM_RND    020000
#define SHM_REMAP  040000
#define SHM_EXEC   0100000

#define SHM_LOCK 11
#define SHM_UNLOCK 12
#define SHM_STAT 13
#define SHM_INFO 14
#define SHM_DEST 01000
#define SHM_LOCKED 02000
#define SHM_HUGETLB 04000
#define SHM_NORESERVE 010000

struct shminfo {
	unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
};

struct shm_info {
	int used_ids;
	unsigned long shm_tot, shm_rss, shm_swp;
#ifdef _GNU_SOURCE
	unsigned long swap_attempts, swap_successes;
#else
	unsigned long __reserved[2];
#endif
};

R
Rich Felker 已提交
50 51 52 53 54
void *shmat(int, const void *, int);
int shmctl(int, int, struct shmid_ds *);
int shmdt(const void *);
int shmget(key_t, size_t, int);

55 56 57 58
#ifdef __cplusplus
}
#endif

R
Rich Felker 已提交
59
#endif