diff options
author | Steven Barth <steven@midlink.org> | 2014-12-17 10:02:10 +0100 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2014-12-17 10:02:10 +0100 |
commit | ad60b567be210b19d0e77f610dc80cf2f94e8f35 (patch) | |
tree | 53887d8e13526487f2c8b6cc4b828688a2d2e03d /libs/libaio/patches/002_arches_sh.patch | |
parent | 4c7282e22a4951c056f8de597a8e7695421e1f88 (diff) |
libaio: update to 0.3.110, bump copyright, add license
Signed-off-by: Steven Barth <steven@midlink.org>
Diffstat (limited to 'libs/libaio/patches/002_arches_sh.patch')
-rw-r--r-- | libs/libaio/patches/002_arches_sh.patch | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/libs/libaio/patches/002_arches_sh.patch b/libs/libaio/patches/002_arches_sh.patch new file mode 100644 index 000000000..ddf9a1131 --- /dev/null +++ b/libs/libaio/patches/002_arches_sh.patch @@ -0,0 +1,139 @@ +From: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> +Subject: Add SH supprt + +The test-suite logs can be found at: + + <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=535288> + + +--- + harness/main.c | 2 - + src/libaio.h | 4 ++ + src/syscall-sh.h | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/syscall.h | 2 + + 4 files changed, 84 insertions(+), 2 deletions(-) + + +--- a/harness/main.c ++++ b/harness/main.c +@@ -14,7 +14,7 @@ + #if __LP64__ == 0 + #if defined(__i386__) || defined(__powerpc__) || defined(__mips__) + #define KERNEL_RW_POINTER ((void *)0xc0010000) +-#elif defined(__arm__) || defined(__m68k__) || defined(__s390__) ++#elif defined(__arm__) || defined(__m68k__) || defined(__s390__) || defined(__sh__) + #define KERNEL_RW_POINTER ((void *)0x00010000) + #elif defined(__hppa__) + #define KERNEL_RW_POINTER ((void *)0x10100000) +--- a/src/libaio.h ++++ b/src/libaio.h +@@ -51,7 +51,8 @@ typedef enum io_iocb_cmd { + + /* little endian, 32 bits */ + #if defined(__i386__) || (defined(__arm__) && !defined(__ARMEB__)) || \ +- defined(__sh__) || defined(__bfin__) || defined(__MIPSEL__) || \ ++ (defined(__sh__) && defined(__LITTLE_ENDIAN__)) || \ ++ defined(__bfin__) || defined(__MIPSEL__) || \ + defined(__cris__) + #define PADDED(x, y) x; unsigned y + #define PADDEDptr(x, y) x; unsigned y +@@ -76,6 +77,7 @@ typedef enum io_iocb_cmd { + /* big endian, 32 bits */ + #elif defined(__PPC__) || defined(__s390__) || \ + (defined(__arm__) && defined(__ARMEB__)) || \ ++ (defined(__sh__) && defined (__BIG_ENDIAN__)) || \ + defined(__sparc__) || defined(__MIPSEB__) || defined(__m68k__) || \ + defined(__hppa__) || defined(__frv__) || defined(__avr32__) + #define PADDED(x, y) unsigned y; x +--- /dev/null ++++ b/src/syscall-sh.h +@@ -0,0 +1,78 @@ ++/* Copy from ./arch/sh/include/asm/unistd_32.h */ ++#define __NR_io_setup 245 ++#define __NR_io_destroy 246 ++#define __NR_io_getevents 247 ++#define __NR_io_submit 248 ++#define __NR_io_cancel 249 ++ ++#define io_syscall1(type,fname,sname,type1,arg1) \ ++type fname(type1 arg1) \ ++{ \ ++register long __sc0 __asm__ ("r3") = __NR_##sname; \ ++register long __sc4 __asm__ ("r4") = (long) arg1; \ ++__asm__ __volatile__ ("trapa #0x11" \ ++ : "=z" (__sc0) \ ++ : "0" (__sc0), "r" (__sc4) \ ++ : "memory"); \ ++ return (type) __sc0;\ ++} ++ ++#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \ ++type fname(type1 arg1,type2 arg2) \ ++{ \ ++register long __sc0 __asm__ ("r3") = __NR_##sname; \ ++register long __sc4 __asm__ ("r4") = (long) arg1; \ ++register long __sc5 __asm__ ("r5") = (long) arg2; \ ++ __asm__ __volatile__ ("trapa #0x12" \ ++ : "=z" (__sc0) \ ++ : "0" (__sc0), "r" (__sc4), "r" (__sc5) \ ++ : "memory"); \ ++ return (type) __sc0;\ ++} ++ ++#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \ ++type fname(type1 arg1,type2 arg2,type3 arg3) \ ++{ \ ++register long __sc0 __asm__ ("r3") = __NR_##sname; \ ++register long __sc4 __asm__ ("r4") = (long) arg1; \ ++register long __sc5 __asm__ ("r5") = (long) arg2; \ ++register long __sc6 __asm__ ("r6") = (long) arg3; \ ++ __asm__ __volatile__ ("trapa #0x13" \ ++ : "=z" (__sc0) \ ++ : "0" (__sc0), "r" (__sc4), "r" (__sc5), "r" (__sc6) \ ++ : "memory"); \ ++ return (type) __sc0;\ ++} ++ ++#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ ++type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ ++{ \ ++register long __sc0 __asm__ ("r3") = __NR_##sname; \ ++register long __sc4 __asm__ ("r4") = (long) arg1; \ ++register long __sc5 __asm__ ("r5") = (long) arg2; \ ++register long __sc6 __asm__ ("r6") = (long) arg3; \ ++register long __sc7 __asm__ ("r7") = (long) arg4; \ ++__asm__ __volatile__ ("trapa #0x14" \ ++ : "=z" (__sc0) \ ++ : "0" (__sc0), "r" (__sc4), "r" (__sc5), "r" (__sc6), \ ++ "r" (__sc7) \ ++ : "memory" ); \ ++ return (type) __sc0;\ ++} ++ ++#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \ ++type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ ++{ \ ++register long __sc3 __asm__ ("r3") = __NR_##sname; \ ++register long __sc4 __asm__ ("r4") = (long) arg1; \ ++register long __sc5 __asm__ ("r5") = (long) arg2; \ ++register long __sc6 __asm__ ("r6") = (long) arg3; \ ++register long __sc7 __asm__ ("r7") = (long) arg4; \ ++register long __sc0 __asm__ ("r0") = (long) arg5; \ ++__asm__ __volatile__ ("trapa #0x15" \ ++ : "=z" (__sc0) \ ++ : "0" (__sc0), "r" (__sc4), "r" (__sc5), "r" (__sc6), "r" (__sc7), \ ++ "r" (__sc3) \ ++ : "memory" ); \ ++ return (type) __sc0;\ ++} +--- a/src/syscall.h ++++ b/src/syscall.h +@@ -34,6 +34,8 @@ + #include "syscall-parisc.h" + #elif defined(__mips__) + #include "syscall-mips.h" ++#elif defined(__sh__) ++#include "syscall-sh.h" + #else + #warning "using generic syscall method" + #include "syscall-generic.h" |