00001 #ifndef _SYS_SHM_H
00002 #define _SYS_SHM_H
00003
00004 #include <sys/types.h>
00005 #include <sys/ipc.h>
00006
00007 #include <unistd.h>
00008
00009 typedef unsigned long int shmatt_t;
00010
00011 #define SHMLBA getpagesize()
00012 #define SHMMNI 4096
00013 #define SHMSEG 32
00014
00015 struct shmid_ds
00016 {
00017 struct ipc_perm shm_perm;
00018 size_t shm_segsz;
00019 time_t shm_atime;
00020 time_t shm_dtime;
00021 time_t shm_ctime;
00022 pid_t shm_cpid;
00023 pid_t shm_lpid;
00024 shmatt_t shm_nattch;
00025 };
00026
00027
00028 #define SHM_R 0400
00029 #define SHM_W 0200
00030
00031 #define SHM_RDONLY 010000
00032 #define SHM_RND 020000
00033
00034
00035 #define SHM_DEST 01000
00036 #define SHM_LOCKED 02000
00037
00038
00039 #define SHM_STAT 13
00040 #define SHM_INFO 14
00041
00042 struct shminfo
00043 {
00044 unsigned long int shmmax;
00045 unsigned long int shmmin;
00046 unsigned long int shmmni;
00047 unsigned long int shmseg;
00048 unsigned long int shmall;
00049 };
00050
00051 struct shm_info
00052 {
00053 int used_ids;
00054 unsigned long int shm_tot;
00055 unsigned long int shm_rss;
00056 unsigned long int shm_swp;
00057 unsigned long int swap_attempts;
00058 unsigned long int swap_successes;
00059 };
00060
00061
00062
00063
00064
00065
00066 _PROTOTYPE( int shmctl, (int __shmid, int __cmd, struct shmid_ds *__buf));
00067
00068
00069 _PROTOTYPE( int shmget, (key_t __key, size_t __size, int __shmflg));
00070
00071
00072 _PROTOTYPE( void *shmat, (int __shmid, const void *__shmaddr, int __shmflg));
00073
00074
00075 _PROTOTYPE( int shmdt, (const void *__shmaddr));
00076
00077 #endif