diff options
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/arm/SYS.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/libc/arm/SYS.h b/lib/libc/arm/SYS.h index 584c151..ed1a045 100644 --- a/lib/libc/arm/SYS.h +++ b/lib/libc/arm/SYS.h @@ -39,7 +39,15 @@ #include <sys/syscall.h> #include <machine/swi.h> +#ifdef __ARM_EABI__ +#define SYSTRAP(x) \ + mov ip, r7; \ + ldr r7, =SYS_ ## x; \ + swi 0; \ + mov r7, ip +#else #define SYSTRAP(x) swi 0 | SYS_ ## x +#endif #define CERROR _C_LABEL(cerror) #define CURBRK _C_LABEL(curbrk) |