#include #include "options.h" #define T(t) (t*)0; #define F(t,n) {t *y = &x.n;} #define C(n) switch(n){case n:;} static void f() { C(F_DUPFD) C(F_DUPFD_CLOEXEC) C(F_GETFD) C(F_SETFD) C(F_GETFL) C(F_SETFL) C(F_GETLK) C(F_SETLK) C(F_SETLKW) C(F_GETOWN) C(F_SETOWN) C(FD_CLOEXEC) C(F_RDLCK) C(F_UNLCK) C(F_WRLCK) C(SEEK_SET) C(SEEK_CUR) C(SEEK_END) C(O_CREAT) C(O_EXCL) C(O_NOCTTY) C(O_TRUNC) C(O_TTY_INIT) C(O_APPEND) C(O_NONBLOCK) #ifdef POSIX_SYNCHRONIZED_IO C(O_DSYNC) C(O_RSYNC) #endif C(O_SYNC) C(O_ACCMODE) C(O_EXEC) C(O_RDONLY) C(O_RDWR) C(O_SEARCH) C(O_WRONLY) C(S_IRWXU) C(S_IRUSR) C(S_IWUSR) C(S_IXUSR) C(S_IRWXG) C(S_IRGRP) C(S_IWGRP) C(S_IXGRP) C(S_IRWXO) C(S_IROTH) C(S_IWOTH) C(S_IXOTH) C(S_ISUID) C(S_ISGID) #ifdef _XOPEN_SOURCE C(S_ISVTX) #endif C(AT_FDCWD) C(AT_EACCESS) C(AT_SYMLINK_NOFOLLOW) C(AT_SYMLINK_FOLLOW) C(O_CLOEXEC) C(O_DIRECTORY) C(O_NOFOLLOW) C(AT_REMOVEDIR) C(POSIX_FADV_DONTNEED) C(POSIX_FADV_NOREUSE) C(POSIX_FADV_NORMAL) C(POSIX_FADV_RANDOM) C(POSIX_FADV_SEQUENTIAL) C(POSIX_FADV_WILLNEED) { struct flock x; F(short, l_type) F(short, l_whence) F(off_t, l_start) F(off_t, l_len) F(pid_t, l_pid) } T(mode_t) T(off_t) T(pid_t) {int(*p)(int,int,...) = fcntl;} {int(*p)(int,off_t,off_t,int) = posix_fadvise;} {int(*p)(int,off_t,off_t) = posix_fallocate;} } #ifndef _XOPEN_SOURCE #include #endif static void g() { {int(*p)(const char*,mode_t) = creat;} {int(*p)(const char*,int,...) = open;} {int(*p)(int,const char*,int,...) = openat;} }