ladybird/Kernel
Andreas Kling a2ec09bc20 Allow the scheduler to unblock the current process.
It's a bit confusing that the "current" process is not actually running
while we're inside the scheduler. Perhaps the scheduler should redirect
"current" to its own dummy Process. I'm not sure.

Regardless, this patch improves responsiveness by allowing the scheduler
to unblock a process right after it calls select() in case it already has
a pending wakeup request.
2019-01-16 17:47:18 +01:00
..
Boot Switch into 1024x768x32bpp VESA LFB mode at boot. 2019-01-09 02:29:11 +01:00
.bochsrc Allow the scheduler to unblock the current process. 2019-01-16 17:47:18 +01:00
.gitignore Stop committing changes to _fs_contents and generate it in the sync script. 2018-10-28 01:21:15 +02:00
_fs_contents.stock Unbreak ksym loading and make reading /proc/PID/stack not crash. 2019-01-01 02:20:01 +01:00
_start.cpp Import the "gerbert" kernel I worked on earlier this year. 2018-10-16 11:02:00 +02:00
Assertions.h Add a simple IDEDiskDevice class that implements DiskDevice from VFS. 2018-10-16 14:17:43 +02:00
CMOS.cpp Make bash-2.05b build with minimal changes. 2018-11-17 00:14:07 +01:00
CMOS.h Make bash-2.05b build with minimal changes. 2018-11-17 00:14:07 +01:00
Console.cpp Pass the process to CharacterDevice::read/write. 2019-01-16 00:20:38 +01:00
Console.h Pass the process to CharacterDevice::read/write. 2019-01-16 00:20:38 +01:00
DoubleBuffer.cpp Catch anyone trying to use a DoubleBuffer with interrupts disabled. 2019-01-16 01:58:11 +01:00
DoubleBuffer.h Add internal locking to DoubleBuffer. 2019-01-15 21:43:38 +01:00
elf.h Make it possible to build the Kernel on a macOS host. 2018-12-02 23:34:50 +01:00
ELFImage.cpp Move ELFLoader code into Kernel/. 2018-12-02 20:27:08 +01:00
ELFImage.h Use the entry point address from the ELF header instead of looking up _start. 2018-12-29 03:28:55 +01:00
ELFLoader.cpp Move ELFLoader code into Kernel/. 2018-12-02 20:27:08 +01:00
ELFLoader.h Use the entry point address from the ELF header instead of looking up _start. 2018-12-29 03:28:55 +01:00
errno.h Add sys_nerr and sys_errlist. 2018-11-06 14:42:28 +01:00
FIFO.cpp Allow character devices to block write attempts until there is more space. 2019-01-15 09:17:22 +01:00
FIFO.h Refactor the FIFO implementation to use a DoubleBuffer as backing store. 2018-12-03 02:24:11 +01:00
GUIEventDevice.cpp Tear out or duplicate what's unique for WindowServer from Widgets. 2019-01-16 16:03:50 +01:00
GUIEventDevice.h Tear out or duplicate what's unique for WindowServer from Widgets. 2019-01-16 16:03:50 +01:00
GUITypes.h Add very basic KeyDown events to the GUI event stream. 2019-01-15 06:51:00 +01:00
i386.cpp Add basic PTY support. 2019-01-15 06:30:19 +01:00
i386.h Tear out or duplicate what's unique for WindowServer from Widgets. 2019-01-16 16:03:50 +01:00
i8253.cpp More coding style changes. 2018-12-03 00:39:25 +01:00
i8253.h Import the "gerbert" kernel I worked on earlier this year. 2018-10-16 11:02:00 +02:00
IDEDiskDevice.cpp Yet another pass of style fixes. 2018-12-21 02:10:45 +01:00
IDEDiskDevice.h Yet more coding style fixes. 2018-12-03 01:38:22 +01:00
init.cpp Rework WindowServer to use select() in its main event loop. 2019-01-16 17:20:58 +01:00
IO.h Make IO helpers inline and use immediate-encoded ports when possible. 2018-11-02 10:14:26 +01:00
IRQHandler.cpp More coding style changes. 2018-12-03 00:39:25 +01:00
IRQHandler.h More coding style changes. 2018-12-03 00:39:25 +01:00
kassert.h More coding style changes. 2018-12-03 00:39:25 +01:00
Keyboard.cpp Rework WindowServer to use select() in its main event loop. 2019-01-16 17:20:58 +01:00
Keyboard.h Rework WindowServer to use select() in its main event loop. 2019-01-16 17:20:58 +01:00
kmalloc.cpp Tidy up memory map a bit and write out the general map in MemoryManager. 2019-01-16 00:44:09 +01:00
kmalloc.h Don't use dword-by-dword memset/memcpy if the addresses are unaligned. 2019-01-12 23:36:08 +01:00
kprintf.cpp Pass the process to CharacterDevice::read/write. 2019-01-16 00:20:38 +01:00
kprintf.h Build Painter & friends into LibC. Use it in the GUI test app. 2019-01-14 20:02:51 +01:00
kstdio.h Fix Userland build. 2019-01-13 04:31:16 +01:00
KSyms.cpp Pass the process to CharacterDevice::read/write. 2019-01-16 00:20:38 +01:00
KSyms.h Unbreak ksym loading and make reading /proc/PID/stack not crash. 2019-01-01 02:20:01 +01:00
ktime.h Fix some minor build warnings. 2018-10-17 16:48:43 +02:00
linker.ld Import the "gerbert" kernel I worked on earlier this year. 2018-10-16 11:02:00 +02:00
makeall.sh Add basic PTY support. 2019-01-15 06:30:19 +01:00
Makefile Tear out or duplicate what's unique for WindowServer from Widgets. 2019-01-16 16:03:50 +01:00
makeuserland.sh Fix some paging related bugs exposed by the spawn stress test. 2018-11-09 01:25:31 +01:00
MasterPTY.cpp Let each MasterPTY create its slave. 2019-01-16 02:11:50 +01:00
MasterPTY.h Add a PTY multiplexer (/dev/ptmx) device. 2019-01-16 13:39:32 +01:00
MemoryManager.cpp Rework WindowServer to use select() in its main event loop. 2019-01-16 17:20:58 +01:00
MemoryManager.h Get rid of Vnode concept. 2019-01-16 12:57:07 +01:00
mkmap.sh Omit duplicate lines from the ksyms map. 2018-12-03 02:23:49 +01:00
PIC.cpp Make bash-2.05b build with minimal changes. 2018-11-17 00:14:07 +01:00
PIC.h Make bash-2.05b build with minimal changes. 2018-11-17 00:14:07 +01:00
Process.cpp Allow the scheduler to unblock the current process. 2019-01-16 17:47:18 +01:00
Process.h Rework WindowServer to use select() in its main event loop. 2019-01-16 17:20:58 +01:00
ProcessGUI.cpp Rework WindowServer to use select() in its main event loop. 2019-01-16 17:20:58 +01:00
ProcFileSystem.cpp Get rid of Vnode concept. 2019-01-16 12:57:07 +01:00
ProcFileSystem.h More coding style changes. 2018-12-03 00:39:25 +01:00
PS2MouseDevice.cpp Rework WindowServer to use select() in its main event loop. 2019-01-16 17:20:58 +01:00
PS2MouseDevice.h Use a CircularQueue for the PS/2 mouse driver. 2019-01-16 01:52:39 +01:00
PTYMultiplexer.cpp Add a PTY multiplexer (/dev/ptmx) device. 2019-01-16 13:39:32 +01:00
PTYMultiplexer.h Add a PTY multiplexer (/dev/ptmx) device. 2019-01-16 13:39:32 +01:00
Queue.h Import the "gerbert" kernel I worked on earlier this year. 2018-10-16 11:02:00 +02:00
RTC.cpp Add assertion that RTC year is >= 2018. 2018-10-31 00:27:28 +01:00
RTC.h Add gettimeofday() syscall and LibC wrappers gettimeofday() and time(). 2018-10-25 17:36:18 +02:00
run Add TIOCGWINSZ ioctl so userland can determine terminal geometry. 2018-11-29 03:45:23 +01:00
Scheduler.cpp Rework WindowServer to use select() in its main event loop. 2019-01-16 17:20:58 +01:00
Scheduler.h Move timer tick handling into Scheduler. 2018-11-08 00:26:04 +01:00
SlavePTY.cpp Let each MasterPTY create its slave. 2019-01-16 02:11:50 +01:00
SlavePTY.h Add a PTY multiplexer (/dev/ptmx) device. 2019-01-16 13:39:32 +01:00
StdLib.cpp Let's do dword-at-a-time memcpy() and memset() in userspace as well. 2019-01-15 08:14:44 +01:00
StdLib.h Make it possible to build the Kernel on a macOS host. 2018-12-02 23:34:50 +01:00
sync-local.sh Make bash-2.05b build with minimal changes. 2018-11-17 00:14:07 +01:00
sync.sh Rework WindowServer to use select() in its main event loop. 2019-01-16 17:20:58 +01:00
Syscall.cpp Implement basic support for POSIX-style select(). 2019-01-16 00:09:58 +01:00
Syscall.h Implement basic support for POSIX-style select(). 2019-01-16 00:09:58 +01:00
system.h The syncd loop can just be a lambda. 2018-12-24 23:10:48 +01:00
TSS.h Share code between spawn() and exec() implementations. 2018-11-03 10:55:02 +01:00
TTY.cpp Pass the process to CharacterDevice::read/write. 2019-01-16 00:20:38 +01:00
TTY.h Pass the process to CharacterDevice::read/write. 2019-01-16 00:20:38 +01:00
types.h Add PhysicalAddress::offset(). 2019-01-08 22:29:34 +01:00
VirtualConsole.cpp Hook up the Keyboard device to the AbstractScreen. 2019-01-11 04:40:05 +01:00
VirtualConsole.h VirtualConsole: Support the 'A' and 'D' CSI sequences. 2018-12-07 01:19:02 +01:00