mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 08:44:21 +08:00
2864d32be3
The ipc64 data structures were originally meant to be architecture specific so that each architecture could add their own optimizations for padding. In the end, most of them just copied the x86 version, and most got that wrong. UClibc expects the x86 anyway, so we might just declare that the default and get rid of the extra copies. Signed-off-by: Remis Lima Baima <remis.developer@googlemail.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
35 lines
936 B
C
35 lines
936 B
C
#ifndef __ASM_GENERIC_IPCBUF_H
|
|
#define __ASM_GENERIC_IPCBUF_H
|
|
|
|
/*
|
|
* The generic ipc64_perm structure:
|
|
* Note extra padding because this structure is passed back and forth
|
|
* between kernel and user space.
|
|
*
|
|
* ipc64_perm 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.
|
|
*
|
|
* Pad space is left for:
|
|
* - 32-bit mode_t on architectures that only had 16 bit
|
|
* - 32-bit seq
|
|
* - 2 miscellaneous 32-bit values
|
|
*/
|
|
|
|
struct ipc64_perm {
|
|
__kernel_key_t key;
|
|
__kernel_uid32_t uid;
|
|
__kernel_gid32_t gid;
|
|
__kernel_uid32_t cuid;
|
|
__kernel_gid32_t cgid;
|
|
__kernel_mode_t mode;
|
|
/* pad if mode_t is u16: */
|
|
unsigned char __pad1[4 - sizeof(__kernel_mode_t)];
|
|
unsigned short seq;
|
|
unsigned short __pad2;
|
|
unsigned long __unused1;
|
|
unsigned long __unused2;
|
|
};
|
|
|
|
#endif /* __ASM_GENERIC_IPCBUF_H */
|