| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /* SPDX-License-Identifier: LGPL-2.1 OR MIT */
- /*
- * fcntl definition for NOLIBC
- * Copyright (C) 2017-2021 Willy Tarreau <w@1wt.eu>
- */
- /* make sure to include all global symbols */
- #include "nolibc.h"
- #ifndef _NOLIBC_FCNTL_H
- #define _NOLIBC_FCNTL_H
- #include "arch.h"
- #include "types.h"
- #include "sys.h"
- /*
- * int openat(int dirfd, const char *path, int flags[, mode_t mode]);
- */
- static __attribute__((unused))
- int sys_openat(int dirfd, const char *path, int flags, mode_t mode)
- {
- return my_syscall4(__NR_openat, dirfd, path, flags, mode);
- }
- static __attribute__((unused))
- int openat(int dirfd, const char *path, int flags, ...)
- {
- mode_t mode = 0;
- if (flags & O_CREAT) {
- va_list args;
- va_start(args, flags);
- mode = va_arg(args, mode_t);
- va_end(args);
- }
- return __sysret(sys_openat(dirfd, path, flags, mode));
- }
- /*
- * int open(const char *path, int flags[, mode_t mode]);
- */
- static __attribute__((unused))
- int sys_open(const char *path, int flags, mode_t mode)
- {
- return my_syscall4(__NR_openat, AT_FDCWD, path, flags, mode);
- }
- static __attribute__((unused))
- int open(const char *path, int flags, ...)
- {
- mode_t mode = 0;
- if (flags & O_CREAT) {
- va_list args;
- va_start(args, flags);
- mode = va_arg(args, mode_t);
- va_end(args);
- }
- return __sysret(sys_open(path, flags, mode));
- }
- #endif /* _NOLIBC_FCNTL_H */
|