Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-04-03 | Kernel: Move FS-related files into Kernel/FileSystem/ | Andreas Kling | |
2019-04-03 | AK: Remove useless ktime.h | Andreas Kling | |
2019-04-03 | AK: Clean up some of the confusion that is AK/kmalloc.{cpp,h} | Andreas Kling | |
2019-03-27 | Kernel: Add Inode::truncate(size). | Andreas Kling | |
- Use this to implement the O_TRUNC open flag. - Fix creat() to pass O_CREAT | O_TRUNC | O_WRONLY. - Make sure we truncate wherever appropriate. | |||
2019-03-27 | Ext2FS: Avoid a lot of redundant writes to inode block arrays. | Andreas Kling | |
2019-03-25 | Kernel: Do timekeeping manually instead of asking the RTC all the time. | Andreas Kling | |
This introduces a tiny amount of timer drift which I will have to fix somehow eventually, but it's a huge improvement in timing consistency as we no longer suddenly jump from e.g 10:45:49.123 to 10:45:50.000. | |||
2019-03-23 | Kernel: Introduce threads, and refactor everything in support of it. | Andreas Kling | |
The scheduler now operates on threads, rather than on processes. Each process has a main thread, and can have any number of additional threads. The process exits when the main thread exits. This patch doesn't actually spawn any additional threads, it merely does all the plumbing needed to make it possible. :^) | |||
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-02-28 | Kernel: Make a copy of the dirty inode list before iterating in sync(). | 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 | Add chown() syscall and a simple /bin/chown program. | Andreas Kling | |
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: 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 | 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-22 | Ext2FS: Tweak a debug message to print file mode in octal. | Andreas Kling | |
2019-02-21 | Kernel: Start adding various file system permission checks. | Andreas Kling | |
Fail with EACCES in various situations. Fix userland bugs that were exposed. | |||
2019-02-21 | Add a simple /bin/df which gathers its info from /proc/df. | Andreas Kling | |
2019-02-21 | Kernel: Add link() syscall to create hard links. | Andreas Kling | |
This accidentally grew into a little bit of VFS cleanup as well. Also add a simple /bin/ln implementation to exercise it. | |||
2019-02-20 | Ext2FS: Remove the inode cache lock in favor of one big lock instead. | Andreas Kling | |
2019-02-20 | Ext2FS: Lock a lot. Go way overkill with locking for now. | Andreas Kling | |
2019-02-16 | Kernel: Make BochsVGADevice a BlockDevice and support mmapping it. | Andreas Kling | |
Currently you can only mmap the entire framebuffer. Using this when starting up the WindowServer gets us yet another step closer towards it moving into userspace. :^) | |||
2019-02-15 | Ext2FS: Fix various bugs in inode and block allocation. | Andreas Kling | |
I had the wrong idea about how group indices work, so using a larger fs with more than one group caused all kinds of mess. | |||
2019-02-11 | Ext2FS: Fix broken logic for accessing inode and block bitmaps. | Andreas Kling | |
This logic only worked for the very first block group. | |||
2019-02-11 | IDEDiskDevice: Detect disk errors and report failure to clients. | Andreas Kling | |
Previously we'd just fail silently if there was an I/O error of any kind. | |||
2019-02-08 | Ext2FS: Fix bitmap overrun when reaching outside the first block group. | Andreas Kling | |
2019-02-08 | Ext2FS: Fix dumb bitmap size bug in *_inode_allocation_state(). | Andreas Kling | |
2019-02-05 | Kernel: Invalidate file-backed VMO's when inodes are written. | Andreas Kling | |
The current strategy is simply to nuke all physical pages and force reload them from disk. This is obviously not optimal and should eventually be optimized. It should be fairly straightforward. | |||
2019-02-03 | Ext2FS: Avoid a kmallocation every time we fetch an inode from disk. | Andreas Kling | |
2019-01-31 | Big, possibly complete sweep of naming changes. | Andreas Kling | |
2019-01-31 | Kernel: Include absolute paths of mount points in /proc/mounts | Andreas Kling | |
2019-01-31 | Make stat() work on device files again. | Andreas Kling | |
FileDescriptor will now keep a pointer to the original inode even after opening it resolves to a character device. Fixed up /bin/ls to display major and minor device numbers instead of size for device files. | |||
2019-01-31 | Ext2FS: Remove an unnecessary heap allocation in create_inode(). | Andreas Kling | |
2019-01-30 | Fix dumb bug in HashTable::clear(). | Andreas Kling | |
We forgot to clear the m_buckets pointer. This meant that multiple calls to clear() would cause trouble. | |||
2019-01-29 | Implement basic chmod() syscall and /bin/chmod helper. | Andreas Kling | |
Only raw octal modes are supported right now. This patch also changes mode_t from 32-bit to 16-bit to match the on-disk type used by Ext2FS. I also ran into EPERM being errno=0 which was confusing, so I inserted an ESUCCESS in its place. | |||
2019-01-28 | Add support for removing directories. | Andreas Kling | |
It's really only supported in Ext2FS since SynthFS doesn't really want you mucking around with its files. This is pretty neat though :^) I ran into some trouble with HashMap while working on this but opted to work around it and leave that for a separate investigation. | |||
2019-01-23 | Ext2FS: Include meta blocks in an inode's i_blocks count. | Andreas Kling | |
2019-01-23 | Kernel: Get rid of Unix namespace. | Andreas Kling | |
This is no longer needed as the Kernel can stand on its own legs now and there won't be any conflict with host system data types. | |||
2019-01-23 | VFS: Rename FS::id() to fsid() for consistency. | Andreas Kling | |
2019-01-23 | Move VFS sources into Kernel/. | Andreas Kling | |