Commit graph

62441 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