ladybird/Userland
Andreas Kling fdfc66db61 Kernel+LibC: Allow clock_gettime() to run without syscalls
This patch adds a vDSO-like mechanism for exposing the current time as
an array of per-clock-source timestamps.

LibC's clock_gettime() calls sys$map_time_page() to map the kernel's
"time page" into the process address space (at a random address, ofc.)
This is only done on first call, and from then on the timestamps are
fetched from the time page.

This first patch only adds support for CLOCK_REALTIME, but eventually
we should be able to support all clock sources this way and get rid of
sys$clock_gettime() in the kernel entirely. :^)

Accesses are synchronized using two atomic integers that are incremented
at the start and finish of the kernel's time page update cycle.
2021-08-10 19:21:16 +02:00
..
Applets Everywhere: Replace Model::update() with Model::invalidate() 2021-08-06 19:14:31 +02:00
Applications Spreadsheet: Call SheetModel::update() instead of invalidate() 2021-08-10 05:21:49 +04:30
Demos Mandelbrot: Only recalculate missing areas after panning 2021-08-10 09:48:12 +02:00
DevTools Kernel+UserspaceEmulator: Remove unused sys$gettimeofday() 2021-08-10 13:01:39 +02:00
DynamicLoader DynamicLoader: Make sure we don't link against libgcc_s 2021-08-08 16:41:51 +02:00
Games Solitaire: Don't allow the player to draw cards while mouse is down 2021-08-07 16:59:46 +02:00
Libraries Kernel+LibC: Allow clock_gettime() to run without syscalls 2021-08-10 19:21:16 +02:00
Services LaunchServer: Resolve symlinks when querying for handler application 2021-08-10 05:26:36 +04:30
Shell Shell: Make sure TTY echo is enabled when running external commands 2021-08-04 03:14:59 +04:30
Utilities LibCpp: Do lexing in the Preprocessor 2021-08-07 21:24:11 +02:00
CMakeLists.txt Tests: Establish root Tests directory, move Userland/Tests there 2021-05-06 17:54:28 +02:00