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 */
 |