1
0
Fork 0
mirror of https://gitlab.com/sortix/sortix.git synced 2023-02-13 20:55:38 -05:00
sortix--sortix/libc/include
Jonas 'Sortie' Termansen 5e7605fad2 Implement threading primitives that truly sleep.
The idle thread is now actually run when the system is idle because it
truly goes idle. The idle thread is made power efficient by using the hlt
instruction rather than a busy loop.

The new futex(2) system call is used to implement fast user-space mutexes,
condition variables, and semaphores. The same backend and design is used as
kutexes for truly sleeping kernel mutexes and condition variables.

The new exit_thread(2) flag EXIT_THREAD_FUTEX_WAKE wakes a futex.

Sleeping on clocks in the kernel now uses timers for true sleep.

The interrupt worker thread now truly sleeps when idle.

Kernel threads are now named.

This is a compatible ABI change.
2021-06-23 22:10:47 +02:00
..
__ Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
arpa Delete inet_addr(3) and inet_ntoa(3). 2020-07-29 21:38:41 +02:00
netinet Add TCP_MAXSEG and TCP_NOPUSH definitions. 2021-01-23 00:35:38 +01:00
sys Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
alloca.h Clean up alloca.h header. 2016-05-15 22:43:29 +02:00
ar.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
argp.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
assert.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
blf.h Add bcrypt_checkhash(3) and bcrypt_newhash(3). 2016-01-09 02:54:51 +01:00
brand.h Make the branding system more neutral. 2016-05-15 22:43:29 +02:00
byteswap.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
ctype.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
DIR.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
dirent.h Fix <fcntl.h> including <sys/stat.h> namespace pollution. 2018-08-06 23:59:34 +02:00
dlfcn.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
elf.h Replace <elf.h> with public domain version from musl. 2016-02-29 01:37:31 +01:00
endian.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
err.h Add errc(3) family. 2016-11-06 15:31:52 -06:00
errno.h Add ENOMEDIUM. 2021-05-29 00:52:33 +02:00
error.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
fcntl.h Fix <fcntl.h> including <sys/stat.h> namespace pollution. 2018-08-06 23:59:34 +02:00
features.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
FILE.h Fix <stdio.h> pulling in <pthread.h> through <FILE.h> when __is_sortix_libc. 2018-07-17 12:25:52 +02:00
fnmatch.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
fsmarshall-msg.h Fix <fcntl.h> including <sys/stat.h> namespace pollution. 2018-08-06 23:59:34 +02:00
fsmarshall.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
fstab.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
getopt.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
grp.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
inttypes.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
ioleast.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
langinfo.h Add nl_langinfo(3). 2016-10-03 20:02:12 +02:00
libgen.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
libk.h Abort on overlapping memcpy. 2021-05-30 23:48:19 +02:00
locale.h Fix <locale.h> not defining NULL. 2017-08-20 12:44:34 +02:00
malloc.h Fix kernel HEAP_GUARD_DEBUG support. 2017-05-15 22:11:24 +02:00
msr.h Compile libc with -ffreestanding. 2016-05-15 22:43:29 +02:00
netdb.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
poll.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
psctl.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
pthread.h Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
pty.h Add openpty(3). 2016-11-23 22:31:05 +01:00
pwd.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
regex.h Add REG_STARTEND. 2016-10-30 18:08:59 +01:00
sched.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
scram.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
semaphore.h Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
setjmp.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
sha2.h Add <sha2.h>. 2020-04-13 22:15:04 +02:00
signal.h Fix <signal.h> namespace pollution for strict C. 2017-08-20 12:44:33 +02:00
stdint.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
stdio.h Rewrite scanf(3) to be standards compliant. 2020-03-07 23:31:05 +01:00
stdio_ext.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
stdlib.h Fix <stdlib.h> using long long in C89 mode. 2017-08-20 12:44:34 +02:00
string.h Fix <string.h> including <sys/__/types.h> in strict C mode. 2017-08-20 12:44:34 +02:00
strings.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
syslog.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
system-elf.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
termios.h Add pseudo terminals. 2016-11-23 22:31:05 +01:00
time.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
timespec.h Fix handling of overflow and non-canonical values in timespec APIs. 2021-06-22 21:48:27 +02:00
unistd.h Add support for sessions. 2016-11-23 22:30:47 +01:00
utime.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
wchar.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
wctype.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00