ladybird/Kernel
Tom 6cb640eeba Kernel: Move some time related code from Scheduler into TimeManagement
Use the TimerQueue to expire blocking operations, which is one less thing
the Scheduler needs to check on every iteration.

Also, add a BlockTimeout class that will automatically handle relative or
absolute timeouts as well as overriding timeouts (e.g. socket timeouts)
more consistently.

Also, rework the TimerQueue class to be able to fire events from
any processor, which requires Timer to be RefCounted. Also allow
creating id-less timers for use by blocking operations.
2020-11-30 13:17:02 +01:00
..
ACPI Kernel: Assume 8042 controller is present if ACPI FADT revision <= 1 2020-11-12 18:04:16 +01:00
API Kernel+LibC: Add adjtime(2) 2020-11-10 19:03:08 +01:00
Arch Kernel: Fix deadlock when unicasting/broadcasting SMP message 2020-11-11 12:27:25 +01:00
Devices Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
FileSystem Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
Heap Kernel: Defer kmalloc heap contraction 2020-11-04 21:21:37 +01:00
Interrupts Kernel: Don't remap IOAPIC registers every time we try to read/write 2020-11-01 10:30:20 +01:00
Modules Kernel: Module symbol declarations for type-checking 2020-08-12 20:40:59 +02:00
Net MACAddress: AK::Array as member variable instead of C-array 2020-11-20 21:18:14 +01:00
PCI Kernel: Reduce code duplication in the PCI IO access read helpers 2020-11-01 10:19:17 +01:00
Syscalls Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
Tasks Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
Time Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
TTY AK: Make RefPtr, NonnullRefPtr, WeakPtr thread safe 2020-11-10 19:11:52 +01:00
VM Kernel: Protect the PageDirectory from concurrent access 2020-11-11 12:27:25 +01:00
.gitignore
Assertions.h Kernel: List all CPUs in /proc/cpuinfo 2020-07-01 12:07:01 +02:00
CMakeLists.txt Kernel: Implement an asynchronous device request stack 2020-11-12 18:04:30 +01:00
CMOS.cpp Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
CMOS.h
CommandLine.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
CommandLine.h Kernel: Copy command line to a safe place 2020-08-25 09:48:48 +02:00
Console.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Console.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
DoubleBuffer.cpp Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
DoubleBuffer.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
Forward.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
init.cpp Kernel: Enable VMWareBackdoor immediately at boot 2020-11-26 10:00:01 +01:00
IO.h Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
KBuffer.h Kernel: Make Inode::read_entire() return a KBuffer (not ByteBuffer) 2020-08-11 20:29:14 +02:00
KBufferBuilder.cpp AK+Kernel: Escape JSON keys & values 2020-11-02 12:56:36 +01:00
KBufferBuilder.h AK+Kernel: Escape JSON keys & values 2020-11-02 12:56:36 +01:00
kprintf.cpp Kernel: Stop supporting sprintf 2020-08-22 20:55:10 +02:00
KResult.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
kstdio.h Kernel: Stop supporting sprintf 2020-08-22 20:55:10 +02:00
KSyms.cpp Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
KSyms.h Kernel: Update cryptically-named functions related to symbolication 2020-04-08 17:19:46 +02:00
linker.ld Kernel: Invoke heap constructors separately early on 2020-08-10 20:05:18 +02:00
Lock.cpp Kernel: Minor Lock optimization 2020-11-11 12:27:25 +01:00
Lock.h AK: Add ALWAYS_INLINE, NEVER_INLINE and FLATTEN macros 2020-04-30 11:43:25 +02:00
mkmap.sh Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
Module.h Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
Multiboot.h
PerformanceEventBuffer.cpp Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
PerformanceEventBuffer.h Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
PhysicalAddress.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Process.cpp Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
Process.h Kernel: Add unveil('b') 2020-11-23 18:37:40 +01:00
ProcessGroup.cpp Kernel: Distinguish between new and old process groups with equal pgids 2020-08-19 21:21:34 +02:00
ProcessGroup.h Kernel: Distinguish between new and old process groups with equal pgids 2020-08-19 21:21:34 +02:00
Profiling.cpp AK: Rename KB, MB, GB to KiB, MiB, GiB 2020-08-16 16:33:28 +02:00
Profiling.h Kernel: More PID/TID typing 2020-08-10 11:51:45 +02:00
Ptrace.cpp Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
Ptrace.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Random.cpp Kernel: Switch singletons to use new Singleton class 2020-08-25 09:48:48 +02:00
Random.h LibCrypto: Require intent parameter in CTR constructor 2020-11-29 20:22:56 +01:00
RTC.cpp Kernel: Minor tweak to now() computation 2020-08-26 08:52:07 +02:00
RTC.h
Scheduler.cpp Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
Scheduler.h Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
SharedBuffer.cpp Kernel: Fix SharedBuffer reference counting on fork 2020-11-24 21:26:39 +01:00
SharedBuffer.h Kernel: Fix SharedBuffer reference counting on fork 2020-11-24 21:26:39 +01:00
SpinLock.h Kernel: Minor SpinLock improvements 2020-11-11 12:27:25 +01:00
StdLib.cpp Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
StdLib.h Kernel: Add checks for is_trivially_copyable to copy_to/from_user 2020-10-02 15:38:07 +02:00
Syscall.cpp Kernel: Convert dbg() to dbgln() in Syscall.cpp 2020-11-23 16:08:42 +01:00
Thread.cpp Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
Thread.h Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
ThreadTracer.cpp Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
ThreadTracer.h Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
TimerQueue.cpp Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
TimerQueue.h Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
UnixTypes.h Kernel: Implement _SC_OPEN_MAX 2020-09-27 01:02:11 +02:00
UserOrKernelBuffer.cpp AK: Add StringBuilder::appendff using the new format. 2020-09-22 15:06:40 +02:00
UserOrKernelBuffer.h FileSystem: Use OutputMemoryStream instead of BufferStream. 2020-09-15 20:36:45 +02:00
VirtualAddress.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
WaitQueue.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
WaitQueue.h SinglyLinkedList: Remove unused includes 2020-10-08 09:54:41 +02:00