diff options
Diffstat (limited to 'arch/x86/include/asm/shmbuf.h')
-rw-r--r-- | arch/x86/include/asm/shmbuf.h | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/arch/x86/include/asm/shmbuf.h b/arch/x86/include/asm/shmbuf.h index b51413b74971..5768fa60ac82 100644 --- a/arch/x86/include/asm/shmbuf.h +++ b/arch/x86/include/asm/shmbuf.h | |||
@@ -1,32 +1,40 @@ | |||
1 | #ifndef _ASM_X86_SHMBUF_H | 1 | #ifndef __ASM_GENERIC_SHMBUF_H |
2 | #define _ASM_X86_SHMBUF_H | 2 | #define __ASM_GENERIC_SHMBUF_H |
3 | |||
4 | #include <asm/bitsperlong.h> | ||
3 | 5 | ||
4 | /* | 6 | /* |
5 | * The shmid64_ds structure for x86 architecture. | 7 | * The shmid64_ds structure for x86 architecture. |
6 | * Note extra padding because this structure is passed back and forth | 8 | * Note extra padding because this structure is passed back and forth |
7 | * between kernel and user space. | 9 | * between kernel and user space. |
8 | * | 10 | * |
9 | * Pad space on 32 bit is left for: | 11 | * shmid64_ds was originally meant to be architecture specific, but |
12 | * everyone just ended up making identical copies without specific | ||
13 | * optimizations, so we may just as well all use the same one. | ||
14 | * | ||
15 | * 64 bit architectures typically define a 64 bit __kernel_time_t, | ||
16 | * so they do not need the first two padding words. | ||
17 | * On big-endian systems, the padding is in the wrong place. | ||
18 | * | ||
19 | * | ||
20 | * Pad space is left for: | ||
10 | * - 64-bit time_t to solve y2038 problem | 21 | * - 64-bit time_t to solve y2038 problem |
11 | * - 2 miscellaneous 32-bit values | 22 | * - 2 miscellaneous 32-bit values |
12 | * | ||
13 | * Pad space on 64 bit is left for: | ||
14 | * - 2 miscellaneous 64-bit values | ||
15 | */ | 23 | */ |
16 | 24 | ||
17 | struct shmid64_ds { | 25 | struct shmid64_ds { |
18 | struct ipc64_perm shm_perm; /* operation perms */ | 26 | struct ipc64_perm shm_perm; /* operation perms */ |
19 | size_t shm_segsz; /* size of segment (bytes) */ | 27 | size_t shm_segsz; /* size of segment (bytes) */ |
20 | __kernel_time_t shm_atime; /* last attach time */ | 28 | __kernel_time_t shm_atime; /* last attach time */ |
21 | #ifdef __i386__ | 29 | #if __BITS_PER_LONG != 64 |
22 | unsigned long __unused1; | 30 | unsigned long __unused1; |
23 | #endif | 31 | #endif |
24 | __kernel_time_t shm_dtime; /* last detach time */ | 32 | __kernel_time_t shm_dtime; /* last detach time */ |
25 | #ifdef __i386__ | 33 | #if __BITS_PER_LONG != 64 |
26 | unsigned long __unused2; | 34 | unsigned long __unused2; |
27 | #endif | 35 | #endif |
28 | __kernel_time_t shm_ctime; /* last change time */ | 36 | __kernel_time_t shm_ctime; /* last change time */ |
29 | #ifdef __i386__ | 37 | #if __BITS_PER_LONG != 64 |
30 | unsigned long __unused3; | 38 | unsigned long __unused3; |
31 | #endif | 39 | #endif |
32 | __kernel_pid_t shm_cpid; /* pid of creator */ | 40 | __kernel_pid_t shm_cpid; /* pid of creator */ |
@@ -48,4 +56,4 @@ struct shminfo64 { | |||
48 | unsigned long __unused4; | 56 | unsigned long __unused4; |
49 | }; | 57 | }; |
50 | 58 | ||
51 | #endif /* _ASM_X86_SHMBUF_H */ | 59 | #endif /* __ASM_GENERIC_SHMBUF_H */ |