2009-06-18 23:48:17 +04:00
# ifndef __ASM_GENERIC_SHMBUF_H
# define __ASM_GENERIC_SHMBUF_H
# include <asm/bitsperlong.h>
2007-10-24 00:37:24 +04:00
/*
* The shmid64_ds structure for x86 architecture .
* Note extra padding because this structure is passed back and forth
* between kernel and user space .
*
2009-06-18 23:48:17 +04:00
* shmid64_ds was originally meant to be architecture specific , but
* everyone just ended up making identical copies without specific
* optimizations , so we may just as well all use the same one .
*
* 64 bit architectures typically define a 64 bit __kernel_time_t ,
* so they do not need the first two padding words .
* On big - endian systems , the padding is in the wrong place .
*
*
* Pad space is left for :
2007-10-24 00:37:24 +04:00
* - 64 - bit time_t to solve y2038 problem
* - 2 miscellaneous 32 - bit values
*/
struct shmid64_ds {
struct ipc64_perm shm_perm ; /* operation perms */
size_t shm_segsz ; /* size of segment (bytes) */
__kernel_time_t shm_atime ; /* last attach time */
2009-06-18 23:48:17 +04:00
# if __BITS_PER_LONG != 64
2007-10-24 00:37:24 +04:00
unsigned long __unused1 ;
2007-10-11 13:20:03 +04:00
# endif
2007-10-24 00:37:24 +04:00
__kernel_time_t shm_dtime ; /* last detach time */
2009-06-18 23:48:17 +04:00
# if __BITS_PER_LONG != 64
2007-10-24 00:37:24 +04:00
unsigned long __unused2 ;
# endif
__kernel_time_t shm_ctime ; /* last change time */
2009-06-18 23:48:17 +04:00
# if __BITS_PER_LONG != 64
2007-10-24 00:37:24 +04:00
unsigned long __unused3 ;
# endif
__kernel_pid_t shm_cpid ; /* pid of creator */
__kernel_pid_t shm_lpid ; /* pid of last operator */
unsigned long shm_nattch ; /* no. of current attaches */
unsigned long __unused4 ;
unsigned long __unused5 ;
} ;
struct shminfo64 {
unsigned long shmmax ;
unsigned long shmmin ;
unsigned long shmmni ;
unsigned long shmseg ;
unsigned long shmall ;
unsigned long __unused1 ;
unsigned long __unused2 ;
unsigned long __unused3 ;
unsigned long __unused4 ;
} ;
2009-06-18 23:48:17 +04:00
# endif /* __ASM_GENERIC_SHMBUF_H */