diff options
Diffstat (limited to 'libc')
-rw-r--r-- | libc/SYSCALLS.TXT | 2 | ||||
-rw-r--r-- | libc/arch-arm/syscalls.mk | 1 | ||||
-rw-r--r-- | libc/arch-arm/syscalls/eventfd.S | 19 | ||||
-rw-r--r-- | libc/include/sys/eventfd.h | 14 | ||||
-rw-r--r-- | libc/include/sys/linux-syscalls.h | 3 | ||||
-rw-r--r-- | libc/include/sys/linux-unistd.h | 1 |
6 files changed, 40 insertions, 0 deletions
diff --git a/libc/SYSCALLS.TXT b/libc/SYSCALLS.TXT index f66ff40..c5b78f5 100644 --- a/libc/SYSCALLS.TXT +++ b/libc/SYSCALLS.TXT @@ -260,3 +260,5 @@ int poll(struct pollfd *, unsigned int, long) 168 # ARM-specific ARM_NR_BASE == 0x0f0000 == 983040 int __set_tls:ARM_set_tls(void*) 983045,-1 int cacheflush:ARM_cacheflush(long start, long end, long flags) 983042,-1 + +int eventfd(int count, int flags) 351,323 diff --git a/libc/arch-arm/syscalls.mk b/libc/arch-arm/syscalls.mk index c466166..3d1c2ac 100644 --- a/libc/arch-arm/syscalls.mk +++ b/libc/arch-arm/syscalls.mk @@ -172,3 +172,4 @@ syscall_src += arch-arm/syscalls/inotify_rm_watch.S syscall_src += arch-arm/syscalls/poll.S syscall_src += arch-arm/syscalls/__set_tls.S syscall_src += arch-arm/syscalls/cacheflush.S +syscall_src += arch-arm/syscalls/eventfd.S diff --git a/libc/arch-arm/syscalls/eventfd.S b/libc/arch-arm/syscalls/eventfd.S new file mode 100644 index 0000000..fb0912f --- /dev/null +++ b/libc/arch-arm/syscalls/eventfd.S @@ -0,0 +1,19 @@ +/* autogenerated by gensyscalls.py */ +#include <sys/linux-syscalls.h> + + .text + .type eventfd, #function + .globl eventfd + .align 4 + .fnstart + +eventfd: + .save {r4, r7} + stmfd sp!, {r4, r7} + ldr r7, =__NR_eventfd + swi #0 + ldmfd sp!, {r4, r7} + movs r0, r0 + bxpl lr + b __set_syscall_errno + .fnend diff --git a/libc/include/sys/eventfd.h b/libc/include/sys/eventfd.h new file mode 100644 index 0000000..0e142fd --- /dev/null +++ b/libc/include/sys/eventfd.h @@ -0,0 +1,14 @@ +#ifndef _SYS_EVENTFD_H_ +#define _SYS_EVENTFD_H_ + +#include <sys/cdefs.h> +#include <asm/unistd.h> +#include <asm/termbits.h> + +__BEGIN_DECLS + +extern int eventfd(int count, int flags); + +__END_DECLS + +#endif /* _SYS_EVENTFD_H_ */ diff --git a/libc/include/sys/linux-syscalls.h b/libc/include/sys/linux-syscalls.h index 9e2aa2f..8239948 100644 --- a/libc/include/sys/linux-syscalls.h +++ b/libc/include/sys/linux-syscalls.h @@ -182,6 +182,7 @@ #define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318) #define __NR_ARM_set_tls (__NR_SYSCALL_BASE + 983045) #define __NR_ARM_cacheflush (__NR_SYSCALL_BASE + 983042) +#define __NR_eventfd (__NR_SYSCALL_BASE + 351) #endif #ifdef __i386__ @@ -222,6 +223,7 @@ #define __NR_inotify_init (__NR_SYSCALL_BASE + 291) #define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 292) #define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 293) +#define __NR_eventfd (__NR_SYSCALL_BASE + 323) #endif #if defined(__SH3__) || defined(__SH4__) @@ -278,6 +280,7 @@ #define __NR_inotify_init (__NR_SYSCALL_BASE + 290) #define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 291) #define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 292) +#define __NR_eventfd (__NR_SYSCALL_BASE + 323) #endif #endif diff --git a/libc/include/sys/linux-unistd.h b/libc/include/sys/linux-unistd.h index 6bd9ac7..d30253a 100644 --- a/libc/include/sys/linux-unistd.h +++ b/libc/include/sys/linux-unistd.h @@ -202,6 +202,7 @@ int inotify_rm_watch (int, unsigned int); int poll (struct pollfd *, unsigned int, long); int __set_tls (void*); int cacheflush (long start, long end, long flags); +int eventfd (int count, int flags); #ifdef __cplusplus } #endif |