diff options
Diffstat (limited to 'src/libc/fcntl.c')
-rw-r--r-- | src/libc/fcntl.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/libc/fcntl.c b/src/libc/fcntl.c new file mode 100644 index 0000000..b2d8685 --- /dev/null +++ b/src/libc/fcntl.c @@ -0,0 +1,28 @@ +#include <bits/panic.h> +#include <camellia.h> +#include <camellia/syscalls.h> +#include <errno.h> +#include <fcntl.h> +#include <stdarg.h> + +#include <stdio.h> + +int open(const char *path, int flags, ...) { + (void)path; (void)flags; + _klogf("failing open(\"%s\")", path); + return errno = ENOSYS, -1; +} + +int fcntl(int fd, int cmd, ...) { + va_list argp; + va_start(argp, cmd); + if (cmd == F_DUPFD) { + int to = va_arg(argp, int); + va_end(argp); + return _sys_dup(fd, to, DUP_SEARCH); + } else { + va_end(argp); + _klogf("failing fcntl(%d)", cmd); + return errno = ENOSYS, -1; + } +} |