1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 02:17:35 +00:00
serenity/Kernel
Robin Burchell 53262cd08b AK: Introduce IntrusiveList
And use it in the scheduler.

IntrusiveList is similar to InlineLinkedList, except that rather than
making assertions about the type (and requiring inheritance), it
provides an IntrusiveListNode type that can be used to put an instance
into many different lists at once.

As a proof of concept, port the scheduler over to use it. The only
downside here is that the "list" global needs to know the position of
the IntrusiveListNode member, so we have to position things a little
awkwardly to make that happen. We also move the runnable lists to
Thread, to avoid having to publicize the node.
2019-07-19 15:42:30 +02:00
..
Arch/i386 Kernel: Move VirtualAddress.h into VM/ 2019-07-09 15:04:45 +02:00
Boot Kernel: Make better use of the multiboot info. 2019-06-02 09:53:42 +02:00
Devices Kernel: Restore state strings for block states 2019-07-19 11:03:22 +02:00
FileSystem Kernel: Some small refinements to the thread blockers. 2019-07-19 13:19:47 +02:00
Net Kernel: Remove memory allocations from the new Blocker API 2019-07-19 11:03:22 +02:00
TTY AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
VM Kernel: Remove use of [[gnu::pure]]. 2019-07-16 13:44:41 +02:00
.bochsrc Give the emulator testing environments 128 MB of RAM. 2019-03-27 13:02:29 +01:00
.gitignore Meta: Removed all gitignore in the source tree only keeping the root one 2019-06-30 10:41:26 +02:00
Assertions.h Kernel: Move i386.{cpp,h} => Arch/i386/CPU.{cpp,h} 2019-06-07 20:02:01 +02:00
build-image-grub.sh Build: Remove grub from default build process 2019-06-04 07:15:44 -07:00
build-image-qemu.sh Build: Fix incorrect user and group settings for disk image (#280) 2019-07-03 16:57:37 +02:00
build-root-filesystem.sh SystemDialog: Add a new app for showing system dialogs. 2019-07-16 21:41:13 +02:00
CMOS.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
CMOS.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Console.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Console.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
DoubleBuffer.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
DoubleBuffer.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
grub.cfg Kernel: Parse cmdline for root filesystem e.g. root=/dev/hda1 2019-06-04 07:14:40 -07:00
init.cpp Kernel: Remove memory allocations from the new Blocker API 2019-07-19 11:03:22 +02:00
install.sh Build: Install most headers to Root (and libcore.a/libgui.a) 2019-05-17 21:59:48 +02:00
IO.h Kernel: First cut of a sb16 driver 2019-07-13 08:00:24 +02:00
IRQHandler.cpp Kernel: Move PIC.cpp into Arch/i386/ 2019-07-09 15:04:43 +02:00
IRQHandler.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
KeyCode.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
kmalloc.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
kmalloc.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
KParams.cpp Kernel: Fix KParams parsing with trailing space in kernel cmdline 2019-06-04 07:08:07 -07:00
KParams.h Kernel: Run clang-format on everything. 2019-06-07 11:43:58 +02:00
kprintf.cpp Kernel: Colorize debugger output from the kernel. 2019-06-22 22:45:16 +02:00
KResult.h Kernel: Fix KResultOr move constructor not copying errors. 2019-06-14 06:24:02 +02:00
kstdio.h LibHTML: Make it possible to build LibHTML on the host. 2019-06-22 21:21:57 +02:00
KSyms.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
KSyms.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
linker.ld Kernel: Use a multiboot header instead of a convoluted two-part bootloader. 2019-04-01 21:43:07 +02:00
Lock.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
makeall.sh LibDraw: Introduce (formerly known as SharedGraphics.) 2019-07-18 10:18:16 +02:00
Makefile Kernel: Initial FDC Device Driver (#315) 2019-07-17 15:51:51 +02:00
mkmap.sh Kernel: Don't symbolicate symbol+offset for obvious non-kernel addresses. 2019-04-30 14:47:22 +02:00
MousePacket.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Multiboot.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
PCI.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
PCI.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
Process.cpp Kernel: Only allow superuser to halt() the system (#342) 2019-07-19 13:08:26 +02:00
Process.h Process: Now that Thread::for_each are composable, we can reuse them rather than rewriting them 2019-07-19 13:19:02 +02:00
ProcessTracer.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
ProcessTracer.h Kernel: Move File.{cpp,h} into FileSystem/ 2019-07-09 15:04:45 +02:00
RTC.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
RTC.h Add clang-format file 2019-05-28 17:31:20 +02:00
run Kernel: First cut of a sb16 driver 2019-07-13 08:00:24 +02:00
Scheduler.cpp AK: Introduce IntrusiveList 2019-07-19 15:42:30 +02:00
Scheduler.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
SharedBuffer.cpp SharedBuffer: Fix deadlock on destroy 2019-07-16 15:27:46 +02:00
SharedBuffer.h SharedBuffer: Fix deadlock on destroy 2019-07-16 15:27:46 +02:00
StdLib.cpp AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
StdLib.h AK: Rename the common integer typedefs to make it obvious what they are. 2019-07-03 21:20:13 +02:00
sync.sh Build: Remove grub from default build process 2019-06-04 07:15:44 -07:00
Syscall.cpp Kernel: Only allow superuser to halt() the system (#342) 2019-07-19 13:08:26 +02:00
Syscall.h Kernel+Userland: Addd reboot syscall (#334) 2019-07-19 09:58:12 +02:00
Thread.cpp AK: Introduce IntrusiveList 2019-07-19 15:42:30 +02:00
Thread.h AK: Introduce IntrusiveList 2019-07-19 15:42:30 +02:00
UnixTypes.h Kernel: Add support for the WSTOPPED flag to the waitpid() syscall. 2019-07-14 11:35:49 +02:00