Andreas Kling
0c1a4e8de3
Add String::substring().
2018-10-16 12:07:17 +02:00
Andreas Kling
9cd0a34b5c
BlockDevice -> DiskDevice.
...
BlockDevice was the wrong name for this abstraction, since a block device
is a type of file in a unix system, and we should use that name for that
concept in the fs implementation.
2018-10-16 11:21:49 +02:00
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