vfs: do_last(): separate O_CREAT specific code
[platform/adaptation/renesas_rcar/renesas_kernel.git] / include / asm-generic / shmbuf.h
1 #ifndef __ASM_GENERIC_SHMBUF_H
2 #define __ASM_GENERIC_SHMBUF_H
3
4 #include <asm/bitsperlong.h>
5
6 /*
7  * The shmid64_ds structure for x86 architecture.
8  * Note extra padding because this structure is passed back and forth
9  * between kernel and user space.
10  *
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:
21  * - 64-bit time_t to solve y2038 problem
22  * - 2 miscellaneous 32-bit values
23  */
24
25 struct shmid64_ds {
26         struct ipc64_perm       shm_perm;       /* operation perms */
27         size_t                  shm_segsz;      /* size of segment (bytes) */
28         __kernel_time_t         shm_atime;      /* last attach time */
29 #if __BITS_PER_LONG != 64
30         unsigned long           __unused1;
31 #endif
32         __kernel_time_t         shm_dtime;      /* last detach time */
33 #if __BITS_PER_LONG != 64
34         unsigned long           __unused2;
35 #endif
36         __kernel_time_t         shm_ctime;      /* last change time */
37 #if __BITS_PER_LONG != 64
38         unsigned long           __unused3;
39 #endif
40         __kernel_pid_t          shm_cpid;       /* pid of creator */
41         __kernel_pid_t          shm_lpid;       /* pid of last operator */
42         unsigned long           shm_nattch;     /* no. of current attaches */
43         unsigned long           __unused4;
44         unsigned long           __unused5;
45 };
46
47 struct shminfo64 {
48         unsigned long   shmmax;
49         unsigned long   shmmin;
50         unsigned long   shmmni;
51         unsigned long   shmseg;
52         unsigned long   shmall;
53         unsigned long   __unused1;
54         unsigned long   __unused2;
55         unsigned long   __unused3;
56         unsigned long   __unused4;
57 };
58
59 #endif /* __ASM_GENERIC_SHMBUF_H */