 2864d32be3
			
		
	
	
	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>
		
			
				
	
	
		
			59 lines
		
	
	
	
		
			1.7 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
	
		
			1.7 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef __ASM_GENERIC_SHMBUF_H
 | |
| #define __ASM_GENERIC_SHMBUF_H
 | |
| 
 | |
| #include <asm/bitsperlong.h>
 | |
| 
 | |
| /*
 | |
|  * The shmid64_ds structure for x86 architecture.
 | |
|  * Note extra padding because this structure is passed back and forth
 | |
|  * between kernel and user space.
 | |
|  *
 | |
|  * shmid64_ds 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.
 | |
|  *
 | |
|  * 64 bit architectures typically define a 64 bit __kernel_time_t,
 | |
|  * so they do not need the first two padding words.
 | |
|  * On big-endian systems, the padding is in the wrong place.
 | |
|  *
 | |
|  *
 | |
|  * Pad space is left for:
 | |
|  * - 64-bit time_t to solve y2038 problem
 | |
|  * - 2 miscellaneous 32-bit values
 | |
|  */
 | |
| 
 | |
| struct shmid64_ds {
 | |
| 	struct ipc64_perm	shm_perm;	/* operation perms */
 | |
| 	size_t			shm_segsz;	/* size of segment (bytes) */
 | |
| 	__kernel_time_t		shm_atime;	/* last attach time */
 | |
| #if __BITS_PER_LONG != 64
 | |
| 	unsigned long		__unused1;
 | |
| #endif
 | |
| 	__kernel_time_t		shm_dtime;	/* last detach time */
 | |
| #if __BITS_PER_LONG != 64
 | |
| 	unsigned long		__unused2;
 | |
| #endif
 | |
| 	__kernel_time_t		shm_ctime;	/* last change time */
 | |
| #if __BITS_PER_LONG != 64
 | |
| 	unsigned long		__unused3;
 | |
| #endif
 | |
| 	__kernel_pid_t		shm_cpid;	/* pid of creator */
 | |
| 	__kernel_pid_t		shm_lpid;	/* pid of last operator */
 | |
| 	unsigned long		shm_nattch;	/* no. of current attaches */
 | |
| 	unsigned long		__unused4;
 | |
| 	unsigned long		__unused5;
 | |
| };
 | |
| 
 | |
| struct shminfo64 {
 | |
| 	unsigned long	shmmax;
 | |
| 	unsigned long	shmmin;
 | |
| 	unsigned long	shmmni;
 | |
| 	unsigned long	shmseg;
 | |
| 	unsigned long	shmall;
 | |
| 	unsigned long	__unused1;
 | |
| 	unsigned long	__unused2;
 | |
| 	unsigned long	__unused3;
 | |
| 	unsigned long	__unused4;
 | |
| };
 | |
| 
 | |
| #endif /* __ASM_GENERIC_SHMBUF_H */
 |