1
0
Fork 0
mirror of https://gitlab.com/sortix/sortix.git synced 2023-02-13 20:55:38 -05:00
sortix--sortix/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
include/sortix Implement file descriptor passing. 2021-12-31 22:24:11 +01:00
kb
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
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
com.h
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
end.cpp
fcache.cpp Fix SEEK_END, file offset overflow, and read/write/mkpartition syscall bugs. 2017-12-04 23:56:46 +01:00
fsfunc.cpp
hostname.cpp
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
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
kernel.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
kernelinfo.cpp
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
linebuffer.h
log.cpp
logterminal.cpp Implement Alt + key mapping to Esc followed by key in kernel tty 2021-05-05 00:19:56 +02:00
logterminal.h
Makefile Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02: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
multiboot.h
op-new.cpp
palette.h
panic.cpp
partition.cpp Implement file descriptor passing. 2021-12-31 22:24:11 +01:00
partition.h
pci-mmio.cpp
pci.cpp
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
pty.cpp Add file descriptor table reservations. 2021-12-31 22:24:07 +01:00
pty.h
random.cpp
refcount.cpp
registers.cpp
resource.cpp
scheduler.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
segment.cpp
signal.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
sockopt.cpp
string.cpp
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
textterminal.h
thread.cpp Implement threading primitives that truly sleep. 2021-06-23 22:10:47 +02:00
time.cpp
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
uart.cpp
uart.h
user-timer.cpp Fix handling of overflow and non-canonical values in timespec APIs. 2021-06-22 21:48:27 +02:00
vga.cpp
vga.h
vgafont.f16
vgatextbuffer.cpp
vgatextbuffer.h
video.cpp
vnode.cpp Implement file descriptor passing. 2021-12-31 22:24:11 +01:00
worker.cpp