1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 04:07:44 +00:00

Kernel: Partial usage of Userspace<T> for the poll syscall

This change mostly converts poll to Userspace<T> with the caveat
of the fds member of SC_poll_params. It's current usage is a bit
too gnarly for me to take on right now, this appears to need a lot
more love.

In addition to enlightening the syscall to use Userspace<T>, I've
also re-worked most of the handling to use validate_read_and_copy
instead of just directly de-referencing the user pointer. We also
appeared to be missing a re-evaluation of the fds array after the
thread block is awoken.
This commit is contained in:
Brian Gianforcaro 2020-08-04 23:15:42 -07:00 committed by Andreas Kling
parent b4a29113e4
commit 7e6fbef8db
3 changed files with 24 additions and 18 deletions

View file

@ -275,8 +275,8 @@ struct SC_select_params {
struct SC_poll_params {
struct pollfd* fds;
unsigned nfds;
const struct timespec* timeout;
const u32* sigmask;
Userspace<const struct timespec*> timeout;
Userspace<const u32*> sigmask;
};
struct SC_clock_nanosleep_params {