1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 22:48:11 +00:00
Commit graph

725 commits

Author SHA1 Message Date
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