summaryrefslogtreecommitdiff
path: root/Kernel/API
AgeCommit message (Collapse)Author
2022-07-08Kernel: Implement `sigsuspend` using a SignalBlockerTim Schumacher
`sigsuspend` was previously implemented using a poll on an empty set of file descriptors. However, this broke quite a few assumptions in `SelectBlocker`, as it verifies at least one file descriptor to be ready after waking up and as it relies on being notified by the file descriptor. A bare-bones `sigsuspend` may also be implemented by relying on any of the `sigwait` functions, but as `sigsuspend` features several (currently unimplemented) restrictions on how returns work, it is a syscall on its own.
2022-07-08Kernel: Implement an `axallowed` mount optionTim Schumacher
Similar to `W^X` and `wxallowed`, this allows for anonymous executable mappings.
2022-06-19Kernel: Add sysconf for IOV_MAXAndrew Kaster
2022-06-17LibC: Add `WIFCONTINUED` macroSeekingBlues
Like other systems, we can encode the continued state with 0xffff in the status value. This is needed for some ports.
2022-06-12Kernel: Add s6_addr32 field in in6_addr structTimur Sultanov
2022-05-26Kernel: Add support for route flagsbrapru
Previously the routing table did not store the route flags. This adds basic support and exposes them in the /proc directory so that a userspace caller can query the route and identify the type of each route.
2022-05-23Kernel: Change values of SHUT_{RD,WR,RDWR}Peter Elliott
For some reason, guile requires these to be specific values.
2022-05-21Kernel+LibC+VFS: Implement utimensat(3)Ariel Don
Create POSIX utimensat() library call and corresponding system call to update file access and modification times.
2022-05-05Everywhere: Purge all support and usage of framebuffer devicesLiav A
Long live the DisplayConnector object!
2022-05-05Everywhere: Rename fb prefix function names => graphics_connectorLiav A
2022-05-05Everywhere: Rename FB prefix structure names => GraphicsLiav A
2022-05-05Everywhere: Rename FB prefix name ioctls => GRAPHICSLiav A
2022-05-05WindowServer: Use FB_IOCTL_FLUSH_HEAD to flush a framebuffer if possibleLiav A
This ioctl is more appropriate when the hardware supports flushing of the entire framebuffer, so we use that instead of the previous default FB_IOCTL_FLUSH_HEAD_BUFFERS ioctl.
2022-05-05WindowServer: Implement mechanism to restore safe mode settingLiav A
Such mechanism will be used by the Intel Graphics driver, because we lack support of changing the resolution on this driver currently, so, when WindowServer will try to mode-set the display then it will fail, and will use the safe mode-setting call instead to be able to show something on screen.
2022-05-05DisplaySettings+WindowServer: Add support for display connector devicesLiav A
2022-05-05Kernel: Add IPv4 network class masksTim Schumacher
2022-05-05Kernel: Add IPsec ESP and AH protocol numbersTim Schumacher
2022-05-05Kernel: Properly define `IOV_MAX`Tim Schumacher
2022-05-05Kernel: Add the remaining POSIX `MADV_*` constantsTim Schumacher
2022-05-05Kernel: Add `O_SYNC` into `fcntl.h`Tim Schumacher
2022-05-02Kernel: Stop requiring working malloc for syscall.h includesPatrick Meyer
Fixes #13869
2022-04-28Kernel: Add a global routing tablebrapru
Previously the system had no concept of assigning different routes for different destination addresses as the default gateway IP address was directly assigned to a network adapter. This default gateway was statically assigned and any update would remove the previously existing route. This patch is a beginning step towards implementing #180. It implements a simple global routing table that is referenced during the routing process. With this implementation it is now possible for a user or service (i.e. DHCP) to dynamically add routes to the table. The routing table will select the most specific route when possible. It will select any direct match between the destination and routing entry addresses. If the destination address overlaps between multiple entries, the Kernel will use the longest prefix match, or the longest number of matching bits between the destination address and the routing address. In the event that there is no entries found for a specific destination address, this implementation supports entries for a default route to be set for any specified interface. This is a small first step towards enhancing the system's routing capabilities. Future enhancements would include referencing a configuration file at boot to load pre-defined static routes.
2022-04-26Kernel: Add ESTALE errno code (stale network file handle)Andreas Kling
2022-04-23Kernel+LibC+LibCore: Implement the unlinkat(2) syscallsin-ack
2022-04-09Kernel: Remove big lock from sys$mkdirIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from sys$renameIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from sys$rmdirIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from sys$statvfsIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from sys$symlinkIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from sys$linkIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from sys$unlinkIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from sys$setsockoptIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from sys$getsockoptIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from sys$shutdownIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from sys$connectIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from sys$closeIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from sys$chownIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from sys$fchownIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from sys$bindIdan Horowitz
This syscall doesn't access any unprotected shared data.
2022-04-09Kernel: Remove big lock from `sys$set_coredump_metadata`Luke Wilde
The only requirement for this syscall is to make Process::m_coredump_properties SpinlockProtected.
2022-04-09Kernel: Remove big lock from `sys$accept4`Jelle Raaijmakers
The only thing we needed to check is whether `socket.accept()` returns a socket, and if not, we go back to blocking again.
2022-04-04Kernel: Mark sys$adjtime() as not needing the big lockAndreas Kling
This syscall works on global kernel state and so doesn't need protection from threads in the same process.
2022-04-04Kernel: Mark sys$clock_settime() as not needing the big logAndreas Kling
This syscall ends up disabling interrupts while changing the time, and the clock is a global resource anyway, so preventing threads in the same process from running wouldn't solve anything.
2022-04-04Kernel: Mark sys$sched_{set,get}param() as not needing the big lockAndreas Kling
Both of these syscalls take the scheduler lock while accessing the thread priority, so there's no reliance on the process big lock.
2022-04-03Kernel: Mark sys$listen() as not needing the big lockAndreas Kling
This syscall already performs the necessary locking and so doesn't need to rely on the process big lock.
2022-04-03Kernel: Mark sys$sendfd() and sys$recvfd() as not needing the big lockAndreas Kling
These syscalls already perform the necessary locking and don't rely on the process big lock.
2022-04-03Kernel: Implement `f_basetype` in statvfsTim Schumacher
2022-04-01Everywhere: Run clang-formatIdan Horowitz
2022-03-22Kernel: Don't assume paths of TTYs and pseudo terminals anymoreLiav A
The obsolete ttyname and ptsname syscalls are removed. LibC doesn't rely on these anymore, and it helps simplifying the Kernel in many places, so it's an overall an improvement. In addition to that, /proc/PID/tty node is removed too as it is not needed anymore by userspace to get the attached TTY of a process, as /dev/tty (which is already a character device) represents that as well.
2022-03-22Kernel: Define MS_WXALLOWED mount optionint16