Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef _PARISC_SHMBUF_H |
| 2 | #define _PARISC_SHMBUF_H |
| 3 | |
| 4 | /* |
| 5 | * The shmid64_ds structure for parisc architecture. |
| 6 | * Note extra padding because this structure is passed back and forth |
| 7 | * between kernel and user space. |
| 8 | * |
| 9 | * Pad space is left for: |
| 10 | * - 64-bit time_t to solve y2038 problem |
| 11 | * - 2 miscellaneous 32-bit values |
| 12 | */ |
| 13 | |
| 14 | struct shmid64_ds { |
| 15 | struct ipc64_perm shm_perm; /* operation perms */ |
Helge Deller | 513e7ec | 2007-01-28 15:09:20 +0100 | [diff] [blame] | 16 | #ifndef CONFIG_64BIT |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 17 | unsigned int __pad1; |
| 18 | #endif |
| 19 | __kernel_time_t shm_atime; /* last attach time */ |
Helge Deller | 513e7ec | 2007-01-28 15:09:20 +0100 | [diff] [blame] | 20 | #ifndef CONFIG_64BIT |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 21 | unsigned int __pad2; |
| 22 | #endif |
| 23 | __kernel_time_t shm_dtime; /* last detach time */ |
Helge Deller | 513e7ec | 2007-01-28 15:09:20 +0100 | [diff] [blame] | 24 | #ifndef CONFIG_64BIT |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 25 | unsigned int __pad3; |
| 26 | #endif |
| 27 | __kernel_time_t shm_ctime; /* last change time */ |
Helge Deller | 513e7ec | 2007-01-28 15:09:20 +0100 | [diff] [blame] | 28 | #ifndef CONFIG_64BIT |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 29 | unsigned int __pad4; |
| 30 | #endif |
| 31 | size_t shm_segsz; /* size of segment (bytes) */ |
| 32 | __kernel_pid_t shm_cpid; /* pid of creator */ |
| 33 | __kernel_pid_t shm_lpid; /* pid of last operator */ |
| 34 | unsigned int shm_nattch; /* no. of current attaches */ |
| 35 | unsigned int __unused1; |
| 36 | unsigned int __unused2; |
| 37 | }; |
| 38 | |
Helge Deller | 513e7ec | 2007-01-28 15:09:20 +0100 | [diff] [blame] | 39 | #ifdef CONFIG_64BIT |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 40 | /* The 'unsigned int' (formerly 'unsigned long') data types below will |
| 41 | * ensure that a 32-bit app calling shmctl(*,IPC_INFO,*) will work on |
| 42 | * a wide kernel, but if some of these values are meant to contain pointers |
| 43 | * they may need to be 'long long' instead. -PB XXX FIXME |
| 44 | */ |
| 45 | #endif |
| 46 | struct shminfo64 { |
| 47 | unsigned int shmmax; |
| 48 | unsigned int shmmin; |
| 49 | unsigned int shmmni; |
| 50 | unsigned int shmseg; |
| 51 | unsigned int shmall; |
| 52 | unsigned int __unused1; |
| 53 | unsigned int __unused2; |
| 54 | unsigned int __unused3; |
| 55 | unsigned int __unused4; |
| 56 | }; |
| 57 | |
| 58 | #endif /* _PARISC_SHMBUF_H */ |