Andreas Kling
e683f611f1
LibC: Fix broken isprint(). I had misunderstood what's considered printable.
2019-01-24 17:22:19 +01:00
Andreas Kling
faaa0dbf1d
Terminal: Various improvements to terminal emulation.
2019-01-23 19:59:17 +01:00
Andreas Kling
8d36c8f0d8
LibC: Tweak execvp() and execve() prototypes.
2019-01-23 17:09:00 +01:00
Andreas Kling
1483af406f
LibC: fputs() shouldn't add a trailing newline, only puts().
2019-01-23 16:24:39 +01:00
Andreas Kling
1ee8597ce4
Ext2FS: Include meta blocks in an inode's i_blocks count.
2019-01-23 15:43:29 +01:00
Andreas Kling
9ae20a153e
Terminal: Add support for some more escape sequences.
2019-01-23 08:55:59 +01:00
Andreas Kling
c7ded89f05
LibC: Support backwards copy in memmove().
2019-01-23 08:31:23 +01:00
Andreas Kling
84c4110a50
Keyboard: Support the escape key.
2019-01-23 08:30:48 +01:00
Andreas Kling
7a7fc37ca1
SharedGraphics: Draw an error glyph instead of crashing due to missing glyphs.
2019-01-23 08:07:58 +01:00
Andreas Kling
af06d5edc1
Kernel: Implement a limited version of POSIX poll().
2019-01-23 08:03:31 +01:00
Andreas Kling
b33e367f33
Terminal: Fix crash when scrolling contents while cursor is on first row.
2019-01-23 07:45:23 +01:00
Andreas Kling
cfa197f821
LibC: Let malloc(0) return nullptr.
2019-01-23 07:32:16 +01:00
Andreas Kling
0ebaa35aa1
Kernel: Let the process argv arrays be null-terminated.
...
Seems like this is expected. I don't know why I thought it wasn't.
2019-01-23 07:29:10 +01:00
Andreas Kling
2bedabbd6c
Stub out poll() syscall and LibC wrapper.
2019-01-23 07:28:25 +01:00
Andreas Kling
8bb18fdc56
Kernel: Get rid of Unix namespace.
...
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 06:57:00 +01:00
Andreas Kling
69a3aecf6b
LibC: Add vsnprintf(), snprintf(), execvp() and abs().
2019-01-23 06:35:34 +01:00
Andreas Kling
db35d59994
VFS: Move Ext2FSInode::m_lock up to Inode so all inodes can have locking.
2019-01-23 05:42:23 +01:00
Andreas Kling
730c14e647
VFS: Rename FS::id() to fsid() for consistency.
2019-01-23 05:39:11 +01:00
Andreas Kling
a1b4f719ba
VFS: unlink() should fail when called on a directory.
2019-01-23 05:35:42 +01:00
Andreas Kling
754037874c
Move VFS sources into Kernel/.
2019-01-23 05:14:00 +01:00
Andreas Kling
19104570cc
VFS: Remove remnants of standalone builds.
2019-01-23 05:09:11 +01:00
Andreas Kling
e911caeb10
Kernel: Fix dumb race in Scheduler::yield() debug code.
...
It was perfectly possible for Scheduler::yield() to get interrupted after
setting s_in_yield but before disabling interrupts.
2019-01-23 05:06:47 +01:00
Andreas Kling
07f4c8b01b
VFS: Get rid of the deprecated Inode::write(const ByteBuffer&).
...
Fix the only remaining call site to use Inode::write_bytes().
2019-01-23 04:59:47 +01:00
Andreas Kling
906685e238
Ext2FS: Implement writing into inodes with arbitrary offset and length.
...
Okay, this is pretty cool. :^) There are some issues and limitations for
sure but the basic functionality is there.
2019-01-23 04:29:56 +01:00
Andreas Kling
29dfb4ae13
Ext2FS: Factor out block list generation and writing into functions.
2019-01-23 03:03:44 +01:00
Andreas Kling
6fb4033709
Ext2FS: Move inode freeing logic from ~Ext2FSInode() to Ext2FS::free_inode().
2019-01-22 20:49:23 +01:00
Andreas Kling
05f18febb6
Ext2FS: Delete inodes when their link count goes to zero.
2019-01-22 16:34:24 +01:00
Andreas Kling
bda0c935c2
Add unlink() syscall and /bin/rm.
...
This patch adds most of the plumbing for working file deletion in Ext2FS.
Directory entries are removed and inode link counts updated.
We don't yet update the inode or block bitmaps, I will do that separately.
2019-01-22 07:03:44 +01:00
Andreas Kling
2f2f28f212
Kernel: Refactor Region/PageDirectory ownership model.
...
Make PageDirectory retainable and have each Region co-own the PageDirectory
they're mapped into. When unmapped, Region has no associated PageDirectory.
This allows Region to automatically unmap itself when destroyed.
2019-01-22 05:06:22 +01:00
Andreas Kling
afccbe51a4
VFS: Place new files in the correct subdirectory.
...
Oops, every new file was ending up in the root directory.
Also make sure we create the inode in the same FS as the parent directory.
2019-01-22 03:56:34 +01:00
Andreas Kling
4d1d875ca7
Remove some unused errno.h duplicates.
2019-01-22 01:12:53 +01:00
Andreas Kling
f70136a324
Kernel: Support open() with O_CREAT.
...
It's now possible to create zero-length files! :^)
Also hook up the new functionality in /bin/touch.
2019-01-22 00:58:56 +01:00
Andreas Kling
a47f33bed3
WindowServer: Map shared GraphicsBitmaps read-only on the server side.
2019-01-21 19:27:23 +01:00
Andreas Kling
f9fcb682ec
Keyboard: Use some of the existing defines instead of hard-coded numbers.
2019-01-21 07:30:46 +01:00
Andreas Kling
51595603bd
WindowServer: Rename WSEvent subclasses WSFooEvent for consistency.
...
Add a WSWindowInvalidationEvent that carries a rect instead of having an
awkward single-purpose rect in WSEvent.
Flesh out WSKeyEvent a bit more.
2019-01-21 07:28:04 +01:00
Andreas Kling
aefbbeb3cb
Flesh out keyboard event support a bit more.
2019-01-21 07:27:26 +01:00
Andreas Kling
76a2881793
Mark the two Regions used GraphicsBitmaps as explicitly shared.
...
This fixes a goofy problem where forking a GUI process would cowify the
GraphicsBitmap for everyone making a hue confusing mess.
2019-01-21 05:18:28 +01:00
Andreas Kling
d1af5c97ca
Kernel: Process should drop any framebuffer regions on exec().
2019-01-21 03:22:03 +01:00
Andreas Kling
61e50780aa
Kernel: Forked processes should inherit arguments and environment.
2019-01-21 02:59:58 +01:00
Andreas Kling
6127d33cee
guitest2: Add a launcher button for guitest.
2019-01-21 02:56:25 +01:00
Andreas Kling
291922b1af
WindowServer: Show PID and window ID in title bars for now.
...
This is useful for debugging since I'm often wondering which process some
window belongs to (and what the window ID is.)
2019-01-21 02:43:38 +01:00
Andreas Kling
e6fc84e234
Kernel: Make /proc/PID/fds display something useful for character devices.
2019-01-21 02:33:01 +01:00
Andreas Kling
786b903d62
WindowServer: Don't invalidate already frontmost window for moving to front.
2019-01-21 02:19:08 +01:00
Andreas Kling
e115ae5641
Kernel: Clone Process::m_gids on fork() and hook up any framebuffer region.
2019-01-21 01:49:30 +01:00
Andreas Kling
6d9959e367
LibGUI: Open the GUI event stream with O_CLOEXEC.
2019-01-21 01:33:16 +01:00
Andreas Kling
d66b0f7dd8
LibGUI: Mass coding style fixes.
2019-01-21 00:54:35 +01:00
Andreas Kling
6c4f1bad09
guitest2: Add a simple launcher so I can easily spawn more Terminals.
...
Also update GButton coding style.
2019-01-21 00:31:48 +01:00
Andreas Kling
3271c115e2
WindowServer: Only blit dirty rect of windows to back buffer.
...
Previously we'd blit every pixel in every window that intersected any dirty
rect to the back buffer. With this patch, we limit ourselves to blitting the
pixels inside the actual dirty rects.
There's still a lot of optimizations to make in this code.
2019-01-20 23:42:36 +01:00
Andreas Kling
1586bc99e3
WSWindowManager: Add an invalidation and a FIXME.
2019-01-20 08:37:24 +01:00
Andreas Kling
d4cce87dbc
LibGUI: Minor fixes.
2019-01-20 08:16:02 +01:00