1    	/* Copyright (C) 1995, 1996, 1997, 2000, 2002, 2004
2    	   Free Software Foundation, Inc.
3    	   This file is part of the GNU C Library.
4    	
5    	   The GNU C Library is free software; you can redistribute it and/or
6    	   modify it under the terms of the GNU Lesser General Public
7    	   License as published by the Free Software Foundation; either
8    	   version 2.1 of the License, or (at your option) any later version.
9    	
10   	   The GNU C Library is distributed in the hope that it will be useful,
11   	   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   	   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13   	   Lesser General Public License for more details.
14   	
15   	   You should have received a copy of the GNU Lesser General Public
16   	   License along with the GNU C Library; if not, write to the Free
17   	   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18   	   02111-1307 USA.  */
19   	
20   	#ifndef _SYS_SHM_H
21   	# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
22   	#endif
23   	
24   	#include <bits/types.h>
25   	
26   	/* Permission flag for shmget.  */
27   	#define SHM_R		0400		/* or S_IRUGO from <linux/stat.h> */
28   	#define SHM_W		0200		/* or S_IWUGO from <linux/stat.h> */
29   	
30   	/* Flags for `shmat'.  */
31   	#define SHM_RDONLY	010000		/* attach read-only else read-write */
32   	#define SHM_RND		020000		/* round attach address to SHMLBA */
33   	#define SHM_REMAP	040000		/* take-over region on attach */
34   	
35   	/* Commands for `shmctl'.  */
36   	#define SHM_LOCK	11		/* lock segment (root only) */
37   	#define SHM_UNLOCK	12		/* unlock segment (root only) */
38   	
39   	__BEGIN_DECLS
40   	
41   	/* Segment low boundary address multiple.  */
42   	#define SHMLBA		(__getpagesize ())
43   	extern int __getpagesize (void) __THROW __attribute__ ((__const__));
44   	
45   	
46   	/* Type to count number of attaches.  */
47   	typedef unsigned long int shmatt_t;
48   	
49   	/* Data structure describing a set of semaphores.  */
50   	struct shmid_ds
51   	  {
Event member_decl: Class member declaration for shm_perm.
Also see events: [member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member]
52   	    struct ipc_perm shm_perm;		/* operation permission struct */
Event member_decl: Class member declaration for shm_segsz.
Also see events: [member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member]
53   	    size_t shm_segsz;			/* size of segment in bytes */
Event member_decl: Class member declaration for shm_atime.
Also see events: [member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member]
54   	    __time_t shm_atime;			/* time of last shmat() */
55   	#if __WORDSIZE == 32
56   	    unsigned long int __unused1;
57   	#endif
Event member_decl: Class member declaration for shm_dtime.
Also see events: [member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member]
58   	    __time_t shm_dtime;			/* time of last shmdt() */
59   	#if __WORDSIZE == 32
60   	    unsigned long int __unused2;
61   	#endif
Event member_decl: Class member declaration for shm_ctime.
Also see events: [member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member]
62   	    __time_t shm_ctime;			/* time of last change by shmctl() */
63   	#if __WORDSIZE == 32
64   	    unsigned long int __unused3;
65   	#endif
Event member_decl: Class member declaration for shm_cpid.
Also see events: [member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member]
66   	    __pid_t shm_cpid;			/* pid of creator */
Event member_decl: Class member declaration for shm_lpid.
Also see events: [member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member]
67   	    __pid_t shm_lpid;			/* pid of last shmop */
Event member_decl: Class member declaration for shm_nattch.
Also see events: [member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member]
68   	    shmatt_t shm_nattch;		/* number of current attaches */
Event member_decl: Class member declaration for __unused4.
Also see events: [member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member]
69   	    unsigned long int __unused4;
Event member_decl: Class member declaration for __unused5.
Also see events: [member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][member_decl][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member][uninit_member]
70   	    unsigned long int __unused5;
71   	  };
72   	
73   	#ifdef __USE_MISC
74   	
75   	/* ipcs ctl commands */
76   	# define SHM_STAT 	13
77   	# define SHM_INFO 	14
78   	
79   	/* shm_mode upper byte flags */
80   	# define SHM_DEST	01000	/* segment will be destroyed on last detach */
81   	# define SHM_LOCKED	02000   /* segment will not be swapped */
82   	# define SHM_HUGETLB	04000	/* segment is mapped via hugetlb */
83   	# define SHM_NORESERVE	010000	/* don't check for reservations */
84   	
85   	struct	shminfo
86   	  {
87   	    unsigned long int shmmax;
88   	    unsigned long int shmmin;
89   	    unsigned long int shmmni;
90   	    unsigned long int shmseg;
91   	    unsigned long int shmall;
92   	    unsigned long int __unused1;
93   	    unsigned long int __unused2;
94   	    unsigned long int __unused3;
95   	    unsigned long int __unused4;
96   	  };
97   	
98   	struct shm_info
99   	  {
100  	    int used_ids;
101  	    unsigned long int shm_tot;	/* total allocated shm */
102  	    unsigned long int shm_rss;	/* total resident shm */
103  	    unsigned long int shm_swp;	/* total swapped shm */
104  	    unsigned long int swap_attempts;
105  	    unsigned long int swap_successes;
106  	  };
107  	
108  	#endif /* __USE_MISC */
109  	
110  	__END_DECLS