mirror of git://git.musl-libc.org/musl
eventfd syscall wrapper and read/write wrappers
This commit is contained in:
parent
11e4b92556
commit
15b77d52c9
|
@ -0,0 +1,25 @@
|
|||
#ifndef _SYS_EVENTFD_H
|
||||
#define _SYS_EVENTFD_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
typedef uint64_t eventfd_t;
|
||||
|
||||
#define EFD_SEMAPHORE 1
|
||||
#define EFD_CLOEXEC 02000000
|
||||
#define EFD_NONBLOCK 04000
|
||||
|
||||
int eventfd(unsigned int, int);
|
||||
int eventfd_read(int, eventfd_t *);
|
||||
int eventfd_write(int, eventfd_t);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* sys/eventfd.h */
|
|
@ -0,0 +1,7 @@
|
|||
#include <sys/eventfd.h>
|
||||
#include "syscall.h"
|
||||
|
||||
int eventfd(unsigned int count, int flags)
|
||||
{
|
||||
return syscall(flags ? SYS_eventfd2 : SYS_eventfd, count, flags);
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
#include <sys/eventfd.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int eventfd_read(int fd, eventfd_t *value)
|
||||
{
|
||||
return (sizeof(*value) == read(fd, value, sizeof(*value))) ? 0 : -1;
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
#include <sys/eventfd.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int eventfd_write(int fd, eventfd_t value)
|
||||
{
|
||||
return (sizeof(value) == write(fd, &value, sizeof(value))) ? 0 : -1;
|
||||
}
|
Loading…
Reference in New Issue