serenity/Kernel
Andreas Kling 3e3de67f02 Use the VGA start address for fast VirtualConsole scrolling.
Instead of memcpy'ing the entire screen every time we press enter at the
bottom, use the VGA start address register to make a "view" onto the
underlying memory that moves downward as we scroll.

Eventually we run out of memory and have to reset to the start of the
buffer. That's when we memcpy everything. It would be cool if there was
some way to get the hardware to act like a ring buffer with automatic
wrapping here but I don't know how to do that.
2018-11-09 21:18:03 +01:00
..
Boot Enable A20 line at boot. 2018-10-27 14:09:33 +02:00
.bochsrc Use the VGA start address for fast VirtualConsole scrolling. 2018-11-09 21:18:03 +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 Stop committing changes to _fs_contents and generate it in the sync script. 2018-10-28 01:21:15 +02: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 Import the "gerbert" kernel I worked on earlier this year. 2018-10-16 11:02:00 +02:00
CMOS.h Import the "gerbert" kernel I worked on earlier this year. 2018-10-16 11:02:00 +02:00
Console.cpp Fix bug where Console::the() was initialized too late. 2018-10-30 23:02:06 +01:00
Console.h Add a kmalloc_eternal() for things that will never be destroyed. 2018-10-31 23:19:15 +01:00
Disk.cpp Make VFS test environment build again. 2018-11-07 12:05:51 +01:00
Disk.h Remove old DatBuffer class. 2018-10-25 10:50:30 +02:00
errno.h Add sys_nerr and sys_errlist. 2018-11-06 14:42:28 +01:00
ext2fs.h Import the "gerbert" kernel I worked on earlier this year. 2018-10-16 11:02:00 +02:00
i386.cpp Fix all current build warnings in the kernel. 2018-11-09 10:03:21 +01:00
i386.h Make Process::for_each...() functions inline and allocation-free. 2018-11-08 16:09:05 +01:00
i8253.cpp Move timer tick handling into Scheduler. 2018-11-08 00:26:04 +01:00
i8253.h Import the "gerbert" kernel I worked on earlier this year. 2018-10-16 11:02:00 +02:00
IDEDiskDevice.cpp Snazz up the kprintf() output a bit by giving it its own color. 2018-10-31 20:14:23 +01:00
IDEDiskDevice.h Add a simple IDEDiskDevice class that implements DiskDevice from VFS. 2018-10-16 14:17:43 +02:00
init.cpp Pre-size the ksyms vector for speedier loading. 2018-11-09 20:40:39 +01:00
InlineLinkedList.h Generate a basic /proc/summary file with some info about all tasks. 2018-10-23 12:44:46 +02:00
IO.h Make IO helpers inline and use immediate-encoded ports when possible. 2018-11-02 10:14:26 +01:00
IRQHandler.cpp Add IRQHandler class that can be subclasses to handle an IRQ. 2018-10-22 12:58:29 +02:00
IRQHandler.h Add IRQHandler class that can be subclasses to handle an IRQ. 2018-10-22 12:58:29 +02:00
kassert.h Move assertion failures out-of-line to reduce binary bloat. 2018-11-04 13:12:58 +01:00
Keyboard.cpp Fix all current build warnings in the kernel. 2018-11-09 10:03:21 +01:00
Keyboard.h Basic ^C interrupt implementation. 2018-11-02 14:06:48 +01:00
kmalloc.cpp Fix all current build warnings in the kernel. 2018-11-09 10:03:21 +01:00
kmalloc.h Give each task its own page directory. 2018-11-01 09:01:51 +01:00
kprintf.cpp Fix broken SpinLock. 2018-10-29 22:04:26 +01:00
kprintf.h Fix broken SpinLock. 2018-10-29 22:04:26 +01:00
kstdio.h Move kprintf to its own file. It has nothing to do with VGA anymore. 2018-10-22 13:20:35 +02: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 Fix some paging related bugs exposed by the spawn stress test. 2018-11-09 01:25:31 +01:00
Makefile Make kernel build with clang. 2018-11-09 12:22:31 +01:00
makeuserland.sh Fix some paging related bugs exposed by the spawn stress test. 2018-11-09 01:25:31 +01:00
MemoryManager.cpp Fix some paging related bugs exposed by the spawn stress test. 2018-11-09 01:25:31 +01:00
MemoryManager.h Make kernel build with clang. 2018-11-09 12:22:31 +01:00
mkmap.sh Pre-size the ksyms vector for speedier loading. 2018-11-09 20:40:39 +01:00
PIC.cpp A lot of hacking: 2018-10-22 11:15:16 +02:00
PIC.h Add a PIC::getISR() helper. 2018-10-17 16:54:49 +02:00
Process.cpp Use the VGA start address for fast VirtualConsole scrolling. 2018-11-09 21:18:03 +01:00
Process.h Okay, now *actually* plug the leaks in exec(). 2018-11-09 18:00:50 +01:00
ProcFileSystem.cpp Add /proc/vnodes, listing basic info about all open vnodes. 2018-11-09 17:46:55 +01:00
ProcFileSystem.h Process now maps regions immediately when they are allocated. 2018-11-01 13:15:46 +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 Run QEMU with the possibility to attach gdb. 2018-11-09 18:35:32 +01:00
Scheduler.cpp Fix some paging related bugs exposed by the spawn stress test. 2018-11-09 01:25:31 +01:00
Scheduler.h Move timer tick handling into Scheduler. 2018-11-08 00:26:04 +01:00
StdLib.cpp Make kernel build with clang. 2018-11-09 12:22:31 +01:00
StdLib.h Make kernel build with clang. 2018-11-09 12:22:31 +01:00
sync-local.sh Enough compatibility work to make figlet build and run! 2018-10-31 17:52:59 +01:00
sync.sh Fix some paging related bugs exposed by the spawn stress test. 2018-11-09 01:25:31 +01:00
Syscall.cpp Make kernel build with clang. 2018-11-09 12:22:31 +01:00
Syscall.h Get rid of redundant sys$spawn now that we have fork+exec. 2018-11-09 10:22:27 +01:00
system.h Add a kmalloc_eternal() for things that will never be destroyed. 2018-10-31 23:19:15 +01:00
TSS.h Share code between spawn() and exec() implementations. 2018-11-03 10:55:02 +01:00
TTY.cpp Fix all current build warnings in the kernel. 2018-11-09 10:03:21 +01:00
TTY.h Add some simple write buffering to LibC's stdio. 2018-11-08 01:23:47 +01:00
types.h Fix some paging related bugs exposed by the spawn stress test. 2018-11-09 01:25:31 +01:00
VGA.cpp Use the VGA start address for fast VirtualConsole scrolling. 2018-11-09 21:18:03 +01:00
VGA.h Use the VGA start address for fast VirtualConsole scrolling. 2018-11-09 21:18:03 +01:00
VirtualConsole.cpp Use the VGA start address for fast VirtualConsole scrolling. 2018-11-09 21:18:03 +01:00
VirtualConsole.h Use the VGA start address for fast VirtualConsole scrolling. 2018-11-09 21:18:03 +01:00