sortix-mirror/kernel
Jonas 'Sortie' Termansen 3c43f71084 Implement file descriptor passing.
This change refactors the Unix socket / pipe backend to have a ring buffer
containing segments, where each segment has an optional leading ancillary
buffer containing control messages followed by a normal data buffer.

The SCM_RIGHTS control message has been implemented which transfers file
descriptors to the receiving process. File descriptors are reference counted
and cycles are prevented using the following restrictions:

1) Unix sockets cannot be sent on themselves (on either end).
2) Unix sockets themselves being sent cannot be sent on.
3) Unix sockets cannot send a Unix socket being sent on.

This is a compatible ABI change.
2021-12-31 22:24:11 +01:00
..
disk Add ATAPI support to ata(4). 2021-06-27 13:54:56 +02:00
fs Implement file descriptor passing. 2021-12-31 22:24:11 +01:00
gpu/bga Add cache-aware memory mapping functions. 2017-02-19 12:13:32 +01:00
include/sortix Implement file descriptor passing. 2021-12-31 22:24:11 +01:00
kb Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
mouse Fix improper uses of ScopedLockSignal. 2021-02-11 20:47:47 +01:00
net Implement file descriptor passing. 2021-12-31 22:24:11 +01:00
x64 Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
x86 Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
x86-family Prioritize the interrupt worker thread. 2017-05-18 22:40:46 +02:00
.gitignore Allow bootloader bitmap framebuffer modesetting. 2016-01-08 19:56:11 +01:00
Makefile Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
addralloc.cpp Fix kernel/addralloc.cpp file header comment. 2017-08-20 12:44:59 +02:00
alarm.cpp Fix handling of overflow and non-canonical values in timespec APIs. 2021-06-22 21:48:27 +02:00
clock.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
com.cpp Fix concurrent serial port read and write. 2016-11-03 22:10:45 +01:00
com.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
copy.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
descriptor.cpp Implement file descriptor passing. 2021-12-31 22:24:11 +01:00
dnsconfig.cpp Add getdnsconfig(2) and setdnsconfig(2). 2021-06-13 23:27:52 +02:00
dtable.cpp Add file descriptor table reservations. 2021-12-31 22:24:07 +01:00
elf.cpp Optimize is_power_of_two. 2016-11-06 17:42:13 +01:00
end.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
fcache.cpp Fix SEEK_END, file offset overflow, and read/write/mkpartition syscall bugs. 2017-12-04 23:56:46 +01:00
fsfunc.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
hostname.cpp Fix kernel not using BRAND_DEFAULT_HOSTNAME. 2016-09-28 20:15:36 +02:00
identity.cpp Fix setuid(2) and setgid(2) not setting the effective user and group. 2021-07-27 00:46:42 +02:00
initrd.cpp Add --append-to kernel(7) multiboot module option. 2018-12-08 22:54:28 +01:00
initrd.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
inode.cpp Implement file descriptor passing. 2021-12-31 22:24:11 +01:00
interlock.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
interrupt.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
io.cpp Implement file descriptor passing. 2021-12-31 22:24:11 +01:00
ioctx.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
kernel.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
kernelinfo.cpp Add tagline. 2016-03-26 23:50:50 +01:00
kthread.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
lfbtextbuffer.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
lfbtextbuffer.h Fix LFBTextBuffer GetChar starting worker thread when paused. 2018-08-06 23:59:35 +02:00
libk.cpp Abort on overlapping memcpy. 2021-05-30 23:48:19 +02:00
linebuffer.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
linebuffer.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
log.cpp Add cache-aware memory mapping functions. 2017-02-19 12:13:32 +01:00
logterminal.cpp Implement Alt + key mapping to Esc followed by key in kernel tty 2021-05-05 00:19:56 +02:00
logterminal.h Add support for sessions. 2016-11-23 22:30:47 +01:00
memorymanagement.cpp Fix SEEK_END, file offset overflow, and read/write/mkpartition syscall bugs. 2017-12-04 23:56:46 +01:00
mtable.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
multiboot.h Upgrade to latest upstream multiboot header. 2014-12-01 22:51:07 +01:00
op-new.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
palette.h Support 8-bit/24-bit color and more escape codes in the graphical console. 2016-11-27 11:19:03 +01:00
panic.cpp Fix technical typo. 2017-04-08 22:20:03 +02:00
partition.cpp Implement file descriptor passing. 2021-12-31 22:24:11 +01:00
partition.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
pci-mmio.cpp Add cache-aware memory mapping functions. 2017-02-19 12:13:32 +01:00
pci.cpp Add PCI scanning functions and busmastering functions. 2017-02-19 12:10:59 +01:00
pipe.cpp Implement file descriptor passing. 2021-12-31 22:24:11 +01:00
poll.cpp Fix kernel deadlock in ppoll(2). 2021-07-14 15:41:28 +02:00
process.cpp Send SIGCHLD to init even for reparented processes. 2021-12-12 22:13:05 +01:00
psctl.cpp Fix psctl(2) not setting uid, euid, gid, and egid. 2021-02-11 20:47:49 +01:00
ptable.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
pty.cpp Add file descriptor table reservations. 2021-12-31 22:24:07 +01:00
pty.h Add pseudo terminals. 2016-11-23 22:31:05 +01:00
random.cpp Seed kernel entropy with randomness from the previous boot. 2016-10-04 00:34:50 +02:00
refcount.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
registers.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
resource.cpp Add support for sessions. 2016-11-23 22:30:47 +01:00
scheduler.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
segment.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
signal.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
sockopt.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
string.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
syscall.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
textbuffer.cpp Fix operator spacing in kernel/textbuffer.cpp. 2017-04-18 23:32:00 +02:00
textterminal.cpp Fix saving and restoring console cursor position. 2017-01-22 22:28:58 +01:00
textterminal.h Support 8-bit/24-bit color and more escape codes in the graphical console. 2016-11-27 11:19:03 +01:00
thread.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
time.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
timer.cpp Fix handling of overflow and non-canonical values in timespec APIs. 2021-06-22 21:48:27 +02:00
tty.cpp Fix improper uses of ScopedLockSignal. 2021-02-11 20:47:47 +01:00
tty.h Add support for sessions. 2016-11-23 22:30:47 +01:00
uart.cpp Add debug uart utility functions. 2016-11-27 11:18:48 +01:00
uart.h Add debug uart utility functions. 2016-11-27 11:18:48 +01:00
user-timer.cpp Fix handling of overflow and non-canonical values in timespec APIs. 2021-06-22 21:48:27 +02:00
vga.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
vga.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
vgafont.f16 Allow bootloader bitmap framebuffer modesetting. 2016-01-08 19:56:11 +01:00
vgatextbuffer.cpp Support 8-bit/24-bit color and more escape codes in the graphical console. 2016-11-27 11:19:03 +01:00
vgatextbuffer.h Refactor graphical resolution changes. 2016-11-27 11:18:48 +01:00
video.cpp Refactor graphical resolution changes. 2016-11-27 11:18:48 +01:00
vnode.cpp Implement file descriptor passing. 2021-12-31 22:24:11 +01:00
worker.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00