1868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#ifndef __ASM_GENERIC_IPCBUF_H
2868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#define __ASM_GENERIC_IPCBUF_H
3868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
4868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)/*
51e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) * The generic ipc64_perm structure:
6868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) * Note extra padding because this structure is passed back and forth
70529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch * between kernel and user space.
8424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) *
9424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) * ipc64_perm was originally meant to be architecture specific, but
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * everyone just ended up making identical copies without specific
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch * optimizations, so we may just as well all use the same one.
12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch *
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch * Pad space is left for:
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch * - 32-bit mode_t on architectures that only had 16 bit
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) * - 32-bit seq
166e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) * - 2 miscellaneous 32-bit values
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) */
18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
191e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)struct ipc64_perm {
20a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)	__kernel_key_t		key;
21a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)	__kernel_uid32_t	uid;
22a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)	__kernel_gid32_t	gid;
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)	__kernel_uid32_t	cuid;
24effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch	__kernel_gid32_t	cgid;
25effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch	__kernel_mode_t		mode;
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch				/* pad if mode_t is u16: */
27868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)	unsigned char		__pad1[4 - sizeof(__kernel_mode_t)];
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)	unsigned short		seq;
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch	unsigned short		__pad2;
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch	__kernel_ulong_t	__unused1;
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch	__kernel_ulong_t	__unused2;
320529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch};
334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif /* __ASM_GENERIC_IPCBUF_H */
35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)