[ARM] 3109/1: old ABI compat: syscall wrappers for ABI impedance matching

Patch from Nicolas Pitre

The difference between EABI and the legacy ABI may affect either
structure member alignment and/or argument register selection.

The patch has the details.

Included are wrappers for the following syscalls:

  sys_stat64
  sys_lstat64
  sys_fstat64
  sys_fcntl64
  sys_epoll_ctl
  sys_epoll_wait
  sys_ipc
  sys_semop
  sys_semtimedop
  sys_pread64
  sys_pwrite64
  sys_truncate64
  sys_ftruncate64
  sys_readahead

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
Nicolas Pitre
2006-01-14 16:35:31 +00:00
committed by Russell King
parent 713c481519
commit 687ad01914
3 changed files with 372 additions and 0 deletions

View File

@@ -288,3 +288,35 @@ sys_mmap2:
str r5, [sp, #4]
b do_mmap2
#endif
#ifdef CONFIG_OABI_COMPAT
/*
* These are syscalls with argument register differences
*/
sys_oabi_pread64:
stmia sp, {r3, r4}
b sys_pread64
sys_oabi_pwrite64:
stmia sp, {r3, r4}
b sys_pwrite64
sys_oabi_truncate64:
mov r3, r2
mov r2, r1
b sys_truncate64
sys_oabi_ftruncate64:
mov r3, r2
mov r2, r1
b sys_ftruncate64
sys_oabi_readahead:
str r3, [sp]
mov r3, r2
mov r2, r1
b sys_readahead
#endif