Patch from Nicolas Pitre
Fix a few syscalls for EABI requirements. They were sys_pread64 and
sys_pwrite64 where the last argument is now entirely pushed on stack,
but since commit 567bd98017 they don't
require any fixup.  Remains only the stat64 structure. Non EABI kernels
are unaffected.
Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
		
	
			
		
			
				
	
	
		
			87 lines
		
	
	
	
		
			1.9 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
	
		
			1.9 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _ASMARM_STAT_H
 | 
						|
#define _ASMARM_STAT_H
 | 
						|
 | 
						|
struct __old_kernel_stat {
 | 
						|
	unsigned short st_dev;
 | 
						|
	unsigned short st_ino;
 | 
						|
	unsigned short st_mode;
 | 
						|
	unsigned short st_nlink;
 | 
						|
	unsigned short st_uid;
 | 
						|
	unsigned short st_gid;
 | 
						|
	unsigned short st_rdev;
 | 
						|
	unsigned long  st_size;
 | 
						|
	unsigned long  st_atime;
 | 
						|
	unsigned long  st_mtime;
 | 
						|
	unsigned long  st_ctime;
 | 
						|
};
 | 
						|
 | 
						|
#define STAT_HAVE_NSEC 
 | 
						|
 | 
						|
struct stat {
 | 
						|
#if defined(__ARMEB__)
 | 
						|
	unsigned short st_dev;
 | 
						|
	unsigned short __pad1;
 | 
						|
#else
 | 
						|
	unsigned long  st_dev;
 | 
						|
#endif
 | 
						|
	unsigned long  st_ino;
 | 
						|
	unsigned short st_mode;
 | 
						|
	unsigned short st_nlink;
 | 
						|
	unsigned short st_uid;
 | 
						|
	unsigned short st_gid;
 | 
						|
#if defined(__ARMEB__)
 | 
						|
	unsigned short st_rdev;
 | 
						|
	unsigned short __pad2;
 | 
						|
#else
 | 
						|
	unsigned long  st_rdev;
 | 
						|
#endif
 | 
						|
	unsigned long  st_size;
 | 
						|
	unsigned long  st_blksize;
 | 
						|
	unsigned long  st_blocks;
 | 
						|
	unsigned long  st_atime;
 | 
						|
	unsigned long  st_atime_nsec;
 | 
						|
	unsigned long  st_mtime;
 | 
						|
	unsigned long  st_mtime_nsec;
 | 
						|
	unsigned long  st_ctime;
 | 
						|
	unsigned long  st_ctime_nsec;
 | 
						|
	unsigned long  __unused4;
 | 
						|
	unsigned long  __unused5;
 | 
						|
};
 | 
						|
 | 
						|
/* This matches struct stat64 in glibc2.1, hence the absolutely
 | 
						|
 * insane amounts of padding around dev_t's.
 | 
						|
 * Note: The kernel zero's the padded region because glibc might read them
 | 
						|
 * in the hope that the kernel has stretched to using larger sizes.
 | 
						|
 */
 | 
						|
struct stat64 {
 | 
						|
	unsigned long long	st_dev;
 | 
						|
	unsigned char   __pad0[4];
 | 
						|
 | 
						|
#define STAT64_HAS_BROKEN_ST_INO	1
 | 
						|
	unsigned long	__st_ino;
 | 
						|
	unsigned int	st_mode;
 | 
						|
	unsigned int	st_nlink;
 | 
						|
 | 
						|
	unsigned long	st_uid;
 | 
						|
	unsigned long	st_gid;
 | 
						|
 | 
						|
	unsigned long long	st_rdev;
 | 
						|
	unsigned char   __pad3[4];
 | 
						|
 | 
						|
	long long	st_size;
 | 
						|
	unsigned long	st_blksize;
 | 
						|
	unsigned long long st_blocks;	/* Number 512-byte blocks allocated. */
 | 
						|
 | 
						|
	unsigned long	st_atime;
 | 
						|
	unsigned long	st_atime_nsec;
 | 
						|
 | 
						|
	unsigned long	st_mtime;
 | 
						|
	unsigned long	st_mtime_nsec;
 | 
						|
 | 
						|
	unsigned long	st_ctime;
 | 
						|
	unsigned long	st_ctime_nsec;
 | 
						|
 | 
						|
	unsigned long long	st_ino;
 | 
						|
};
 | 
						|
 | 
						|
#endif
 |