summaryrefslogtreecommitdiff
path: root/include/fcntl.h
AgeCommit message (Collapse)AuthorLines
2019-04-10fcntl.h: define O_TTY_INIT to 0A. Wilcox-2/+3
POSIX: "[If] either O_TTY_INIT is set in oflag or O_TTY_INIT has the value zero, open() shall set any non-standard termios structure terminal parameters to a state that provides conforming behavior." The Linux kernel tty drivers always perform initialisation on their devices to set known good termios values during the open(2) call. This means that setting O_TTY_INIT to zero is conforming.
2019-03-13fix POSIX_FADV_DONTNEED/_NOREUSE on s390xJonathan Neuschäfer-0/+2
On s390x, POSIX_FADV_DONTNEED and POSIX_FADV_NOREUSE have different values than on all other architectures that Linux supports. Handle this difference by wrapping their definitions in include/fcntl.h in #ifdef, so that arch/s390x/bits/fcntl.h can override them.
2018-09-13define MAX_HANDLE_SZ for use with name_to_handle_atKhem Raj-0/+1
MAX_HANDLE_SZ is described in name_to_handle_at() to contain maximum expected size for a file handle
2018-09-12wireup linux/name_to_handle_at and name_to_handle_at syscallsKhem Raj-0/+7
2017-11-05add new fcntl.h macros from linux v4.13Szabolcs Nagy-0/+12
for getting/setting write lifetime hints fcntl commands were added in linux commit c75b1d9421f80f4143e389d2d50ddfc8a28c8c35 added under _GNU_SOURCE || _BSD_SOURCE, since RWH_* life time hints are not in the POSIX reserved namespace.
2016-08-30fix FFSYNC by changing it to O_SYNCDuncan Overbruck-1/+1
O_FSYNC was never defined and is legacy/wrong, nothing seems to use it.
2016-07-03make brace placement in public header struct definitions consistentRich Felker-2/+1
placing the opening brace on the same line as the struct keyword/tag is the style I prefer and seems to be the prevailing practice in more recent additions. these changes were generated by the command: find include/ arch/*/bits -name '*.h' \ -exec sed -i '/^struct [^;{]*$/{N;s/\n/ /;}' {} + and subsequently checked by hand to ensure that the regex did not pick up any false positives.
2015-04-01move O_PATH definition back to arch bitsRich Felker-3/+2
while it's the same for all presently supported archs, it differs at least on sparc, and conceptually it's no less arch-specific than the other O_* macros. O_SEARCH and O_EXEC are still defined in terms of O_PATH in the main fcntl.h.
2014-10-08add new linux file sealing api to fcntl.hSzabolcs Nagy-0/+7
new in linux v3.17 commit 40e041a2c858b3caefc757e26cb85bfceae5062b sealing allows some operations to be blocked on a file which makes file access safer when fds are shared between processes (only supported for shared mem fds currently) flags: F_SEAL_SEAL prevents further sealing F_SEAL_SHRINK prevents file from shrinking F_SEAL_GROW prevents file from growing F_SEAL_WRITE prevents writes fcntl commands: F_GET_SEALS get the current seal flags F_ADD_SEALS add new seal flags
2014-09-08add new F_OFD_* macros to fcntl.h (open file description locks)Szabolcs Nagy-0/+4
open file description locks are inherited across fork and only auto dropped after the last fd of the file description is closed, they can be used to synchronize between threads that open separate file descriptions for the same file. new in linux 3.15 commit 0d3f7a2dd2f5cf9642982515e020c1aee2cf7af6
2014-02-18add flock64 alias for (struct) flock in fcntl.hRich Felker-0/+1
this was a missing part of the LFS64 API; it's "needed" for use with fcntl and the corresponding lock commands.
2014-01-06add some missing LFS64 aliases for fadvise/fallocate functionsRich Felker-0/+1
2013-10-20fix multiple minor namespace issues in headersRich Felker-2/+3
fcntl.h: AT_* is not a reserved namespace so extensions cannot be exposed by default. langinfo.h: YESSTR and NOSTR were removed from the standard. limits.h: NL_NMAX was removed from the standard. signal.h: the conditional for NSIG was wrongly checking _XOPEN_SOURCE rather than _BSD_SOURCE. this was purely a mistake; it doesn't even match the commit message from the commit that added it.
2013-08-03add some new linux AT_* flagsRich Felker-0/+2
2013-08-02provide useless 64-bit fcntl macros with _LARGEFILE64_SOURCERich Felker-0/+3
this is all useless but part of the API, which is part of the _GNU_SOURCE API, so something may need them.
2012-12-06fix F_DUPFD_CLOEXEC being defined twicerofl0r-1/+0
2012-12-06fixup for fcntl.h changesrofl0r-16/+15
2012-12-06fcntl.h: add some linux-specific F_ macrosrofl0r-0/+17
thankfully these are all generic across archs. the DN_ macros are for usage with F_NOTIFY.
2012-11-18fcntl.h: O_SEARCH was missing for powerpcrofl0r-0/+4
put some macros that do not differ between architectures in the main header and remove from bits. restructure mips header so it has the same structure as the others.
2012-09-15fix stupid bug in updating of O_ACCMODE for O_SEARCH supportRich Felker-1/+1
this could cause major bugs, and warrants a fix release right away.
2012-09-13add O_PATH/O_SEARCH support to fcntl.hRich Felker-1/+1
I'm not 100% sure that Linux's O_PATH meets the POSIX requirements for O_SEARCH, but it seems very close if not perfect. and old kernels ignore it, so O_SEARCH will still work as desired as long as the caller has read permissions to the directory.
2012-09-08add linux tee syscallRich Felker-0/+1
2012-09-08add linux sync_file_range syscallRich Felker-0/+4
2012-09-08add linux readahead syscallRich Felker-0/+1
2012-09-08add fallocate (nonstandardized) functionRich Felker-0/+3
this is equivalent to posix_fallocate except that it has an extra mode/flags argument to control its behavior, and stores the error in errno rather than returning an error code.
2012-09-07default features: make musl usable without feature test macrosRich Felker-0/+2
the old behavior of exposing nothing except plain ISO C can be obtained by defining __STRICT_ANSI__ or using a compiler option (such as -std=c99) that predefines it. the new default featureset is POSIX with XSI plus _BSD_SOURCE. any explicit feature test macros will inhibit the default. installation docs have also been updated to reflect this change.
2012-09-06provide loff_t for splice syscallRich Felker-0/+1
so far, this is the only actual use of loff_t i've found. some software, including glib, assumes loff_t must exist if splice exists; this is a reasonable assumption since the official prototype for splice uses loff_t, as it always works with 64-bit offsets regardless of the selected libc off_t size. i'm using #define for now rather than a typedef to make it easy to define in other headers if necessary (like the LFS64 ugliness), but it may be necessary to add it to alltypes.h eventually if other functions end up needing it.
2012-07-23add splice and vmsplice syscallsRich Felker-0/+12
based on patches by orc and Isaac Dunham.
2012-06-20proper error handling for fcntl F_GETOWN on modern kernelsRich Felker-0/+11
on old kernels, there's no way to detect errors; we must assume negative syscall return values are pgrp ids. but if the F_GETOWN_EX fcntl works, we can get a reliable answer.
2012-06-04_GNU_SOURCE is supposed to imply _LARGEFILE64_SOURCERich Felker-1/+1
this is ugly and stupid, but now that the *64 symbol names exist, a lot of broken GNU software detects them in configure, then either breaks during build due to missing off64_t definition, or attempts to compile without function declarations/prototypes. "fixing" it here is easier than telling everyone to add yet another feature test macro to their builds.
2012-05-22various header cleanups, some related to _BSD_SOURCE additionRich Felker-2/+1
there is no reason to avoid multiple identical macro definitions; this is perfectly legal C, and even with the maximal warning options enabled, gcc does not issue any warning for it.
2012-05-22support _BSD_SOURCE feature test macroRich Felker-1/+13
patch by Isaac Dunham. matched closely (maybe not exact) to glibc's idea of what _BSD_SOURCE should make visible.
2012-05-04add support for ugly *64 functions with _LARGEFILE64_SOURCERich Felker-0/+10
musl does not support legacy 32-bit-off_t whatsoever. off_t is always 64 bit, and correct programs that use off_t and the standard functions will just work out of the box. (on glibc, they would require -D_FILE_OFFSET_BITS=64 to work.) however, some programs instead define _LARGEFILE64_SOURCE and use alternate versions of all the standard types and functions with "64" appended to their names. we do not want code to actually get linked against these functions (it's ugly and inconsistent), so macros are used instead of prototypes with weak aliases in the library itself. eventually the weak aliases may be added at the library level for the sake of using code that was originally built against glibc, but the macros will still be the desired solution in the headers.
2012-04-15move F_DUPFD_CLOEXEC out of bitsRich Felker-0/+2
fcntl values 1024 and up are universal, arch-independent. later I'll add some of the other linux-specific ones for notify, leases, pipe size, etc. here too.
2011-04-14fix O_SYNC definition, cleanup fcntl.hRich Felker-0/+8
2011-04-14fcntl.h: move macros that do not vary between archs out of bitsRich Felker-0/+24
2011-03-08fcntl.h should make availabel the mode constants from sys/stat.hRich Felker-0/+18
also remove some legacy nonsense that crept in.
2011-02-12initial check-in, version 0.5.0v0.5.0Rich Felker-0/+43