sortix-mirror/libc
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
..
arpa/inet Fix inet_pton(3) parsing 1:: and ::1.2.3.4 cases. 2020-08-01 14:23:44 +02:00
assert Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
blf Convert libc to C. 2016-03-03 23:02:23 +01:00
c++ Compile libc with -ffreestanding. 2016-05-15 22:43:29 +02:00
ctype Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
dirent Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
dlfcn Make the branding system more neutral. 2016-05-15 22:43:29 +02:00
err Add errc(3) family. 2016-11-06 15:31:52 -06:00
errno Clean up errno. 2016-05-15 22:43:29 +02:00
error Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
fcntl Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
fnmatch Fix shift out of bounds in fnmatch(3). 2016-05-15 19:30:51 +02:00
fsmarshall Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
fstab Fix getline(3) and getdelim(3) usage. 2016-05-15 19:32:04 +02:00
getopt Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
grp Remove ENOUSER and ENOGROUP. 2021-05-10 23:26:31 +02:00
include Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
init Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
inttypes Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
ioleast Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
langinfo Add nl_langinfo(3). 2016-10-03 20:02:12 +02:00
libgen Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
locale Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
malloc Fix double declaration of __heap_mutex. 2016-10-17 18:38:04 +02:00
msr Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
netdb Add getnameinfo(3). 2017-02-14 20:43:30 +01:00
netinet/in Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
poll Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
psctl Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
pthread Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
pty Add openpty(3). 2016-11-23 22:31:05 +01:00
pwd Remove ENOUSER and ENOGROUP. 2021-05-10 23:26:31 +02:00
regex Add REG_STARTEND. 2016-10-30 18:08:59 +01:00
sched Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
scram Document scram(2). 2017-02-12 13:59:07 +01:00
semaphore Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
sha2 Add <sha2.h>. 2020-04-13 22:15:04 +02:00
signal Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
ssp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
stdio Fix printf(3) handling of negative precision. 2021-02-13 22:33:03 +01:00
stdio_ext Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
stdlib Don't unblock SIGABRT in abort(3) before calling raise(SIGABRT). 2018-09-01 12:56:07 +02:00
string Abort on overlapping memcpy. 2021-05-30 23:48:19 +02:00
sys Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
syslog Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
termios Add pseudo terminals. 2016-11-23 22:31:05 +01:00
time Fix strftime(3) error handling and add %F, %z, and %Z support. 2021-04-06 23:22:22 +02:00
timespec Fix handling of overflow and non-canonical values in timespec APIs. 2021-06-22 21:48:27 +02:00
ubsan Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
unistd Fix usleep(2) sleeping 1000x too much regression. 2021-06-23 22:09:57 +02:00
utime Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
wchar Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
wctype Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
x64 Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
x86 Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
.gitignore Add <sha2.h>. 2020-04-13 22:15:04 +02:00
Makefile Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00