| Description: Add/fix support for m68k, mips, paris, sparc |
| Author: Guillem Jover <guillem@debian.org> |
| Origin: vendor |
| Forwarded: no |
| Last-Update: 2014-10-09 |
| |
| |
| --- |
| harness/main.c | 10 +++++++++ |
| src/libaio.h | 1 |
| src/syscall-m68k.h | 5 ++++ |
| src/syscall-mips.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++ |
| src/syscall-parisc.h | 6 +++++ |
| src/syscall.h | 6 +++++ |
| 6 files changed, 82 insertions(+) |
| |
| --- /dev/null |
| +++ b/src/syscall-m68k.h |
| @@ -0,0 +1,5 @@ |
| +#define __NR_io_setup 241 |
| +#define __NR_io_destroy 242 |
| +#define __NR_io_getevents 243 |
| +#define __NR_io_submit 244 |
| +#define __NR_io_cancel 245 |
| --- a/src/syscall.h |
| +++ b/src/syscall.h |
| @@ -27,6 +27,12 @@ |
| #include "syscall-arm.h" |
| #elif defined(__sparc__) |
| #include "syscall-sparc.h" |
| +#elif defined(__m68k__) |
| +#include "syscall-m68k.h" |
| +#elif defined(__hppa__) |
| +#include "syscall-parisc.h" |
| +#elif defined(__mips__) |
| +#include "syscall-mips.h" |
| #elif defined(__aarch64__) || defined(__loongarch__) || defined(__riscv) |
| #include "syscall-generic.h" |
| #else |
| --- /dev/null |
| +++ b/src/syscall-mips.h |
| @@ -0,0 +1,54 @@ |
| +/* |
| + * This file is subject to the terms and conditions of the GNU General Public |
| + * License. See the file "COPYING" in the main directory of this archive |
| + * for more details. |
| + * |
| + * Copyright (C) 1995, 96, 97, 98, 99, 2000 by Ralf Baechle |
| + * Copyright (C) 1999, 2000 Silicon Graphics, Inc. |
| + */ |
| + |
| +#ifndef _MIPS_SIM_ABI32 |
| +#define _MIPS_SIM_ABI32 1 |
| +#define _MIPS_SIM_NABI32 2 |
| +#define _MIPS_SIM_ABI64 3 |
| +#endif |
| + |
| +#if _MIPS_SIM == _MIPS_SIM_ABI32 |
| + |
| +/* |
| + * Linux o32 style syscalls are in the range from 4000 to 4999. |
| + */ |
| +#define __NR_Linux 4000 |
| +#define __NR_io_setup (__NR_Linux + 241) |
| +#define __NR_io_destroy (__NR_Linux + 242) |
| +#define __NR_io_getevents (__NR_Linux + 243) |
| +#define __NR_io_submit (__NR_Linux + 244) |
| +#define __NR_io_cancel (__NR_Linux + 245) |
| + |
| +#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ |
| + |
| +#if _MIPS_SIM == _MIPS_SIM_ABI64 |
| + |
| +/* |
| + * Linux 64-bit syscalls are in the range from 5000 to 5999. |
| + */ |
| +#define __NR_Linux 5000 |
| +#define __NR_io_setup (__NR_Linux + 200) |
| +#define __NR_io_destroy (__NR_Linux + 201) |
| +#define __NR_io_getevents (__NR_Linux + 202) |
| +#define __NR_io_submit (__NR_Linux + 203) |
| +#define __NR_io_cancel (__NR_Linux + 204) |
| +#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ |
| + |
| +#if _MIPS_SIM == _MIPS_SIM_NABI32 |
| + |
| +/* |
| + * Linux N32 syscalls are in the range from 6000 to 6999. |
| + */ |
| +#define __NR_Linux 6000 |
| +#define __NR_io_setup (__NR_Linux + 200) |
| +#define __NR_io_destroy (__NR_Linux + 201) |
| +#define __NR_io_getevents (__NR_Linux + 202) |
| +#define __NR_io_submit (__NR_Linux + 203) |
| +#define __NR_io_cancel (__NR_Linux + 204) |
| +#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ |
| --- a/src/libaio.h |
| +++ b/src/libaio.h |
| @@ -74,6 +74,7 @@ typedef enum io_iocb_cmd { |
| |
| /* big endian, 64 bits */ |
| #elif defined(__powerpc64__) || defined(__s390x__) || \ |
| + (defined(__hppa__) && defined(__arch64__)) || \ |
| (defined(__sparc__) && defined(__arch64__)) || \ |
| (defined(__aarch64__) && defined(__AARCH64EB__)) || \ |
| (defined(__GNUC__) && defined(__BYTE_ORDER__) && \ |
| --- /dev/null |
| +++ b/src/syscall-parisc.h |
| @@ -0,0 +1,6 @@ |
| +#define __NR_Linux 0 |
| +#define __NR_io_setup (__NR_Linux + 215) |
| +#define __NR_io_destroy (__NR_Linux + 216) |
| +#define __NR_io_getevents (__NR_Linux + 217) |
| +#define __NR_io_submit (__NR_Linux + 218) |
| +#define __NR_io_cancel (__NR_Linux + 219) |
| --- a/harness/main.c |
| +++ b/harness/main.c |
| @@ -12,7 +12,17 @@ |
| #include <libaio.h> |
| |
| #if __LP64__ == 0 |
| +#if defined(__i386__) || defined(__powerpc__) || 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) |
| +#else |
| +#error Unknown kernel memory address. |
| +#endif |
| #else |
| //#warning Not really sure where kernel memory is. Guessing. |
| #define KERNEL_RW_POINTER ((void *)0xffffffff81000000) |