diff options
author | Tobias Anderberg <tobias.anderberg@axis.com> | 2002-09-20 15:17:16 +0000 |
---|---|---|
committer | Tobias Anderberg <tobias.anderberg@axis.com> | 2002-09-20 15:17:16 +0000 |
commit | cb9136d9843e3756ebc79f91a3a522ed4ca73eda (patch) | |
tree | 32c4645d05a7b4d7ec5b56abeb6f837c574e3af8 /libc/sysdeps/linux/cris/sysdep.h | |
parent | 750c0194b0b645120ddccf25b82848b06be6cdc2 (diff) |
* Added clone() system call.
* Proper implementation of bits/syscalls.h, no cheating by just including
<asm/unistd.h>.
* Proper implementation of syscall.S, it no longer contains the
__syscall_error, instead it contains code which makes syscall(nr,...) a
system call.
* Added sysdep.S which contains the code for __syscall_error.
* Added some macros to sysdep.h.
* Added sys/procfs.h, which is needed when compiling with thread support.
* Removed unused syscall-cris.c.
Diffstat (limited to 'libc/sysdeps/linux/cris/sysdep.h')
-rw-r--r-- | libc/sysdeps/linux/cris/sysdep.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/cris/sysdep.h b/libc/sysdeps/linux/cris/sysdep.h index e01752ae9..2068557c5 100644 --- a/libc/sysdeps/linux/cris/sysdep.h +++ b/libc/sysdeps/linux/cris/sysdep.h @@ -91,6 +91,22 @@ #define END(name) \ ASM_SIZE_DIRECTIVE (C_SYMBOL_NAME (name)) +#define PSEUDO(name, syscall_name, args) \ + ENTRY (name) @ \ + DOARGS_##args @ \ + movu.w SYS_ify (syscall_name),$r9 @ \ + break 13 @ \ + cmps.w -4096,$r10 @ \ + bhs 0f @ \ + nop @ \ + UNDOARGS_return_##args + +#define PSEUDO_END(name) \ +0: @ \ + SETUP_PIC @ \ + PLTJUMP (syscall_error) @ \ + END (name) + /* If compiled for profiling, call `mcount' at the start of each function. FIXME: Note that profiling is not actually implemented. This is just example code which might not even compile, though it is believed to be |