Rich Felker | 0b44a03 | 2011-02-12 00:22:29 -0500 | [diff] [blame] | 1 | #include <fcntl.h> |
2 | #include <unistd.h> | ||||
3 | #include <stdarg.h> | ||||
4 | #include "syscall.h" | ||||
5 | #include "libc.h" | ||||
6 | |||||
7 | int openat(int fd, const char *filename, int flags, ...) | ||||
8 | { | ||||
9 | int r; | ||||
10 | mode_t mode; | ||||
11 | va_list ap; | ||||
12 | va_start(ap, flags); | ||||
13 | mode = va_arg(ap, mode_t); | ||||
14 | va_end(ap); | ||||
15 | CANCELPT_BEGIN; | ||||
16 | r = syscall4(__NR_openat, fd, (long)filename, flags|O_LARGEFILE, mode); | ||||
17 | CANCELPT_END; | ||||
18 | return r; | ||||
19 | } | ||||
20 | |||||
21 | LFS64(openat); |