serenity/Kernel
Andreas Kling e05237485c Kernel: Various stability improvements.
- Don't cli() in Process::do_exec() unless current is execing.
  Eventually this should go away once the scheduler is less retarded
  in the face of interrupts.

- Improved memory access validation for ring0 processes.
  We now look at the kernel ELF header to determine if an access
  is appropriate. :^) It's very hackish but also kinda neat.

- Have Process::die() put the process into a new "Dying" state where
  it can still get scheduled but no signals will be dispatched.
  This way we can keep executing in die() but won't get our EIP
  hijacked by signal dispatch. The main problem here was that die()
  wanted to take various locks.
2019-02-06 17:34:27 +01:00
..
Boot Bootloader: Locate the kernel's data segment and clear it. 2019-02-06 16:02:10 +01:00
.bochsrc Kernel: Much improved BochsVGA (BXVGA) support. 2019-02-06 10:17:26 +01:00
.gitignore Add basic automatic dependency management to Makefiles. 2019-02-02 04:41:59 +01: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
Assertions.h
BochsVGADevice.cpp Bootloader: Locate the kernel's data segment and clear it. 2019-02-06 16:02:10 +01:00
BochsVGADevice.h Bootloader: Locate the kernel's data segment and clear it. 2019-02-06 16:02:10 +01:00
CharacterDevice.cpp Deallocate PTY's when they close. 2019-01-30 18:47:18 +01:00
CharacterDevice.h Add uid and gid to CharacterDevices. 2019-01-31 05:55:30 +01: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 Expose the kernel log buffer through /proc/dmesg. 2019-01-28 22:40:55 +01:00
Console.h Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
DevPtsFS.cpp Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
DevPtsFS.h Deallocate PTY's when they close. 2019-01-30 18:47:18 +01:00
DiskBackedFileSystem.cpp Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
DiskBackedFileSystem.h Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
DiskDevice.cpp Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
DiskDevice.h Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
DoubleBuffer.cpp Catch anyone trying to use a DoubleBuffer with interrupts disabled. 2019-01-16 01:58:11 +01:00
DoubleBuffer.h Rename SpinLock to Lock. It hasn't been a SpinLock for some time. 2019-01-17 16:25:02 +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 Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
ELFImage.h Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
ELFLoader.cpp Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +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
ext2_fs.h Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
ext2_types.h Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
Ext2FileSystem.cpp Kernel: Invalidate file-backed VMO's when inodes are written. 2019-02-05 08:17:46 +01:00
Ext2FileSystem.h Ext2FS: Avoid a kmallocation every time we fetch an inode from disk. 2019-02-03 04:05:30 +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 Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
FileBackedDiskDevice.cpp Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
FileBackedDiskDevice.h Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
FileDescriptor.cpp Kernel: Oops, I mixed up st_dev and st_rdev in struct stat. 2019-02-03 06:23:10 +01:00
FileDescriptor.h Make stat() work on device files again. 2019-01-31 05:05:57 +01:00
FileSystem.cpp Bootloader: Locate the kernel's data segment and clear it. 2019-02-06 16:02:10 +01:00
FileSystem.h Bootloader: Locate the kernel's data segment and clear it. 2019-02-06 16:02:10 +01:00
FullDevice.cpp Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
FullDevice.h Move VFS sources into Kernel/. 2019-01-23 05:14:00 +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 Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
GUITypes.h Add a simple close button ("X") to windows. 2019-02-05 10:31:37 +01:00
i386.cpp Kernel: Invalidate file-backed VMO's when inodes are written. 2019-02-05 08:17:46 +01:00
i386.h Kernel: Add an InterruptFlagSaver helper class. 2019-02-05 11:14:09 +01:00
i8253.cpp Clean up some uninteresting log spam. 2019-02-06 11:32:23 +01:00
i8253.h Implement event loop timers. 2019-02-01 03:50:06 +01:00
IDEDiskDevice.cpp Clean up some uninteresting log spam. 2019-02-06 11:32:23 +01:00
IDEDiskDevice.h Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
init.cpp Bootloader: Locate the kernel's data segment and clear it. 2019-02-06 16:02:10 +01:00
InodeIdentifier.h Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
InodeMetadata.h Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
IO.h Kernel: Much improved BochsVGA (BXVGA) support. 2019-02-06 10:17: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 Add support for keyboard arrow keys. 2019-01-30 21:18:13 +01:00
Keyboard.h LibGUI: Start bringing up GTextBox in the standalone world. 2019-01-26 06:39:13 +01:00
KeyCode.h LibGUI: Start bringing up GTextBox in the standalone world. 2019-01-26 06:39:13 +01:00
kmalloc.cpp Kernel: Unbreak symbolication yet another time. 2019-01-27 10:17:56 +01:00
kmalloc.h Kernel: Unbreak symbolication yet another time. 2019-01-27 10:17:56 +01:00
kprintf.cpp Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +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 Kernel: VFS::open/create should take base Inode& instead of InodeIdentifier. 2019-02-01 15:36:45 +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
Limits.h Kernel: Get rid of Unix namespace. 2019-01-23 06:57:00 +01:00
linker.ld
makeall.sh Clock: Turns the clock window from guitest2 into a separate program. 2019-02-05 09:44:13 +01:00
Makefile Clean up LDFLAGS a bit. 2019-02-06 14:48:09 +01:00
makeuserland.sh Clock: Turns the clock window from guitest2 into a separate program. 2019-02-05 09:44:13 +01:00
MasterPTY.cpp Kernel: Writing to a slave PTY should yield EIO if the master is closed. 2019-02-05 13:09:01 +01:00
MasterPTY.h Kernel: Writing to a slave PTY should yield EIO if the master is closed. 2019-02-05 13:09:01 +01:00
MemoryManager.cpp Kernel: Various stability improvements. 2019-02-06 17:34:27 +01:00
MemoryManager.h Show the amount of memory in GraphicsBitmaps in /bin/top. 2019-02-05 09:27:27 +01:00
mkf.sh Start working on a simple graphical font editor. 2019-02-02 08:07:06 +01:00
mkmap.sh Omit duplicate lines from the ksyms map. 2018-12-03 02:23:49 +01:00
NullDevice.cpp Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
NullDevice.h Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
PCI.cpp Kernel: Much improved BochsVGA (BXVGA) support. 2019-02-06 10:17:26 +01:00
PCI.h Kernel: Much improved BochsVGA (BXVGA) support. 2019-02-06 10:17:26 +01:00
PIC.cpp Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
PIC.h Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
Process.cpp Kernel: Various stability improvements. 2019-02-06 17:34:27 +01:00
Process.h Kernel: Various stability improvements. 2019-02-06 17:34:27 +01:00
ProcessGUI.cpp Bootloader: Locate the kernel's data segment and clear it. 2019-02-06 16:02:10 +01:00
ProcFS.cpp Kernel: Add /proc/pci so we can see what's on the PCI bus. 2019-02-06 10:29:35 +01:00
ProcFS.h Kernel: Rewrite ProcFS. 2019-02-03 12:33:11 +01:00
PS2MouseDevice.cpp PS2MouseDevice: Try to synchronize the data reporting stream. 2019-01-17 02:13:21 +01:00
PS2MouseDevice.h Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
PTYMultiplexer.cpp Bootloader: Locate the kernel's data segment and clear it. 2019-02-06 16:02:10 +01:00
PTYMultiplexer.h Bootloader: Locate the kernel's data segment and clear it. 2019-02-06 16:02:10 +01:00
Queue.h Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
RandomDevice.cpp Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
RandomDevice.h Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
RTC.cpp Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
RTC.h Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
run Add TIOCGWINSZ ioctl so userland can determine terminal geometry. 2018-11-29 03:45:23 +01:00
Scheduler.cpp Kernel: Various stability improvements. 2019-02-06 17:34:27 +01:00
Scheduler.h Kernel: Clean up around Scheduler::yield() a bit. 2019-02-06 15:06:48 +01:00
SlavePTY.cpp Kernel: Writing to a slave PTY should yield EIO if the master is closed. 2019-02-05 13:09:01 +01:00
SlavePTY.h Kernel: Writing to a slave PTY should yield EIO if the master is closed. 2019-02-05 13:09:01 +01:00
StdLib.cpp Kernel: Rewrite ProcFS. 2019-02-03 12:33:11 +01:00
StdLib.h Make it possible to build the Kernel on a macOS host. 2018-12-02 23:34:50 +01:00
sync.sh Clock: Turns the clock window from guitest2 into a separate program. 2019-02-05 09:44:13 +01:00
SyntheticFileSystem.cpp Big, possibly complete sweep of naming changes. 2019-01-31 17:31:23 +01:00
SyntheticFileSystem.h Add a /dev/pts filesystem and make PTY allocation dynamic. 2019-01-30 00:49:20 +01:00
Syscall.cpp Clean up some uninteresting log spam. 2019-02-06 11:32:23 +01:00
Syscall.h Get nyancat nyanning in Serenity. 2019-02-03 16:11:28 +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 Kernel: Closing a MasterPTY should generate a TTY hangup. 2019-02-05 12:55:19 +01:00
TTY.h Kernel: Writing to a slave PTY should yield EIO if the master is closed. 2019-02-05 13:09:01 +01:00
types.h Get nyancat nyanning in Serenity. 2019-02-03 16:11:28 +01:00
UnixTypes.h LibC: Add mktime(). 2019-01-31 16:51:27 +01:00
VirtualConsole.cpp Kernel: Writing to a slave PTY should yield EIO if the master is closed. 2019-02-05 13:09:01 +01:00
VirtualConsole.h Kernel: Writing to a slave PTY should yield EIO if the master is closed. 2019-02-05 13:09:01 +01:00
VirtualFileSystem.cpp Kernel: Fix some broken debugging code in VFS. 2019-02-06 17:34:27 +01:00
VirtualFileSystem.h Bootloader: Locate the kernel's data segment and clear it. 2019-02-06 16:02:10 +01:00
ZeroDevice.cpp Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00
ZeroDevice.h Move VFS sources into Kernel/. 2019-01-23 05:14:00 +01:00