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:
parent
ff01efb0a7
commit
c71640f0ef
516
00_arches.patch
516
00_arches.patch
@ -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
|
||||||
|
@ -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
|
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
3
libaio-0.3.109.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b5cefce0a3cb49f8dca4d00e9480c0d9b45b75863bd44764156e322ee214e794
|
||||||
|
size 43579
|
@ -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
|
||||||
|
|
||||||
|
@ -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}
|
||||||
|
Loading…
Reference in New Issue
Block a user