Commit graph

25541 commits

Author SHA1 Message Date
Andreas Kling 72bb80a9ae These changes were lying around uncommitted in the old repo.
I'm just gonna commit them without too much thinking and then take
it from there.
2018-10-16 11:06:35 +02:00
Andreas Kling 87d41bdca4 If an interrupt comes from the slave PIC, both PICs need an EOI. 2018-10-16 11:05:29 +02:00
Andreas Kling 9396108034 Import the "gerbert" kernel I worked on earlier this year.
It's a lot crappier than I remembered it. It's gonna need a lot of work.
2018-10-16 11:02:00 +02:00
Andreas Kling f608629704 Implement creating a new directory. 2018-10-16 00:35:03 +02:00
Andreas Kling 5c50d02c2e Fix bug where allocating a new inode forgot that inodes are 1-based. 2018-10-15 02:42:24 +02:00
Andreas Kling b0eaca436c "stat" command should print st_mode in octal. 2018-10-15 02:12:09 +02:00
Andreas Kling 47fc6344ac Support the ext2 directory entry file_type field. 2018-10-15 01:57:57 +02:00
Andreas Kling e7901476d3 Bring back the intentionally broken symlink I had for testing. 2018-10-15 01:00:01 +02:00
Andreas Kling 05b088ee2f Add a simple /dev/random. 2018-10-15 00:44:54 +02:00
Andreas Kling 9528edab92 Move readEntireInode() up to FileSystem (from ext2.)
It's just a wrapper around multiple calls to readInodeBytes() now.
2018-10-15 00:16:14 +02:00
Andreas Kling 0286b5ea48 Add a "stat" command to test FileHandle::stat(). 2018-10-14 23:39:11 +02:00
Andreas Kling c7c957966a Implement SyntheticFileSystem::readInodeBytes(). 2018-10-14 23:13:45 +02:00
Andreas Kling 1f41a36c52 Add a Unix namespace for foo_t types.
This allows me to keep prototyping things on a random desktop machine,
even if that machine has its own ideas about foo_t types.
2018-10-14 22:57:57 +02:00
Andreas Kling c6d6ba7512 Minor errno fixups. 2018-10-14 22:16:28 +02:00
Andreas Kling 39444c5916 Fix HashTable::find() return iterator for items found in non-0 buckets. 2018-10-14 22:08:36 +02:00
Andreas Kling c94044a04a Work on POSIX-like read() and lseek() support. 2018-10-14 21:19:27 +02:00
Andreas Kling 9f9b4a2382 Add a simple /dev/full. 2018-10-14 13:16:09 +02:00
Andreas Kling fc1facf5c0 Let widget have a font() instead of using Font::defaultFont() everywhere. 2018-10-14 13:06:05 +02:00
Andreas Kling e5acbca0e8 Disable the "create /empty" test path for now. 2018-10-14 03:02:28 +02:00
Andreas Kling 93556d6743 Add basic character device support. Start with null and zero. 2018-10-14 03:01:32 +02:00
Andreas Kling fa3b11ac64 Parse out major/minor device from character and block device inodes. 2018-10-14 02:24:12 +02:00
Andreas Kling 03a0dc0103 Add a /dev/zero to the small.fs image. 2018-10-14 02:09:34 +02:00
Andreas Kling 959a1b0750 Close the MsgBox when clicking the OK button.
This feels vaguely crashy. I haven't tested window/widget destruction
before so there's sure to be bugs.
2018-10-14 01:23:01 +02:00
Andreas Kling 3ebea05996 Add a simple MsgBox() :^) 2018-10-14 00:21:42 +02:00
Andreas Kling e9e7f7a714 Improve TextBox text placement a little bit. 2018-10-13 23:23:11 +02:00
Andreas Kling d305c316e1 Add TextBox::onReturnPressed. 2018-10-13 23:19:44 +02:00
Andreas Kling 7a0a7abc52 Try out a signal-like system like this:
auto* b = new Button;
b->onClick = [] (Button&) {
    printf("The button was clicked!\n");
};
2018-10-13 23:01:06 +02:00
Andreas Kling a3fb19fe9c Use fooEvent() type names for the virtual event handlers. 2018-10-13 22:51:50 +02:00
Andreas Kling dfb70ed234 Start working on a simple TextBox widget. 2018-10-13 22:46:34 +02:00
Andreas Kling 6f1b384cde More work on focus.
ListBox now renders differently depending on focus state.
2018-10-13 20:59:25 +02:00
Andreas Kling 1929cb6b71 Implement basic focus. 2018-10-13 17:52:47 +02:00
Andreas Kling 44a32039be Let the WindowManager track the active window.
We draw the active window in a different color, obviously. :^)
2018-10-13 17:42:43 +02:00
Andreas Kling 560405667e Start using WeakPtr for some of the WindowManager window pointers. 2018-10-13 17:00:45 +02:00
Andreas Kling 16fff6dff7 Add a root .gitignore. 2018-10-13 17:00:27 +02:00
Andreas Kling 3e9a45d7f4 Add WeakPtr/Weakable templates. 2018-10-13 15:41:24 +02:00
Andreas Kling b7efd92937 Make SinglyLinkedList destruction actually work. 2018-10-13 14:29:00 +02:00
Andreas Kling 6ea8ce500c Use HashMap::remove() in some places that I wanted it. 2018-10-13 14:26:37 +02:00
Andreas Kling 969334505d Add HashMap::remove(). 2018-10-13 14:23:47 +02:00
Andreas Kling c2ef54c044 Add HashTable::remove() and fix a bug where ConstIterator would skip the first. 2018-10-13 14:22:09 +02:00
Andreas Kling f794190de0 Add a DoublyLinkedList template and start using it for HashTable. 2018-10-13 13:50:44 +02:00
Andreas Kling 9a387d96da Use Vector::remove() in a place I wished I had it earlier. 2018-10-13 01:19:25 +02:00
Andreas Kling 7777c8844b Add Vector::remove(). 2018-10-13 01:17:36 +02:00
Andreas Kling 750b27cb07 Ext2FileSystem::readInode() should return an empty buffer for 0-length files. 2018-10-13 00:50:35 +02:00
Andreas Kling c2d42710bb Fix build. 2018-10-13 00:44:54 +02:00
Andreas Kling f20977c65f Add a basic Listbox widget. 2018-10-13 00:20:44 +02:00
Andreas Kling 8016139430 Improve the "k" in Peanut8x10 a bit. 2018-10-12 23:12:17 +02:00
Andreas Kling e16d145cb4 Some color cleanup. 2018-10-12 23:02:23 +02:00
Andreas Kling aceedaf957 Clip Painter operations to the screen rect. 2018-10-12 22:50:28 +02:00
Andreas Kling b5ff34174d Label should respect background/foreground color. 2018-10-12 21:00:17 +02:00
Andreas Kling 1df47d3ed5 Set KeyEvent modifier bits from SDL key event. 2018-10-12 20:56:22 +02:00