Idan Horowitz
849c227f72
Kernel: Remove big lock from sys$shutdown
...
This syscall doesn't access any unprotected shared data.
2022-04-09 23:46:02 +02:00
Idan Horowitz
e620487b66
Kernel: Remove big lock from sys$connect
...
This syscall doesn't access any unprotected shared data.
2022-04-09 23:46:02 +02:00
Idan Horowitz
9547a8e8a2
Kernel: Remove big lock from sys$close
...
This syscall doesn't access any unprotected shared data.
2022-04-09 23:46:02 +02:00
Idan Horowitz
0297349922
Kernel: Remove big lock from sys$chown
...
This syscall doesn't access any unprotected shared data.
2022-04-09 23:46:02 +02:00
Idan Horowitz
8458313e8a
Kernel: Remove big lock from sys$fchown
...
This syscall doesn't access any unprotected shared data.
2022-04-09 23:46:02 +02:00
Idan Horowitz
f986a3b886
Kernel: Remove big lock from sys$bind
...
This syscall doesn't access any unprotected shared data.
2022-04-09 23:46:02 +02:00
Luke Wilde
1682b0b6d8
Kernel: Remove big lock from sys$set_coredump_metadata
...
The only requirement for this syscall is to make
Process::m_coredump_properties SpinlockProtected.
2022-04-09 21:51:16 +02:00
Jelle Raaijmakers
cc411b328c
Kernel: Remove big lock from sys$accept4
...
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-09 17:53:18 +02:00
Andreas Kling
12b612ab14
Kernel: Mark sys$adjtime() as not needing the big lock
...
This syscall works on global kernel state and so doesn't need protection
from threads in the same process.
2022-04-04 00:42:18 +02:00
Andreas Kling
4306422f29
Kernel: Mark sys$clock_settime() as not needing the big log
...
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-04 00:42:18 +02:00
Andreas Kling
55814f6e0e
Kernel: Mark sys$sched_{set,get}param() as not needing the big lock
...
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-04 00:42:18 +02:00
Andreas Kling
36d829b97c
Kernel: Mark sys$listen() as not needing the big lock
...
This syscall already performs the necessary locking and so doesn't
need to rely on the process big lock.
2022-04-03 22:22:22 +02:00
Andreas Kling
bc4282c773
Kernel: Mark sys$sendfd() and sys$recvfd() as not needing the big lock
...
These syscalls already perform the necessary locking and don't rely on
the process big lock.
2022-04-03 22:06:03 +02:00
Tim Schumacher
4ba39c8d63
Kernel: Implement f_basetype
in statvfs
2022-04-03 19:15:14 +02:00
Idan Horowitz
086969277e
Everywhere: Run clang-format
2022-04-01 21:24:45 +01:00
Liav A
b5ef900ccd
Kernel: Don't assume paths of TTYs and pseudo terminals anymore
...
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-22 20:26:05 +01:00
int16
4307c4480e
Kernel: Define MS_WXALLOWED mount option
2022-03-22 12:20:19 +01:00
Brian Gianforcaro
f47c92bd2e
Kernel: Mark serenity_dev_
functions as static
...
This avoids multiple definition errors when linking software which
may utilize these functions from different compilation units.
2022-03-18 11:59:35 +00:00
Linus Groh
9882848e0b
Kernel: Define IF_NAMESIZE in net/if.h
...
This makes the _socket module from the Python port build. :^)
2022-03-16 18:03:25 +00:00
Andreas Kling
7b3642d08c
Kernel: Mark sys$lseek() as not needing the big lock
...
This syscall doesn't access any data that was implicitly protected by
the big lock.
2022-03-09 16:43:00 +01:00
Andreas Kling
09e644f0ba
Kernel: Mark sys$emuctl() as not needing the big lock
...
This syscall doesn't do anything at all, and definitely doesn't need the
big lock. :^)
2022-03-09 16:43:00 +01:00
Andreas Kling
b4fefedd1d
Kernel: Mark sys$chmod() as not needing the big lock
...
This syscall doesn't access any data that was implicitly protected by
the big lock.
2022-03-09 16:43:00 +01:00
Andreas Kling
aa381c4a67
Kernel: Mark sys$fchmod() as not needing the big lock
...
This syscall doesn't access any data that was implicitly protected by
the big lock.
2022-03-09 16:43:00 +01:00
Andreas Kling
d074aae422
Kernel: Mark sys$dup2() as not needing the big lock
...
This syscall doesn't access any data that was implicitly protected by
the big lock.
2022-03-09 16:43:00 +01:00
Andreas Kling
8aad9e7448
Kernel: Mark sys$ftruncate() as not needing the big lock
...
This syscall doesn't access any data that was implicitly protected by
the big lock.
2022-03-09 16:43:00 +01:00
Andreas Kling
69a6a4d927
Kernel: Mark sys$fstatvfs() as not needing the big lock
...
This syscall doesn't access any data that was implicitly protected by
the big lock.
2022-03-09 16:43:00 +01:00
Sahan Fernando
0e57f80460
LibC: Add ioctls for VirGL
2022-03-09 14:58:48 +03:30
Tim Schumacher
5200cdac43
Kernel: Remove an unused fd_set.h import
...
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.
2022-03-08 16:18:48 -08:00
Andreas Kling
6354a9a030
Kernel: Mark sys$fsync() as not needing the big lock
...
This syscall doesn't access any data that was implicitly protected by
the big lock.
2022-03-08 00:19:49 +01:00
Andreas Kling
ef45ff4703
Kernel: Mark sys$readlink() as not needing the big lock
...
This syscall doesn't access any data that was implicitly protected by
the big lock.
2022-03-08 00:19:49 +01:00
Andreas Kling
2688ee28ff
Kernel: Mark sys$stat() as not needing the big lock
...
This syscall doesn't access any data that was implicitly protected by
the big lock.
2022-03-08 00:19:49 +01:00
Andreas Kling
be7ec52ed0
Kernel: Mark sys$fstat() as not needing the big lock
...
This syscall doesn't access any data that was implicitly protected by
the big lock.
2022-03-08 00:19:49 +01:00
Andreas Kling
23822febd2
Kernel: Mark sys$fchdir() as not needing the big lock
...
This syscall doesn't access any data that was implicitly protected by
the big lock.
2022-03-08 00:19:49 +01:00
Andreas Kling
156ab0c47d
Kernel: Mark sys$chdir() as not needing the big lock
...
This syscall doesn't access any data that was implicitly protected by
the big lock.
2022-03-08 00:19:49 +01:00
Andreas Kling
7597bef771
Kernel: Mark sys$getcwd() as not needing the big lock
...
This syscall doesn't access any data that was implicitly protected by
the big lock.
2022-03-08 00:19:49 +01:00
Andreas Kling
f630d0f095
Kernel: Mark sys$realpath() as not needing the big lock
...
This syscall doesn't access any data that was implicitly protected by
the big lock.
2022-03-08 00:19:49 +01:00
Andreas Kling
7543c34d07
Kernel: Mark sys$anon_create() as not needing the big lock
...
This syscall is already safe for no-big-lock since it doesn't access any
unprotected data.
2022-03-08 00:19:49 +01:00
Andreas Kling
baa6ff5649
Kernel: Wrap HIDManagement keymap data in SpinlockProtected
...
This serializes access to the current keymap data everywhere in the
kernel, allowing to mark sys$setkeymap() as not needing the big lock.
2022-03-07 16:35:23 +01:00
Ali Mohammad Pur
e14e919b78
Kernel: Fill some siginfo and ucontext fields on SA_SIGINFO
...
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.
2022-03-04 20:07:05 +01:00
Ali Mohammad Pur
4bd01b7fe9
Kernel: Add support for SA_SIGINFO
...
We currently don't really populate most of the fields, but that can
wait :^)
2022-03-04 20:07:05 +01:00
Lucas CHOLLET
839d3d9f74
Kernel: Add getrusage() syscall
...
Only the two timeval fields are maintained, as required by the POSIX
standard.
2022-02-28 20:09:37 +01:00
Jakub Berkop
4916c892b2
Kernel/Profiling: Add profiling to read syscall
...
Syscalls to read can now be profiled, allowing us to monitor
filesystem usage by different applications.
2022-02-14 11:38:13 +01:00
Andrew Kaster
b4a7d148b1
Kernel: Expose maximum argument limit in sysconf
...
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.
2022-02-13 22:06:54 +02:00
Tom
03c45b1865
Kernel: Add ioctl to get the EDID from a framebuffer
2022-01-23 22:45:21 +00:00
Liav A
b1ca39411b
Kernel/Devices: Introduce the Device Control Device
...
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.
2022-01-23 00:38:02 +00:00
Dmitry Petrov
d61cc47055
Kernel: Add horizontal mouse scroll support
2022-01-20 10:37:52 +01:00
Daniel Bertalan
182016d7c0
Kernel+LibC+LibCore+UE: Implement fchmodat(2)
...
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.
2022-01-12 14:54:12 +01:00
Michel Hermier
69cabb3ead
Everywhere: Add serenity_dev_{makedev,major,minor}
...
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.
2022-01-09 00:58:44 +01:00
Andreas Kling
95df924e0e
Kernel: Remove EWHYTHO error code :^)
...
This error code was a hack for catching error handling mistakes in the
kernel. It's no longer used anywhere.
2022-01-08 20:10:58 +01:00
Aatos Majava
d17dca5c91
Kernel: Update key_code_count
...
This was not updated when the Menu button was added.
2022-01-04 17:57:54 +00:00