/* Copyright (c) 1993 Xerox Corporation. All rights reserved. */ /* */ #ifndef ←←XR←fcntl←h #define ←←XR←fcntl←h #include <config/PCR←OS.h> #define XR←O←RDONLY 0 #define XR←O←WRONLY 1 #define XR←O←RDWR 2 #define XR←O←APPEND 0x0008 #define XR←O←CREAT 0x0200 #define XR←O←TRUNC 0x0400 #define XR←O←EXCL 0x0800 #define XR←O←NOCTTY 0x8000 #define XR←O←NONBLOCK 0x4000 #define XR←O←ACCMODE 0x3 /* close on exec request */ #define XR←FD←CLOEXEC 1 /* fcntl(2) requests */ #define XR←F←DUPFD 0 /* Duplicate fildes */ #define XR←F←GETFD 1 /* Get fildes flags (close on exec) */ #define XR←F←SETFD 2 /* Set fildes flags (close on exec) */ #define XR←F←GETFL 3 /* Get file flags */ #define XR←F←SETFL 4 /* Set file flags */ #define XR←F←GETOWN 5 /* Get owner - for ASYNC */ #define XR←F←SETOWN 6 /* Set owner - for ASYNC */ #define XR←F←GETLK 7 /* Get record-locking information */ #define XR←F←SETLK 8 /* Set or Clear a record-lock (Non-Blocking) */ #define XR←F←SETLKW 9 /* Set or Clear a record-lock (Blocking) */ /* fcntl(2) flags (l←type field of flock structure) */ #define XR←F←RDLCK 1 /* read lock */ #define XR←F←WRLCK 2 /* write lock */ #define XR←F←UNLCK 3 /* remove lock(s) */ struct XR←flock { short l←type; /* F←RDLCK, F←WRLCK, or F←UNLCK */ short l←whence; /* flag to choose starting offset */ long l←start; /* relative offset, in bytes */ long l←len; /* length, in bytes; 0 means lock to EOF */ short l←pid; /* returned with F←GETLK */ short l←xxx; /* reserved for future use */ }; #if defined(PCR←OS←SUNOS4) # include <fcntl.h> # define XR←fcntl←CmdToHost(cmd) (cmd) # define XR←fcntl←FlagToHost(flag) (flag) # define XR←fcntl←FlagFromHost(flag) (flag) # define XR←fcntl←FDToHost(fd) (fd) # define XR←fcntl←FDFromHost(fd) (fd) extern void XR←fcntl←FLockToHost(struct flock *hfl, struct XR←flock *xfl); extern void XR←fcntl←FLockFromHost(struct XR←flock *xfl, struct flock *hfl); #elif defined(PCR←OS←SUNOS5) # include <fcntl.h> extern int XR←fcntl←CmdToHost(int cmd); extern int XR←fcntl←FlagToHost(int flag); extern int XR←fcntl←FlagFromHost(int flag); extern int XR←fcntl←FDToHost(int fd); extern int XR←fcntl←FDFromHost(int fd); extern void XR←fcntl←FLockToHost(struct flock *hfl, struct XR←flock *xfl); extern void XR←fcntl←FLockFromHost(struct XR←flock *xfl, struct flock *hfl); #else # error os ? #endif #endif /* !←←XR←fcntl←h */