summaryrefslogtreecommitdiff
path: root/Kernel
AgeCommit message (Collapse)Author
2019-03-06Kernel: Add two error checks for open() to return EISDIR or ENODEV.Andreas Kling
2019-03-06Kernel: Dump kernel stack trace on assertion failure.Andreas Kling
2019-03-05Kernel+WindowServer: Move mouse input signal parsing to kernel driver.Andreas Kling
It was silly for the WindowServer to have to know anything about the format of PS/2 mouse packets. This patch also enables use of the middle mouse button.
2019-03-05Kernel: Remove "requested wakeups" feature.Andreas Kling
I only needed this to support the WindowServer living inside the kernel. Now that it's been migrated to userspace, this can go. :^)
2019-03-05Kernel: More signal handling improvements.Andreas Kling
Finally fixed the weird flaky crashing when resizing Terminal windows. It was because we were dispatching a signal to "current" from the scheduler. Yet another thing I dislike about even having a "current" process while we're in the scheduler. Not sure yet how to fix this. Let the signal handler's kernel stack be a kmalloc() allocation for now. Once we can do allocation of consecutive physical pages in the supervisor memory region, we can use that for all types of kernel stacks.
2019-03-05Kernel: Returning from a signal handler reset the signal mask correctly.Andreas Kling
We were setting the handled signal number as the new signal mask, oops.
2019-03-05Kernel: Block a signal from being dispatched again until handler returns.Andreas Kling
We don't handle nesting yet, but this is a step in the right direction.
2019-03-04Kernel: SIGCONT should unblock a blocked process.Andreas Kling
Otherwise we might stay in BlockedSignal state forever. Unblocking just means that the current syscall may fail with EINTR.
2019-03-03Kernel: Detect the Tab key. :^)Andreas Kling
2019-03-03Detect the "Logo" (Windows/Apple/whatever) key and use it for window resize.Andreas Kling
This will be comfortable enough while I'm still developing with emulators. QEMU keeps eating my "Alt" key presses and it's making things difficult.
2019-03-03Kernel: No need to check is_superuser() after may_execute().Andreas Kling
Since may_execute() incorporates a superuser check. :^)
2019-03-03LibGUI: Move shortcut actions from GEventLoop to GApplications.Andreas Kling
I'm gonna want to have nested event loops sooner or later, so let's not pollute GEventLoop with things that are meant to work globally. This patch also changes key events to pass around their modifiers as a bitfield all the way around the system instead of breaking them up.
2019-03-03Kernel: Try to do the right thing by default for unhandled signals.Andreas Kling
2019-03-03Applications: Map Alt+F4 to Quit in FileManager/ProcessManager/Terminal.Andreas Kling
2019-03-02Kernel: Keyboard should detect the Page Up and Page Down keys.Andreas Kling
2019-03-02Kernel+Userland: Add symlink() syscall and add "-s" flag to /bin/ln.Andreas Kling
It's now possible to create symbolic links! :^) This exposed an issue in Ext2FS where we'd write uninitialized data past the end of an inode's content. Fix this by zeroing out the tail end of the last block in a file.
2019-03-02Kernel: Port stat() to KResult/KResultOr<T>.Andreas Kling
2019-03-01Kernel: Support chdir() to a directory that's executable but not readable.Andreas Kling
Also the superuser should be allowed to resolve any possible path without getting tripped up by EACCES.
2019-03-01Kernel: Don't send SIGCHLD to parent process if he has SA_NOCLDWAIT set.Andreas Kling
Just transfer ownership of the dead process to the colonel and let the scheduler reap it on next iteration.
2019-03-01Put miscellaneous debug spam behind #ifdefs.Andreas Kling
2019-03-01Kernel+Userland: Implement fchmod() syscall and use it to improve /bin/cp.Andreas Kling
/bin/cp will now copy the permission bits from source to destination. :^)
2019-02-28Kernel: Oops, fix Vector assertion in FS::Sync.Andreas Kling
2019-02-28Kernel: Make a copy of the dirty inode list before iterating in sync().Andreas Kling
2019-02-28Kernel: Implement basic SIGSTOP and SIGCONT support.Andreas Kling
2019-02-28Kernel: Only allow sending signals to process you own.Andreas Kling
2019-02-28Kernel: kill() syscall should support sending a signal to yourself.Andreas Kling
2019-02-28ProcessManager: Start working on a graphical process manager.Andreas Kling
I need a table view widget for this thing, so I'm also using this to prototype a model/view thingy.
2019-02-27Userland: Add a simple /bin/stat program.Andreas Kling
2019-02-27Kernel: Allow uid 0 to read/write/execute any file.Andreas Kling
2019-02-27Ext2FS: Fix hole in Ext2FSInode::directory_entry_count() locking.Andreas Kling
2019-02-27Kernel: Use KResult in link().Andreas Kling
2019-02-27Kernel: Use KResult in unlink() and rmdir().Andreas Kling
2019-02-27Kernel: chmod() should allow superuser to change mode bits of any file.Andreas Kling
2019-02-27Add chown() syscall and a simple /bin/chown program.Andreas Kling
2019-02-27More compat work towards porting vim.Andreas Kling
It now builds and runs in the small-featureset configuration. :^)
2019-02-26LibC: Make errno codes be #defines instead of enum values.Andreas Kling
It turns out that a lot of 3rd party software does things like: #ifdef EINTR ... #endif This won't work if EINTR is an enum. So much for that nice idea.
2019-02-26Compat work towards porting vim.Andreas Kling
2019-02-26Kernel: Simplify ELF loading a bit.Andreas Kling
Instead of iterating over the sections and memcpy()ing per-section, do all the copying based on program headers instead.
2019-02-26Compat work towards making bash-5.0 build with less patches.Andreas Kling
Hacked implementations of sigsetjmp() and siglongjmp(). I didn't know about these APIs until just now, but I hope I got them right.
2019-02-26More compat work. Rename libraries from LibFoo.a => libfoo.aAndreas Kling
This makes it more straightforward to build a cross-compiler toolchain. Also move math stuff from LibC to LibM.
2019-02-26More compat work.Andreas Kling
Move syscall to int 0x82 since using int 0x80 was kinda prone to fork bombs when building things on Linux. :^)
2019-02-25More moving towards using signed types.Andreas Kling
I'm still feeling this out, but I am starting to like the general idea.
2019-02-25Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t.Andreas Kling
Dealing with the unsigned overflow propagation here just seems unreasonably error prone. Let's limit ourselves to 2GB buffer sizes instead.
2019-02-25Kernel: Add KResult and KResultOr<T> classes.Andreas Kling
The idea here is to combine a potential syscall error code with an arbitrary type in the case of success. I feel like this will end up much less error prone than returning some arbitrary type that kinda sorta has bool semantics (but sometimes not really) and passing the error through an out-param. This patch only converts a few syscalls to using it. More to come.
2019-02-25Convert more RetainPtr use to Retained.Andreas Kling
2019-02-25AK: Add Retained<T>, like RetainPtr, but never null.Andreas Kling
Also use some Clang attribute wizardry to get a warning for use-after-move.
2019-02-24Kernel: Make dump_backtrace() kinda sorta work.Andreas Kling
2019-02-24Ext2FS: Don't copy more than sizeof(ext2_inode) bytes of raw inode data.Andreas Kling
Some file systems have inodes larger than sizeof(ext2_inode) so this would stomp all over unrelated data.
2019-02-23LibC: Enough compat work to make binutils-2.32 build and run.Andreas Kling
2019-02-22Switch over to building everything with i686-elf-g++.Andreas Kling