about summary refs log tree commit diff
path: root/include/sys
Commit message (Collapse)AuthorAgeFilesLines
* sys/prctl.h: add PR_PAC_RESET_KEYS from linux v5.0Szabolcs Nagy2019-03-131-0/+7
| | | | | | aarch64 pointer authentication code related prctl that allows reinitializing the key for the thread, added in linux commit ba830885656414101b2f8ca88786524d4bb5e8c1
* sys/prctl.h: add PR_SPEC_INDIRECT_BRANCH from linux v4.20Szabolcs Nagy2019-03-131-0/+1
| | | | | | prctls to allow per task control of indirect branch speculation on x86. added in linux commit 9137bb27e60e554dab694eafa4cca241fa3a694f
* sys/mman.h: add new hugetlb mmap flags from linux v4.19Szabolcs Nagy2019-03-132-0/+4
| | | | | aarch64 supports 32MB and 512MB hugetlb page sizes too. added in linux commit 20916d4636a9b3c1bf562b305f91d126771edaf9
* sys/inotify.h: add IN_MASK_CREATE from linux v4.19Szabolcs Nagy2019-03-131-0/+1
| | | | | | inotify_add_watch flag to prevent modifying existing watch descriptors, when used on an already watched inode it fails with EEXIST. added in linux commit 4d97f7d53da7dc830dbf416a3d2a6778d267ae68
* sys/socket.h: add SO_TXTIME from linux v4.19Szabolcs Nagy2019-03-131-0/+2
| | | | added in linux commit 80b14dee2bea128928537d61c333f24cb8cbb62f
* add membarrier syscall wrapper, refactor dynamic tls install to use itRich Felker2019-02-221-0/+17
| | | | | | | | | | the motivation for this change is twofold. first, it gets the fallback logic out of the dynamic linker, improving code readability and organization. second, it provides application code that wants to use the membarrier syscall, which depends on preregistration of intent before the process becomes multithreaded unless unbounded latency is acceptable, with a symbol that, when linked, ensures that this registration happens.
* update line discipline constantsBobby Bingham2019-02-071-0/+12
|
* move arch-invariant definitions out of bits/ioctl.hBobby Bingham2019-02-071-0/+98
|
* add SIGSYS support to sys/signalfd.h from linux v4.18Szabolcs Nagy2018-12-091-1/+5
| | | | | | | new in linux commit 76b7f670730e87974f71df9f6129811e2769666e in struct signalfd_siginfo the pad member is changed to __pad to keep the namespace clean, it's not part of the public api.
* add AF_XDP to sys/socket.h from linux v4.18Szabolcs Nagy2018-12-091-1/+4
| | | | | new address family and related macros were added in linux commit 68e8b849b221b37a78a110a0307717d45e3593a0
* move inclusion of linux headers for kd.h, soundcard.h, vt.h to bitsmidipix2018-07-203-3/+3
| | | | | | | | | | | | maintainer's note: while musl does not use the linux kernel headers, it does provide these three sys/* headers which do nothing but include the corresponding linux/* headers, since the sys/* versions are the ones documented for application use (and they arguably provide interfaces that are not linux-specific but common to other unices). these headers should probably not be provided by libc (rather by a separate package), but as long as they are, use the bits header framework as an aid to out-of-tree ports of musl for non-linux systems that want to implement them in some other way.
* remove inclusion guard hacks for sys/kd.hmidipix2018-07-201-7/+0
| | | | | | | | | | | | maintainer's note: at some point, probably long before linux separated the uapi headers, it was the case, or at least I believed it was the case, that linux/types.h was unsafe to include from userspace. thus, the inclusion guard macro _LINUX_TYPES_H was defined in sys/kd.h to prevent linux/kd.h from including linux/types.h (which it spuriously includes but does not use). as far as I can tell, whatever problem this was meant to solve does not seem to have been present for a long time, and the hack was not done correctly anyway, so removing it is the right thing to do.
* add support for arch-specific ptrace command macrosSzabolcs Nagy2018-07-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | sys/ptrace.h is target specific, use bits/ptrace.h to add target specific macro definitions. these macros are kept in the generic sys/ptrace.h even though some targets don't support them: PTRACE_GETREGS PTRACE_SETREGS PTRACE_GETFPREGS PTRACE_SETFPREGS PTRACE_GETFPXREGS PTRACE_SETFPXREGS so no macro definition got removed in this patch on any target. only s390x has a numerically conflicting macro definition (PTRACE_SINGLEBLOCK). the PT_ aliases follow glibc headers, otherwise the definitions come from linux uapi headers except ones that are skipped in glibc and there is no real kernel support (s390x PTRACE_*_AREA) or need special type definitions (mips PTRACE_*_WATCH_*) or only relevant for linux 2.4 compatibility (PTRACE_OLDSETOPTIONS).
* sys/ptrace.h: add missing PTRACE_EVENT_STOPSzabolcs Nagy2018-07-171-0/+1
| | | | | | | | new in linux v3.1 commit 3544d72a0e10d0aa1c1bd59ed77a53a59cdc12f7 changed in linux v3.4 commit 5cdf389aee90109e2e3d88085dea4dd5508a3be7 A tracer recieves this event in the waitpid status of a PTRACED_SEIZED process.
* add ST_RELATIME to statvfs.hRich Felker2018-07-121-0/+1
|
* fix value of SO_PEERSEC on mips archsRich Felker2018-06-261-1/+1
| | | | adapted from patch by Matthias Schiffer.
* add memfd_create syscall wrapperSzabolcs Nagy2018-06-201-0/+5
| | | | memfd_create was added in linux v3.17 and glibc has api for it.
* add mlock2 linux syscall wrapperSzabolcs Nagy2018-06-201-3/+8
| | | | | | | | mlock2 syscall was added in linux v4.4 and glibc has api for it. It falls back to mlock in case of flags==0, so that case works even on older kernels. MLOCK_ONFAULT is moved under _GNU_SOURCE following glibc.
* add speculation control prctls from linux v4.17Szabolcs Nagy2018-06-191-0/+9
| | | | | | | PR_{SET,GET}_SPECULATION_CTRL controls speculation related vulnerability mitigations, new in commits b617cfc858161140d69cc0b5cc211996b557a1c7 356e4bfff2c5489e016fdb925adbf12a1e3950ee
* add {MSG,SEM,SHM}_STAT_ANY from linux v4.17Szabolcs Nagy2018-06-193-0/+3
| | | | | | | | introduced to stat ipc objects without permission checks since the info is available in /proc/sysvipc anyway, new in linux commits 23c8cec8cf679b10997a512abb1e86f0cedc42ba a280d6dc77eb6002f269d58cd47c7c7e69b617b6 c21a6970ae727839a2f300cd8dd957de0d0238c3
* add MAP_FIXED_NOREPLACE from linux v4.17Szabolcs Nagy2018-06-191-0/+1
| | | | | | | to map at a fixed address without unmapping underlying mappings (fails with EEXIST unlike MAP_FIXED), new in linux commits 4ed28639519c7bad5f518e70b3284c6e0763e650 and a4ff8e8620d3f4f50ac4b41e8067b7d395056843.
* sys/ptrace.h: add PTRACE_SECCOMP_GET_METADATA from linux v4.16Szabolcs Nagy2018-06-191-1/+7
| | | | | | | | to get seccomp state for checkpoint restore. added in linux commit 26500475ac1b499d8636ff281311d633909f5d20 struct tag follows the glibc api and ptrace_peeksiginfo_args got changed too accordingly.
* sys/epoll.h: add EPOLLNVAL from linux v4.16Szabolcs Nagy2018-06-191-0/+1
| | | | | | added to uapi in commit 65aaf87b3aa2d049c6b9fd85221858a895df3393 used since commit a9a08845e9acbd224e4ee466f5c1275ed50054e8, which renamed POLL* to EPOLL* in the kernel.
* add getrandom syscall wrapperHauke Mehrtens2018-02-221-0/+19
| | | | | This syscall is available since Linux 3.17 and was also implemented in glibc in version 2.25 using the same interfaces.
* sys/prctl.h: add new PR_SVE_* macros from linux v4.15Szabolcs Nagy2018-02-221-0/+6
| | | | | | | PR_SVE_SET_VL and PR_SVE_GET_VL controls are new in linux commit 2d2123bc7c7f843aa9db87720de159a049839862 related PR_SVE_* macros were added in 7582e22038a266444eb87bc07c372592ad647439
* add MAP_SYNC and MAP_SHARED_VALIDATE from linux v4.15Szabolcs Nagy2018-02-221-0/+2
| | | | | | | | for synchronous page faults, new in linux commit 1c9725974074a047f6080eecc62c50a8e840d050 and b6fb293f2497a9841d94f6b57bd2bb2cd222da43 note that only targets that use asm-generic/mman.h have this new flag defined, so undef it on other targets (mips*, powerpc*).
* sys/{mman,shm}.h: add {MAP,SHM}_HUGE_ macros from linux uapiSzabolcs Nagy2018-02-222-0/+26
| | | | | | | | | | | | | *_HUGE_SHIFT, *_HUGE_2MB, *_HUGE_1GB are documented in the man page, so add all of the *_HUGE_* macros from linux uapi. if MAP_HUGETLB is set, top bits of the mmap flags encode the page size. see the linux commit aafd4562dfee81a40ba21b5ea3cf5e06664bc7f6 if SHM_HUGETLB is set, top bits of the shmget flags encode the page size. see the linux commit 4da243ac1cf6aeb30b7c555d56208982d66d6d33 *_HUGE_16GB is defined unsigned to avoid signed left shift ub.
* sys/mman.h: add MADV_WIPEONFORK from linux v4.14Szabolcs Nagy2018-02-221-0/+2
| | | | | allows zeroing anonymous private pages inherited by a child process. new in linux commit d2cd9ede6e193dd7d88b6d27399e96229a551b19
* sys/socket.h: add MSG_ZEROCOPY from linux v4.14Szabolcs Nagy2018-02-221-0/+2
| | | | | | | MSG_ZEROCOPY socket send flag avoids copy in the kernel new in linux commit 52267790ef52d7513879238ca9fac22c1733e0e3 SO_ZEROCOPY socket option enables MSG_ZEROCOPY if availale new in linux commit 76851d1212c11365362525e1e2c0a18c97478e6b
* sys/socket.h: add SOL_TLS from linux v4.13Szabolcs Nagy2018-02-221-0/+1
| | | | | socket option for kernel TLS support new in linux commit 3c4d7559159bfe1e3b94df3a657b2cda3a34e218
* sys/socket.h: add PF_SMC from linux v4.11Szabolcs Nagy2018-02-221-1/+3
| | | | | | add AF_SMC and PF_SMC for the IBM shared memory communication protocol. new in linux commit ac7138746e14137a451f8539614cdd349153e0c0 (linux socket.h is not in uapi so this update was missed earlier)
* add additional uapi guards for Linux kernel header filesHauke Mehrtens2018-01-091-0/+2
| | | | | | | | | | | | With Linux kernel 4.16 it will be possible to guard more parts of the Linux header files from a libc. Make use of this in musl to guard all the structures and other definitions from the Linux header files which are also defined by the header files provided by musl. This will make it possible to compile source files which include both the libc headers and the kernel userspace headers. This extends the definitions done in commit 04983f227238 ("make netinet/in.h suppress clashing definitions from kernel headers")
* add SO_ getsockopt options from linux v4.13Szabolcs Nagy2017-11-051-0/+2
| | | | | SCM_TIMESTAMPING_PKTINFO is new in aad9c8c470f2a8321a99eb053630ce0e199558d6 SO_PEERGROUPS is new in 28b5ba2aa0f55d80adb2624564ed2b170c19519e
* add new SO_ socket options from linux v4.12Szabolcs Nagy2017-11-051-0/+3
| | | | | | SO_MEMINFO added in linux commit a2d133b1d465016d0d97560b11f54ba0ace56d3e SO_INCOMING_NAPI_ID added in 6d4339028b350efbf87c61e6d9e113e5373545c9 SO_COOKIE added in 5daab9db7b65df87da26fd8cfa695fb9546a1ddb
* add TFD_TIMER_CANCEL_ON_SET that timerfd.h was missingSzabolcs Nagy2017-11-051-0/+1
| | | | | linux commit 575b1967e10a1f3038266244d2c7a3ca6b99fed8 moved timerfd apis to a new uapi header which showed musl was missing this flag.
* add SCM_TIMESTAMPING_OPT_STATS and related TCP_ enums from linux v4.10Szabolcs Nagy2017-11-051-0/+1
| | | | | | | for tcp timestamp control messages, new in linux commit 1c885808e45601b2b6f68b30ac1d999e10b6f606 and export time measurements via tcp_info, added in linux commit efd90174167530c67a54273fd5d8369c87f9bd32
* add MS_NOREMOTELOCK mount flag from linux v4.9Szabolcs Nagy2016-12-291-0/+1
| | | | | for handling file locking on overlayfs. see linux commit c568d68341be7030f5647def68851e469b21ca11
* remove redundant feature test macro checks in sys/time.hRich Felker2016-11-071-5/+0
| | | | | this header is XSI-shaded itself and thus does not need to limit specific content to _XOPEN_SOURCE.
* fix various header namespace issues under feature-test-macro controlRich Felker2016-10-201-2/+5
| | | | reported and changes suggested by Daniel Sabogal.
* remove parameter names from public headersRich Felker2016-10-201-2/+2
| | | | | inclusion of these names was unintentional and in most cases is a namespace violation. Daniel Sabogal tracked down and reported these.
* fix misspelling of a legacy macro name in sys/param.hRich Felker2016-10-201-1/+1
|
* add bits/hwcap.h and include it in sys/auxv.hSzabolcs Nagy2016-10-201-0/+1
| | | | | | | | | aarch64, arm, mips, mips64, mipsn32, powerpc, powerpc64 and sh have cpu feature bits defined in linux for AT_HWCAP auxv entry, so expose those in sys/auxv.h it seems the mips hwcaps were never exposed to userspace neither by linux nor by glibc, but that's most likely an oversight.
* add PF_QIPCRTR, AF_QIPCRTR from linux v4.7 to sys/socket.hSzabolcs Nagy2016-08-301-1/+3
| | | | | macros for qualcom ip router protocol, new in linux commit bdabad3e363d825ddf9679dd431cca0b2c30f881
* make brace placement in public header typedef'd structs consistentRich Felker2016-07-031-2/+1
| | | | | | commit befa5866ee30d09c0c96e88af2eabff5911342ea performed this change for struct definitions that did not also involve typedef, but omitted the latter.
* make brace placement in public header struct definitions consistentRich Felker2016-07-039-32/+16
| | | | | | | | | | | | | | 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.
* fix misplaced indention in sys/procfs.hRich Felker2016-07-031-1/+1
|
* add RUSAGE_THREAD (Linux extension) definition to sys/resource.hRich Felker2016-06-291-0/+1
|
* fix incorrect definition of RUSAGE_CHILDREN in sys/resource.hRich Felker2016-06-291-1/+1
| | | | | | the kernel ABI value for RUSAGE_CHILDREN is -1, not 1. the latter is actually interpreted as RUSAGE_THREAD, to obtain values for just the calling thread and not the whole process.
* avoid padding gaps in struct sockaddr_storageRich Felker2016-06-091-1/+1
| | | | | | | | | | | | | | | | | compilers are free not to copy, or in some cases to clobber, padding bytes in a structure. while it's an aliasing violation, and thus undefined behavior, to copy or manipulate other sockaddr types using sockaddr_storage, it seems likely that traditional code attempts to do so, and the original intent of the sockaddr_storage structure was probably to allow such usage. in the interest of avoiding silent and potentially dangerous breakage, ensure that there are no actual padding bytes in sockaddr_storage by moving and adjusting the size of the __ss_padding member so that it fits exactly. this change also removes a silent assumption that the alignment of long is equal to its size.
* update sys/socket.h to linux v4.6Szabolcs Nagy2016-06-091-1/+19
| | | | | | | | | | | | kernel connection multiplexor macros AF_KCM, PF_KCM, SOL_KCM were added in linux commit ab7ac4eb9832e32a09f4e8042705484d2fb0aad3 MSG_BATCH sendmsg flag for performance optimization was added in linux commit f092276d85b82504e8a07498f4e9e0c51f06745c SOL_* macros are now synced with linux socket.h which is not a uapi header and glibc did not have the macros either, but that has changed http://sourceware.org/ml/libc-alpha/2016-05/msg00322.html