Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-03-06 | Kernel: Add two error checks for open() to return EISDIR or ENODEV. | Andreas Kling | |
2019-03-06 | Kernel: Dump kernel stack trace on assertion failure. | Andreas Kling | |
2019-03-05 | Kernel+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-05 | Kernel: 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-05 | Kernel: 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-05 | Kernel: 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-05 | Kernel: 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-04 | Kernel: 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-03 | Kernel: Detect the Tab key. :^) | Andreas Kling | |
2019-03-03 | Detect 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-03 | Kernel: No need to check is_superuser() after may_execute(). | Andreas Kling | |
Since may_execute() incorporates a superuser check. :^) | |||
2019-03-03 | LibGUI: 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-03 | Kernel: Try to do the right thing by default for unhandled signals. | Andreas Kling | |
2019-03-03 | Applications: Map Alt+F4 to Quit in FileManager/ProcessManager/Terminal. | Andreas Kling | |
2019-03-02 | Kernel: Keyboard should detect the Page Up and Page Down keys. | Andreas Kling | |
2019-03-02 | Kernel+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-02 | Kernel: Port stat() to KResult/KResultOr<T>. | Andreas Kling | |
2019-03-01 | Kernel: 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-01 | Kernel: 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-01 | Put miscellaneous debug spam behind #ifdefs. | Andreas Kling | |
2019-03-01 | Kernel+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-28 | Kernel: Oops, fix Vector assertion in FS::Sync. | Andreas Kling | |
2019-02-28 | Kernel: Make a copy of the dirty inode list before iterating in sync(). | Andreas Kling | |
2019-02-28 | Kernel: Implement basic SIGSTOP and SIGCONT support. | Andreas Kling | |
2019-02-28 | Kernel: Only allow sending signals to process you own. | Andreas Kling | |
2019-02-28 | Kernel: kill() syscall should support sending a signal to yourself. | Andreas Kling | |
2019-02-28 | ProcessManager: 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-27 | Userland: Add a simple /bin/stat program. | Andreas Kling | |
2019-02-27 | Kernel: Allow uid 0 to read/write/execute any file. | Andreas Kling | |
2019-02-27 | Ext2FS: Fix hole in Ext2FSInode::directory_entry_count() locking. | Andreas Kling | |
2019-02-27 | Kernel: Use KResult in link(). | Andreas Kling | |
2019-02-27 | Kernel: Use KResult in unlink() and rmdir(). | Andreas Kling | |
2019-02-27 | Kernel: chmod() should allow superuser to change mode bits of any file. | Andreas Kling | |
2019-02-27 | Add chown() syscall and a simple /bin/chown program. | Andreas Kling | |
2019-02-27 | More compat work towards porting vim. | Andreas Kling | |
It now builds and runs in the small-featureset configuration. :^) | |||
2019-02-26 | LibC: 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-26 | Compat work towards porting vim. | Andreas Kling | |
2019-02-26 | Kernel: 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-26 | Compat 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-26 | More compat work. Rename libraries from LibFoo.a => libfoo.a | Andreas Kling | |
This makes it more straightforward to build a cross-compiler toolchain. Also move math stuff from LibC to LibM. | |||
2019-02-26 | More 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-25 | More moving towards using signed types. | Andreas Kling | |
I'm still feeling this out, but I am starting to like the general idea. | |||
2019-02-25 | Kernel: 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-25 | Kernel: 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-25 | Convert more RetainPtr use to Retained. | Andreas Kling | |
2019-02-25 | AK: 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-24 | Kernel: Make dump_backtrace() kinda sorta work. | Andreas Kling | |
2019-02-24 | Ext2FS: 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-23 | LibC: Enough compat work to make binutils-2.32 build and run. | Andreas Kling | |
2019-02-22 | Switch over to building everything with i686-elf-g++. | Andreas Kling | |