summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/cris/sysdep.h
diff options
context:
space:
mode:
authorTobias Anderberg <tobias.anderberg@axis.com>2002-09-20 15:17:16 +0000
committerTobias Anderberg <tobias.anderberg@axis.com>2002-09-20 15:17:16 +0000
commitcb9136d9843e3756ebc79f91a3a522ed4ca73eda (patch)
tree32c4645d05a7b4d7ec5b56abeb6f837c574e3af8 /libc/sysdeps/linux/cris/sysdep.h
parent750c0194b0b645120ddccf25b82848b06be6cdc2 (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.h16
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