Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
|
|
This avoids multiple definition errors when linking software which
may utilize these functions from different compilation units.
|
|
This makes the _socket module from the Python port build. :^)
|
|
This syscall doesn't access any data that was implicitly protected by
the big lock.
|
|
This syscall doesn't do anything at all, and definitely doesn't need the
big lock. :^)
|
|
This syscall doesn't access any data that was implicitly protected by
the big lock.
|
|
This syscall doesn't access any data that was implicitly protected by
the big lock.
|
|
This syscall doesn't access any data that was implicitly protected by
the big lock.
|
|
This syscall doesn't access any data that was implicitly protected by
the big lock.
|
|
This syscall doesn't access any data that was implicitly protected by
the big lock.
|
|
|
|
The project appears to build just fine without it, and the explicit use
of `LibC` causes it to conflict with the system-wide `fd_set.h` when
building inside of Serenity.
|
|
This syscall doesn't access any data that was implicitly protected by
the big lock.
|
|
This syscall doesn't access any data that was implicitly protected by
the big lock.
|
|
This syscall doesn't access any data that was implicitly protected by
the big lock.
|
|
This syscall doesn't access any data that was implicitly protected by
the big lock.
|
|
This syscall doesn't access any data that was implicitly protected by
the big lock.
|
|
This syscall doesn't access any data that was implicitly protected by
the big lock.
|
|
This syscall doesn't access any data that was implicitly protected by
the big lock.
|
|
This syscall doesn't access any data that was implicitly protected by
the big lock.
|
|
This syscall is already safe for no-big-lock since it doesn't access any
unprotected data.
|
|
This serializes access to the current keymap data everywhere in the
kernel, allowing to mark sys$setkeymap() as not needing the big lock.
|
|
There's no reason to fill in any of these fields if SA_SIGINFO is not
given, as the signal handler won't be reading from them at all.
|
|
We currently don't really populate most of the fields, but that can
wait :^)
|
|
Only the two timeval fields are maintained, as required by the POSIX
standard.
|
|
Syscalls to read can now be profiled, allowing us to monitor
filesystem usage by different applications.
|
|
Move the definitions for maximum argument and environment size to
Process.h from execve.cpp. This allows sysconf(_SC_ARG_MAX) to return
the actual argument maximum of 128 KiB to userspace.
|
|
|
|
This device will assist userspace to manage hotplug events.
A userspace application reads a DeviceEvent entry until the return value
is zero which indicates no events that are queued and waiting for
processing.
Trying to read with a buffer smaller than sizeof(DeviceEvent) results in
EOVERFLOW.
For now, there's no ioctl mechanism for this device but in the future an
acknowledgement mechanism can be implemented via ioctl(2) interface.
|
|
|
|
This function is an extended version of `chmod(2)` that lets one control
whether to dereference symlinks, and specify a file descriptor to a
directory that will be used as the base for relative paths.
|
|
Add them in `<Kernel/API/Device.h>` and use these to provides
`{makedev,major,minor}` in `<sys/sysmacros.h>`. It aims to be more in
line with other Unix implementations and avoid code duplication in user
land.
|
|
This error code was a hack for catching error handling mistakes in the
kernel. It's no longer used anywhere.
|
|
This was not updated when the Menu button was added.
|
|
Previously, one could put '\b' in a keymap, but in non-Terminal
applications, it would just insert a literal '\b' character instead of
behaving like backspace. This patch modifes
`visible_code_point_to_key_code` to include backspace, as well as
renaming it to `code_point_to_key_code` since '\b' is not a visible
character. Additionally, `KeyboardDevice::key_state_changed` has been
rearranged to apply the user's keymap before checking for things like
caps lock.
|
|
This modifies sys$chown to allow specifying whether or not to follow
symlinks and in which directory.
This was then used to implement lchown and fchownat in LibC and LibCore.
|
|
|
|
This is needed for clangd to compile.
|
|
|
|
This is mandated by POSIX, it's fine that we don't actually implement
it, just as long as it's present during compilation. :^)
|
|
Much like the existing in6addr_any global and the IN6ADDR_ANY_INIT
macro, our LibC is also expected to export the in6addr_loopback global
and the IN6ADDR_LOOPBACK_INIT constant.
These were found by the stress-ng port.
|
|
Most other syscalls pass address arguments as `void*` instead of
`uintptr_t`, so let's do that here too. Besides improving consistency,
this commit makes `strace` correctly pretty-print these arguments in
hex.
|
|
This feature was introduced in version 4.17 of the Linux kernel, and
while it's not specified by POSIX, I think it will be a nice addition to
our system.
MAP_FIXED_NOREPLACE provides a less error-prone alternative to
MAP_FIXED: while regular fixed mappings would cause any intersecting
ranges to be unmapped, MAP_FIXED_NOREPLACE returns EEXIST instead. This
ensures that we don't corrupt our process's address space if something
is already at the requested address.
Note that the more portable way to do this is to use regular
MAP_ANONYMOUS, and check afterwards whether the returned address matches
what we wanted. This, however, has a large performance impact on
programs like Wine which try to reserve large portions of the address
space at once, as the non-matching addresses have to be unmapped
separately.
|
|
Add the `posix_madvise(..)` LibC implementation that just forwards
to the normal `madvise(..)` implementation.
Also define a few POSIX_MADV_DONTNEED and POSIX_MADV_NORMAL as they
are part of the POSIX API for `posix_madvise(..)`.
This is needed by the `fio` port.
|
|
These 2 members are required by POSIX and are also used by some ports.
Zero is a valid value for both of these, so no further work to support
them is required.
|
|
Now that the shared bottom 2 MiB virtual address mappings are gone
userspace can use lower virtual addresses.
|
|
These are required for some ports.
|
|
These should allow users to receive the names of network interfaces in
the system, but for now these are only stubs required to compile some
ports.
|