Accepting request 65000 from home:jengelh:dev

Thank you for your contribution.

OBS-URL: https://build.opensuse.org/request/show/65000
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libaio?expand=0&rev=9
This commit is contained in:
Marcus Rückert 2011-03-23 13:22:01 +00:00 committed by Git OBS Bridge
parent ff01efb0a7
commit c71640f0ef
8 changed files with 248 additions and 354 deletions

View File

@ -1,16 +1,72 @@
--- ---
harness/main.c | 8 + harness/main.c | 8 +
src/libaio.h | 34 +++++++ src/libaio.h | 24 +++++
src/syscall-arm.h | 116 ++++++++++++++++++++++++++
src/syscall-m68k.h | 78 +++++++++++++++++ src/syscall-m68k.h | 78 +++++++++++++++++
src/syscall-mips.h | 223 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/syscall-mips.h | 223 +++++++++++++++++++++++++++++++++++++++++++++++++++
src/syscall-parisc.h | 146 +++++++++++++++++++++++++++++++++ src/syscall-parisc.h | 146 +++++++++++++++++++++++++++++++++
src/syscall-sparc.h | 130 +++++++++++++++++++++++++++++ src/syscall-sparc.h | 130 +++++++++++++++++++++++++++++
src/syscall.h | 10 ++ src/syscall.h | 8 +
8 files changed, 744 insertions(+), 1 deletion(-) 7 files changed, 617 insertions(+)
Index: libaio-0.3.109/harness/main.c
===================================================================
--- libaio-0.3.109.orig/harness/main.c
+++ libaio-0.3.109/harness/main.c
@@ -12,7 +12,15 @@
#include <libaio.h>
#if __LP64__ == 0
+#if defined(__i386__) || defined(__pwoerpc__) || defined(__mips__)
#define KERNEL_RW_POINTER ((void *)0xc0010000)
+#elif defined(__arm__) || defined(__m68k__) || defined(__s390__)
+#define KERNEL_RW_POINTER ((void *)0x00010000)
+#elif defined(__hppa__)
+#define KERNEL_RW_POINTER ((void *)0x10100000)
+#elif defined(__sparc__)
+#define KERNEL_RW_POINTER ((void *)0xf0010000)
+#endif
#else
//#warning Not really sure where kernel memory is. Guessing.
#define KERNEL_RW_POINTER ((void *)0xffffffff81000000)
Index: libaio-0.3.109/src/libaio.h
===================================================================
--- libaio-0.3.109.orig/src/libaio.h
+++ libaio-0.3.109/src/libaio.h
@@ -83,6 +83,30 @@ typedef enum io_iocb_cmd {
#define PADDEDptr(x, y) x; unsigned y
#define PADDEDul(x, y) unsigned long x; unsigned y
# endif
+#elif defined(__m68k__) /* big endian, 32 bits */
+#define PADDED(x, y) unsigned y; x
+#define PADDEDptr(x, y) unsigned y; x
+#define PADDEDul(x, y) unsigned y; unsigned long x
+#elif defined(__sparc__) /* big endian, 32 bits */
+#define PADDED(x, y) unsigned y; x
+#define PADDEDptr(x, y) unsigned y; x
+#define PADDEDul(x, y) unsigned y; unsigned long x
+#elif defined(__hppa__) /* big endian, 32 bits */
+#define PADDED(x, y) unsigned y; x
+#define PADDEDptr(x, y) unsigned y; x
+#define PADDEDul(x, y) unsigned y; unsigned long x
+#elif defined(__mips__)
+# if defined (__MIPSEB__) /* big endian, 32 bits */
+#define PADDED(x, y) unsigned y; x
+#define PADDEDptr(x, y) unsigned y; x
+#define PADDEDul(x, y) unsigned y; unsigned long x
+# elif defined(__MIPSEL__) /* little endian, 32 bits */
+#define PADDED(x, y) x; unsigned y
+#define PADDEDptr(x, y) x; unsigned y
+#define PADDEDul(x, y) unsigned long x; unsigned y
+# else
+# error "neither mipseb nor mipsel?"
+# endif
#else
#error endian?
#endif
Index: libaio-0.3.109/src/syscall-m68k.h
===================================================================
--- /dev/null --- /dev/null
+++ b/src/syscall-m68k.h +++ libaio-0.3.109/src/syscall-m68k.h
@@ -0,0 +1,78 @@ @@ -0,0 +1,78 @@
+#define __NR_io_setup 241 +#define __NR_io_setup 241
+#define __NR_io_destroy 242 +#define __NR_io_destroy 242
@ -90,160 +146,10 @@
+return (type) __res; \ +return (type) __res; \
+} +}
+ +
Index: libaio-0.3.109/src/syscall-mips.h
===================================================================
--- /dev/null --- /dev/null
+++ b/src/syscall-sparc.h +++ libaio-0.3.109/src/syscall-mips.h
@@ -0,0 +1,130 @@
+/* $Id: unistd.h,v 1.74 2002/02/08 03:57:18 davem Exp $ */
+
+/*
+ * System calls under the Sparc.
+ *
+ * Don't be scared by the ugly clobbers, it is the only way I can
+ * think of right now to force the arguments into fixed registers
+ * before the trap into the system call with gcc 'asm' statements.
+ *
+ * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
+ *
+ * SunOS compatibility based upon preliminary work which is:
+ *
+ * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
+ */
+
+
+#define __NR_io_setup 268
+#define __NR_io_destroy 269
+#define __NR_io_submit 270
+#define __NR_io_cancel 271
+#define __NR_io_getevents 272
+
+
+#define io_syscall1(type,fname,sname,type1,arg1) \
+type fname(type1 arg1) \
+{ \
+long __res; \
+register long __g1 __asm__ ("g1") = __NR_##sname; \
+register long __o0 __asm__ ("o0") = (long)(arg1); \
+__asm__ __volatile__ ("t 0x10\n\t" \
+ "bcc 1f\n\t" \
+ "mov %%o0, %0\n\t" \
+ "sub %%g0, %%o0, %0\n\t" \
+ "1:\n\t" \
+ : "=r" (__res), "=&r" (__o0) \
+ : "1" (__o0), "r" (__g1) \
+ : "cc"); \
+if (__res < -255 || __res >= 0) \
+ return (type) __res; \
+return -1; \
+}
+
+#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \
+type fname(type1 arg1,type2 arg2) \
+{ \
+long __res; \
+register long __g1 __asm__ ("g1") = __NR_##sname; \
+register long __o0 __asm__ ("o0") = (long)(arg1); \
+register long __o1 __asm__ ("o1") = (long)(arg2); \
+__asm__ __volatile__ ("t 0x10\n\t" \
+ "bcc 1f\n\t" \
+ "mov %%o0, %0\n\t" \
+ "sub %%g0, %%o0, %0\n\t" \
+ "1:\n\t" \
+ : "=r" (__res), "=&r" (__o0) \
+ : "1" (__o0), "r" (__o1), "r" (__g1) \
+ : "cc"); \
+if (__res < -255 || __res >= 0) \
+ return (type) __res; \
+return -1; \
+}
+
+#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \
+type fname(type1 arg1,type2 arg2,type3 arg3) \
+{ \
+long __res; \
+register long __g1 __asm__ ("g1") = __NR_##sname; \
+register long __o0 __asm__ ("o0") = (long)(arg1); \
+register long __o1 __asm__ ("o1") = (long)(arg2); \
+register long __o2 __asm__ ("o2") = (long)(arg3); \
+__asm__ __volatile__ ("t 0x10\n\t" \
+ "bcc 1f\n\t" \
+ "mov %%o0, %0\n\t" \
+ "sub %%g0, %%o0, %0\n\t" \
+ "1:\n\t" \
+ : "=r" (__res), "=&r" (__o0) \
+ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__g1) \
+ : "cc"); \
+if (__res < -255 || __res>=0) \
+ return (type) __res; \
+return -1; \
+}
+
+#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+{ \
+long __res; \
+register long __g1 __asm__ ("g1") = __NR_##sname; \
+register long __o0 __asm__ ("o0") = (long)(arg1); \
+register long __o1 __asm__ ("o1") = (long)(arg2); \
+register long __o2 __asm__ ("o2") = (long)(arg3); \
+register long __o3 __asm__ ("o3") = (long)(arg4); \
+__asm__ __volatile__ ("t 0x10\n\t" \
+ "bcc 1f\n\t" \
+ "mov %%o0, %0\n\t" \
+ "sub %%g0, %%o0, %0\n\t" \
+ "1:\n\t" \
+ : "=r" (__res), "=&r" (__o0) \
+ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__g1) \
+ : "cc"); \
+if (__res < -255 || __res>=0) \
+ return (type) __res; \
+return -1; \
+}
+
+#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) \
+{ \
+long __res; \
+register long __g1 __asm__ ("g1") = __NR_##sname; \
+register long __o0 __asm__ ("o0") = (long)(arg1); \
+register long __o1 __asm__ ("o1") = (long)(arg2); \
+register long __o2 __asm__ ("o2") = (long)(arg3); \
+register long __o3 __asm__ ("o3") = (long)(arg4); \
+register long __o4 __asm__ ("o4") = (long)(arg5); \
+__asm__ __volatile__ ("t 0x10\n\t" \
+ "bcc 1f\n\t" \
+ "mov %%o0, %0\n\t" \
+ "sub %%g0, %%o0, %0\n\t" \
+ "1:\n\t" \
+ : "=r" (__res), "=&r" (__o0) \
+ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__o4), "r" (__g1) \
+ : "cc"); \
+if (__res < -255 || __res>=0) \
+ return (type) __res; \
+return -1; \
+}
+
--- a/src/syscall.h
+++ b/src/syscall.h
@@ -22,6 +22,16 @@
#include "syscall-s390.h"
#elif defined(__alpha__)
#include "syscall-alpha.h"
+#elif defined(__arm__)
+#include "syscall-arm.h"
+#elif defined(__m68k__)
+#include "syscall-m68k.h"
+#elif defined(__sparc__)
+#include "syscall-sparc.h"
+#elif defined(__hppa__)
+#include "syscall-parisc.h"
+#elif defined(__mips__)
+#include "syscall-mips.h"
#else
#error "add syscall-arch.h"
#endif
--- /dev/null
+++ b/src/syscall-mips.h
@@ -0,0 +1,223 @@ @@ -0,0 +1,223 @@
+/* +/*
+ * This file is subject to the terms and conditions of the GNU General Public + * This file is subject to the terms and conditions of the GNU General Public
@ -468,51 +374,10 @@
+ +
+#endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */ +#endif /* (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64) */
+ +
--- a/src/libaio.h Index: libaio-0.3.109/src/syscall-parisc.h
+++ b/src/libaio.h ===================================================================
@@ -73,6 +73,40 @@ typedef enum io_iocb_cmd {
#define PADDED(x, y) unsigned y; x
#define PADDEDptr(x, y) unsigned y; x
#define PADDEDul(x, y) unsigned y; unsigned long x
+#elif defined(__arm__)
+# if defined (__ARMEB__) /* big endian, 32 bits */
+#define PADDED(x, y) unsigned y; x
+#define PADDEDptr(x, y) unsigned y; x
+#define PADDEDul(x, y) unsigned y; unsigned long x
+# else /* little endian, 32 bits */
+#define PADDED(x, y) x; unsigned y
+#define PADDEDptr(x, y) x; unsigned y
+#define PADDEDul(x, y) unsigned long x; unsigned y
+# endif
+#elif defined(__m68k__) /* big endian, 32 bits */
+#define PADDED(x, y) unsigned y; x
+#define PADDEDptr(x, y) unsigned y; x
+#define PADDEDul(x, y) unsigned y; unsigned long x
+#elif defined(__sparc__) /* big endian, 32 bits */
+#define PADDED(x, y) unsigned y; x
+#define PADDEDptr(x, y) unsigned y; x
+#define PADDEDul(x, y) unsigned y; unsigned long x
+#elif defined(__hppa__) /* big endian, 32 bits */
+#define PADDED(x, y) unsigned y; x
+#define PADDEDptr(x, y) unsigned y; x
+#define PADDEDul(x, y) unsigned y; unsigned long x
+#elif defined(__mips__)
+# if defined (__MIPSEB__) /* big endian, 32 bits */
+#define PADDED(x, y) unsigned y; x
+#define PADDEDptr(x, y) unsigned y; x
+#define PADDEDul(x, y) unsigned y; unsigned long x
+# elif defined(__MIPSEL__) /* little endian, 32 bits */
+#define PADDED(x, y) x; unsigned y
+#define PADDEDptr(x, y) x; unsigned y
+#define PADDEDul(x, y) unsigned long x; unsigned y
+# else
+# error "neither mipseb nor mipsel?"
+# endif
#else
#error endian?
#endif
--- /dev/null --- /dev/null
+++ b/src/syscall-parisc.h +++ libaio-0.3.109/src/syscall-parisc.h
@@ -0,0 +1,146 @@ @@ -0,0 +1,146 @@
+/* +/*
+ * Linux system call numbers. + * Linux system call numbers.
@ -660,140 +525,157 @@
+ return K_INLINE_SYSCALL(sname, 5, arg1, arg2, arg3, arg4, arg5); \ + return K_INLINE_SYSCALL(sname, 5, arg1, arg2, arg3, arg4, arg5); \
+} +}
+ +
Index: libaio-0.3.109/src/syscall-sparc.h
===================================================================
--- /dev/null --- /dev/null
+++ b/src/syscall-arm.h +++ libaio-0.3.109/src/syscall-sparc.h
@@ -0,0 +1,116 @@ @@ -0,0 +1,130 @@
+/* $Id: unistd.h,v 1.74 2002/02/08 03:57:18 davem Exp $ */
+
+/* +/*
+ * linux/include/asm-arm/unistd.h + * System calls under the Sparc.
+ * + *
+ * Copyright (C) 2001-2005 Russell King + * Don't be scared by the ugly clobbers, it is the only way I can
+ * think of right now to force the arguments into fixed registers
+ * before the trap into the system call with gcc 'asm' statements.
+ * + *
+ * This program is free software; you can redistribute it and/or modify + * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ * + *
+ * Please forward _all_ changes to this file to rmk@arm.linux.org.uk, + * SunOS compatibility based upon preliminary work which is:
+ * no matter what the change is. Thanks! + *
+ * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
+ */ + */
+ +
+#define __NR_OABI_SYSCALL_BASE 0x900000
+ +
+#if defined(__thumb__) || defined(__ARM_EABI__) +#define __NR_io_setup 268
+#define __NR_SYSCALL_BASE 0 +#define __NR_io_destroy 269
+#else +#define __NR_io_submit 270
+#define __NR_SYSCALL_BASE __NR_OABI_SYSCALL_BASE +#define __NR_io_cancel 271
+#endif +#define __NR_io_getevents 272
+ +
+#define __NR_io_setup (__NR_SYSCALL_BASE+243)
+#define __NR_io_destroy (__NR_SYSCALL_BASE+244)
+#define __NR_io_getevents (__NR_SYSCALL_BASE+245)
+#define __NR_io_submit (__NR_SYSCALL_BASE+246)
+#define __NR_io_cancel (__NR_SYSCALL_BASE+247)
+ +
+#define __sys2(x) #x +#define io_syscall1(type,fname,sname,type1,arg1) \
+#define __sys1(x) __sys2(x) +type fname(type1 arg1) \
+ +{ \
+#if defined(__thumb__) || defined(__ARM_EABI__) +long __res; \
+#define __SYS_REG(name) register long __sysreg __asm__("r7") = __NR_##name; +register long __g1 __asm__ ("g1") = __NR_##sname; \
+#define __SYS_REG_LIST(regs...) "r" (__sysreg) , ##regs +register long __o0 __asm__ ("o0") = (long)(arg1); \
+#define __syscall(name) "swi\t0" +__asm__ __volatile__ ("t 0x10\n\t" \
+#else + "bcc 1f\n\t" \
+#define __SYS_REG(name) + "mov %%o0, %0\n\t" \
+#define __SYS_REG_LIST(regs...) regs + "sub %%g0, %%o0, %0\n\t" \
+#define __syscall(name) "swi\t" __sys1(__NR_##name) "" + "1:\n\t" \
+#endif + : "=r" (__res), "=&r" (__o0) \
+ + : "1" (__o0), "r" (__g1) \
+#define io_syscall1(type,fname,sname,type1,arg1) \ + : "cc"); \
+type fname(type1 arg1) { \ +if (__res < -255 || __res >= 0) \
+ __SYS_REG(sname) \ + return (type) __res; \
+ register long __r0 __asm__("r0") = (long)arg1; \ +return -1; \
+ register long __res_r0 __asm__("r0"); \
+ __asm__ __volatile__ ( \
+ __syscall(sname) \
+ : "=r" (__res_r0) \
+ : __SYS_REG_LIST( "0" (__r0) ) \
+ : "memory" ); \
+ return (type) __res_r0; \
+} +}
+ +
+#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \ +#define io_syscall2(type,fname,sname,type1,arg1,type2,arg2) \
+type fname(type1 arg1,type2 arg2) { \ +type fname(type1 arg1,type2 arg2) \
+ __SYS_REG(sname) \ +{ \
+ register long __r0 __asm__("r0") = (long)arg1; \ +long __res; \
+ register long __r1 __asm__("r1") = (long)arg2; \ +register long __g1 __asm__ ("g1") = __NR_##sname; \
+ register long __res_r0 __asm__("r0"); \ +register long __o0 __asm__ ("o0") = (long)(arg1); \
+ __asm__ __volatile__ ( \ +register long __o1 __asm__ ("o1") = (long)(arg2); \
+ __syscall(sname) \ +__asm__ __volatile__ ("t 0x10\n\t" \
+ : "=r" (__res_r0) \ + "bcc 1f\n\t" \
+ : __SYS_REG_LIST( "0" (__r0), "r" (__r1) ) \ + "mov %%o0, %0\n\t" \
+ : "memory" ); \ + "sub %%g0, %%o0, %0\n\t" \
+ return (type) __res_r0; \ + "1:\n\t" \
+ : "=r" (__res), "=&r" (__o0) \
+ : "1" (__o0), "r" (__o1), "r" (__g1) \
+ : "cc"); \
+if (__res < -255 || __res >= 0) \
+ return (type) __res; \
+return -1; \
+} +}
+ +
+#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \ +#define io_syscall3(type,fname,sname,type1,arg1,type2,arg2,type3,arg3) \
+type fname(type1 arg1,type2 arg2,type3 arg3) { \ +type fname(type1 arg1,type2 arg2,type3 arg3) \
+ __SYS_REG(sname) \ +{ \
+ register long __r0 __asm__("r0") = (long)arg1; \ +long __res; \
+ register long __r1 __asm__("r1") = (long)arg2; \ +register long __g1 __asm__ ("g1") = __NR_##sname; \
+ register long __r2 __asm__("r2") = (long)arg3; \ +register long __o0 __asm__ ("o0") = (long)(arg1); \
+ register long __res_r0 __asm__("r0"); \ +register long __o1 __asm__ ("o1") = (long)(arg2); \
+ __asm__ __volatile__ ( \ +register long __o2 __asm__ ("o2") = (long)(arg3); \
+ __syscall(sname) \ +__asm__ __volatile__ ("t 0x10\n\t" \
+ : "=r" (__res_r0) \ + "bcc 1f\n\t" \
+ : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2) ) \ + "mov %%o0, %0\n\t" \
+ : "memory" ); \ + "sub %%g0, %%o0, %0\n\t" \
+ return (type) __res_r0; \ + "1:\n\t" \
+ : "=r" (__res), "=&r" (__o0) \
+ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__g1) \
+ : "cc"); \
+if (__res < -255 || __res>=0) \
+ return (type) __res; \
+return -1; \
+} +}
+ +
+#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4)\ +#define io_syscall4(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \
+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \ +type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+ __SYS_REG(sname) \ +{ \
+ register long __r0 __asm__("r0") = (long)arg1; \ +long __res; \
+ register long __r1 __asm__("r1") = (long)arg2; \ +register long __g1 __asm__ ("g1") = __NR_##sname; \
+ register long __r2 __asm__("r2") = (long)arg3; \ +register long __o0 __asm__ ("o0") = (long)(arg1); \
+ register long __r3 __asm__("r3") = (long)arg4; \ +register long __o1 __asm__ ("o1") = (long)(arg2); \
+ register long __res_r0 __asm__("r0"); \ +register long __o2 __asm__ ("o2") = (long)(arg3); \
+ __asm__ __volatile__ ( \ +register long __o3 __asm__ ("o3") = (long)(arg4); \
+ __syscall(sname) \ +__asm__ __volatile__ ("t 0x10\n\t" \
+ : "=r" (__res_r0) \ + "bcc 1f\n\t" \
+ : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), "r" (__r3) ) \ + "mov %%o0, %0\n\t" \
+ : "memory" ); \ + "sub %%g0, %%o0, %0\n\t" \
+ return (type) __res_r0; \ + "1:\n\t" \
+ : "=r" (__res), "=&r" (__o0) \
+ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__g1) \
+ : "cc"); \
+if (__res < -255 || __res>=0) \
+ return (type) __res; \
+return -1; \
+} +}
+ +
+#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \ +#define io_syscall5(type,fname,sname,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \
+type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) {\ + type5,arg5) \
+ __SYS_REG(sname) \ +type fname(type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5) \
+ register long __r0 __asm__("r0") = (long)arg1; \ +{ \
+ register long __r1 __asm__("r1") = (long)arg2; \ +long __res; \
+ register long __r2 __asm__("r2") = (long)arg3; \ +register long __g1 __asm__ ("g1") = __NR_##sname; \
+ register long __r3 __asm__("r3") = (long)arg4; \ +register long __o0 __asm__ ("o0") = (long)(arg1); \
+ register long __r4 __asm__("r4") = (long)arg5; \ +register long __o1 __asm__ ("o1") = (long)(arg2); \
+ register long __res_r0 __asm__("r0"); \ +register long __o2 __asm__ ("o2") = (long)(arg3); \
+ __asm__ __volatile__ ( \ +register long __o3 __asm__ ("o3") = (long)(arg4); \
+ __syscall(sname) \ +register long __o4 __asm__ ("o4") = (long)(arg5); \
+ : "=r" (__res_r0) \ +__asm__ __volatile__ ("t 0x10\n\t" \
+ : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \ + "bcc 1f\n\t" \
+ "r" (__r3), "r" (__r4) ) \ + "mov %%o0, %0\n\t" \
+ : "memory" ); \ + "sub %%g0, %%o0, %0\n\t" \
+ return (type) __res_r0; \ + "1:\n\t" \
+ : "=r" (__res), "=&r" (__o0) \
+ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__o4), "r" (__g1) \
+ : "cc"); \
+if (__res < -255 || __res>=0) \
+ return (type) __res; \
+return -1; \
+} +}
+ +
--- a/harness/main.c Index: libaio-0.3.109/src/syscall.h
+++ b/harness/main.c ===================================================================
@@ -11,8 +11,14 @@ --- libaio-0.3.109.orig/src/syscall.h
+++ libaio-0.3.109/src/syscall.h
#include <libaio.h> @@ -24,6 +24,14 @@
#include "syscall-alpha.h"
-#if defined(__i386__) #elif defined(__arm__)
+#if defined(__i386__) || defined(__powerpc__) || defined(__mips__) #include "syscall-arm.h"
#define KERNEL_RW_POINTER ((void *)0xc0010000) +#elif defined(__m68k__)
+#elif defined(__arm__) || defined(__m68k__) || defined(__s390__) +#include "syscall-m68k.h"
+#define KERNEL_RW_POINTER ((void *)0x00010000) +#elif defined(__sparc__)
+#include "syscall-sparc.h"
+#elif defined(__hppa__) +#elif defined(__hppa__)
+#define KERNEL_RW_POINTER ((void *)0x10100000) +#include "syscall-parisc.h"
+#elif defined(__sparc__) && !defined(__arch64__) +#elif defined(__mips__)
+#define KERNEL_RW_POINTER ((void *)0xf0010000) +#include "syscall-mips.h"
#else #else
//#warning Not really sure where kernel memory is. Guessing. #error "add syscall-arch.h"
#define KERNEL_RW_POINTER ((void *)0xffffffffc0010000) #endif

View File

@ -6,23 +6,30 @@ The test-suite logs can be found at:
<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=535288> <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=535288>
diff --git a/harness/main.c b/harness/main.c ---
index f472da7..01fbb87 100644 harness/main.c | 2 -
--- a/harness/main.c src/libaio.h | 10 +++++++
+++ b/harness/main.c src/syscall-sh.h | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -13,7 +13,7 @@ src/syscall.h | 2 +
4 files changed, 91 insertions(+), 1 deletion(-)
#if defined(__i386__) || defined(__powerpc__) || defined(__mips__)
Index: libaio-0.3.109/harness/main.c
===================================================================
--- libaio-0.3.109.orig/harness/main.c
+++ libaio-0.3.109/harness/main.c
@@ -14,7 +14,7 @@
#if __LP64__ == 0
#if defined(__i386__) || defined(__pwoerpc__) || defined(__mips__)
#define KERNEL_RW_POINTER ((void *)0xc0010000) #define KERNEL_RW_POINTER ((void *)0xc0010000)
-#elif defined(__arm__) || defined(__m68k__) || defined(__s390__) -#elif defined(__arm__) || defined(__m68k__) || defined(__s390__)
+#elif defined(__arm__) || defined(__m68k__) || defined(__s390__) || defined(__sh__) +#elif defined(__arm__) || defined(__m68k__) || defined(__s390__) || defined(__sh__)
#define KERNEL_RW_POINTER ((void *)0x00010000) #define KERNEL_RW_POINTER ((void *)0x00010000)
#elif defined(__hppa__) #elif defined(__hppa__)
#define KERNEL_RW_POINTER ((void *)0x10100000) #define KERNEL_RW_POINTER ((void *)0x10100000)
diff --git a/src/libaio.h b/src/libaio.h Index: libaio-0.3.109/src/libaio.h
index 68e22ac..d306084 100644 ===================================================================
--- a/src/libaio.h --- libaio-0.3.109.orig/src/libaio.h
+++ b/src/libaio.h +++ libaio-0.3.109/src/libaio.h
@@ -107,6 +107,16 @@ typedef enum io_iocb_cmd { @@ -107,6 +107,16 @@ typedef enum io_iocb_cmd {
# else # else
# error "neither mipseb nor mipsel?" # error "neither mipseb nor mipsel?"
@ -40,11 +47,10 @@ index 68e22ac..d306084 100644
#else #else
#error endian? #error endian?
#endif #endif
diff --git a/src/syscall-sh.h b/src/syscall-sh.h Index: libaio-0.3.109/src/syscall-sh.h
new file mode 100644 ===================================================================
index 0000000..9945ec6
--- /dev/null --- /dev/null
+++ b/src/syscall-sh.h +++ libaio-0.3.109/src/syscall-sh.h
@@ -0,0 +1,78 @@ @@ -0,0 +1,78 @@
+/* Copy from ./arch/sh/include/asm/unistd_32.h */ +/* Copy from ./arch/sh/include/asm/unistd_32.h */
+#define __NR_io_setup 245 +#define __NR_io_setup 245
@ -124,10 +130,10 @@ index 0000000..9945ec6
+ : "memory" ); \ + : "memory" ); \
+ return (type) __sc0;\ + return (type) __sc0;\
+} +}
diff --git a/src/syscall.h b/src/syscall.h Index: libaio-0.3.109/src/syscall.h
index b957bbe..ea0435e 100644 ===================================================================
--- a/src/syscall.h --- libaio-0.3.109.orig/src/syscall.h
+++ b/src/syscall.h +++ libaio-0.3.109/src/syscall.h
@@ -32,6 +32,8 @@ @@ -32,6 +32,8 @@
#include "syscall-parisc.h" #include "syscall-parisc.h"
#elif defined(__mips__) #elif defined(__mips__)
@ -137,6 +143,3 @@ index b957bbe..ea0435e 100644
#else #else
#error "add syscall-arch.h" #error "add syscall-arch.h"
#endif #endif
--
1.6.3.1

View File

@ -3,10 +3,10 @@
src/Makefile | 12 +++++++----- src/Makefile | 12 +++++++-----
2 files changed, 15 insertions(+), 6 deletions(-) 2 files changed, 15 insertions(+), 6 deletions(-)
Index: libaio-0.3.107/Makefile Index: libaio-0.3.109/Makefile
=================================================================== ===================================================================
--- libaio-0.3.107.orig/Makefile --- libaio-0.3.109.orig/Makefile
+++ libaio-0.3.107/Makefile +++ libaio-0.3.109/Makefile
@@ -5,9 +5,11 @@ RELEASE=$(shell awk '/Release:/ { print @@ -5,9 +5,11 @@ RELEASE=$(shell awk '/Release:/ { print
CVSTAG = $(NAME)_$(subst .,-,$(VERSION))_$(subst .,-,$(RELEASE)) CVSTAG = $(NAME)_$(subst .,-,$(VERSION))_$(subst .,-,$(RELEASE))
RPMBUILD=$(shell `which rpmbuild >&/dev/null` && echo "rpmbuild" || echo "rpm") RPMBUILD=$(shell `which rpmbuild >&/dev/null` && echo "rpmbuild" || echo "rpm")
@ -17,9 +17,9 @@ Index: libaio-0.3.107/Makefile
libdir=$(prefix)/lib libdir=$(prefix)/lib
+libdevdir=$(prefix)/lib +libdevdir=$(prefix)/lib
default: all pkgname := libaio
ver := $(shell cat .version)
@@ -15,7 +17,12 @@ all: @@ -23,7 +25,12 @@ all:
@$(MAKE) -C src @$(MAKE) -C src
install: install:
@ -33,10 +33,10 @@ Index: libaio-0.3.107/Makefile
check: check:
@$(MAKE) -C harness check @$(MAKE) -C harness check
Index: libaio-0.3.107/src/Makefile Index: libaio-0.3.109/src/Makefile
=================================================================== ===================================================================
--- libaio-0.3.107.orig/src/Makefile --- libaio-0.3.109.orig/src/Makefile
+++ libaio-0.3.107/src/Makefile +++ libaio-0.3.109/src/Makefile
@@ -1,6 +1,8 @@ @@ -1,6 +1,8 @@
+DESTDIR= +DESTDIR=
prefix=/usr prefix=/usr

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:56307e2b0dbf88a0a4e704aa121e14caded05ed90950096b6c4460d09d8f8c3c
size 42850

3
libaio-0.3.109.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b5cefce0a3cb49f8dca4d00e9480c0d9b45b75863bd44764156e322ee214e794
size 43579

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Tue Mar 15 13:44:15 UTC 2011 - jengelh@medozas.de
- Update to libaio 0.3.109
* add ARM architecture support (grabbed from Debian arches tree)
* replace check of __i386__ with __LP64__ in test harness
- refreshed patches
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Feb 12 09:57:26 UTC 2010 - jengelh@medozas.de Fri Feb 12 09:57:26 UTC 2010 - jengelh@medozas.de

View File

@ -27,9 +27,10 @@ AutoReqProv: on
Obsoletes: libaio-64bit Obsoletes: libaio-64bit
%endif %endif
# #
Version: 0.3.107 Version: 0.3.109
Release: 2 Release: 0
Summary: Linux-Native Asynchronous I/O Access Library Summary: Linux-Native Asynchronous I/O Access Library
URL: http://kernel.org/pub/linux/libs/aio/
Source: libaio-%{version}.tar.bz2 Source: libaio-%{version}.tar.bz2
Source2: baselibs.conf Source2: baselibs.conf
Patch2: libaio-optflags.diff Patch2: libaio-optflags.diff
@ -78,7 +79,7 @@ with, for the Linux-native asynchronous I/O facility ("async I/O", or
%endif %endif
%build %build
%{__make} %{?_smp_mflags} OPTFLAGS="$RPM_OPT_FLAGS" make %{?_smp_mflags} OPTFLAGS="$RPM_OPT_FLAGS"
%install %install
make install prefix=%{buildroot}/usr libdir=%{buildroot}/%{_lib} make install prefix=%{buildroot}/usr libdir=%{buildroot}/%{_lib}

0
ready
View File