about summary refs log tree commit diff
path: root/include/sched.h
Commit message (Collapse)AuthorAgeFilesLines
* fix undefined behavior in sched.h cpu_set_t usageRich Felker2016-09-191-3/+3
| | | | | | | | | | | since cpu sets can be dynamically allocated and have variable size, accessing their contents via ->__bits is not valid; performing pointer arithmetic outside the range of the size of the declared __bits array results in undefined beahavior. instead, only use cpu_set_t for fixed-size cpu set objects (instantiated by the caller) and as an abstract pointer type for dynamically allocated ones. perform all accesses simply by casting the abstract pointer type cpuset_t * back to unsigned long *.
* add CLONE_NEWCGROUP clone flag, new in linux v4.6Szabolcs Nagy2016-06-091-0/+1
| | | | | flag for new cgroup namespace, added in linux commit 5e2bec7c2248ae27c5b16cd97215ae05c1d39179
* add sched_getcpuNathan Zadoks2016-03-021-0/+1
| | | | | This is a GNU extension, but a fairly minor one, for a system call that otherwise has no libc wrapper.
* fix CPU_EQUAL macro in sched.hSzabolcs Nagy2014-08-131-1/+1
|
* add sched_{get,set}attr syscall numbers and SCHED_DEADLINE macroSzabolcs Nagy2014-05-301-0/+1
| | | | | | | | | | | | linux 3.14 introduced sched_getattr and sched_setattr syscalls in commit d50dde5a10f305253cbc3855307f608f8a3c5f73 and the related SCHED_DEADLINE scheduling policy in commit aab03e05e8f7e26f51dee792beddcb5cca9215a5 but struct sched_attr "extended scheduling parameters data structure" is not yet exported to userspace (necessary for using the syscalls) so related uapi definitions are not added yet.
* fix signed and unsigned comparision in macros in public headersSzabolcs Nagy2014-02-111-1/+1
| | | | | | gcc -Wsign-compare warns about expanded macros that were defined in standard headers (before gcc 4.8) which can make builds fail that use -Werror. changed macros: WIFSIGNALED, __CPU_op_S
* add cpu affinity interfacesRich Felker2013-08-101-0/+61
| | | | | | | this first commit just includes the CPU_* and sched_* interfaces, not the pthread_* interfaces, which may be added later. simple sanity-check testing has been done for the basic interfaces, but most of the macros have not yet been tested.
* add support for thread scheduling (POSIX TPS option)Rich Felker2012-11-111-0/+3
| | | | | | | | | | linux's sched_* syscalls actually implement the TPS (thread scheduling) functionality, not the PS (process scheduling) functionality which the sched_* functions are supposed to have. omitting support for the PS option (and having the sched_* interfaces fail with ENOSYS rather than omitting them, since some broken software assumes they exist) seems to be the only conforming way to do this on linux.
* add acct, accept4, setns, and dup3 syscalls (linux extensions)Rich Felker2012-09-081-0/+1
| | | | based on patch by Justin Cormack
* default features: make musl usable without feature test macrosRich Felker2012-09-071-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.
* add linux-specific unshare syscall wrapperRich Felker2012-04-291-0/+1
|
* overhaul clone syscall wrappingRich Felker2011-09-181-0/+27
| | | | | | | | | | | | | | | | | | | | several things are changed. first, i have removed the old __uniclone function signature and replaced it with the "standard" linux __clone/clone signature. this was necessary to expose clone to applications anyway, and it makes it easier to port __clone to new archs, since it's now testable independently of pthread_create. secondly, i have removed all references to the ugly ldt descriptor structure (i386 only) from the c code and pthread structure. in places where it is needed, it is now created on the stack just when it's needed, in assembly code. thus, the i386 __clone function takes the desired thread pointer as its argument, rather than an ldt descriptor pointer, just like on all other sane archs. this should not affect applications since there is really no way an application can use clone with threads/tls in a way that doesn't horribly conflict with and clobber the underlying implementation's use. applications are expected to use clone only for creating actual processes, possibly with new namespace features and whatnot.
* initial check-in, version 0.5.0 v0.5.0Rich Felker2011-02-121-0/+37