Andreas Kling
a34bb07abb
Make .bochsrc work with the stock Bochs on Ubuntu.
2019-01-27 07:17:24 +01:00
Andreas Kling
d72575d196
LibGUI: Start bringing up GTextBox in the standalone world.
2019-01-26 06:39:13 +01:00
Andreas Kling
9fa8d4e22f
WindowServer: Rename the two painting phases.
...
Work now happens in terms of two messages:
- WM_ClientWantsToPaint
- WM_ClientFinishedPaint
This feels fairly obvious compared to the old Paint/Invalidate.
2019-01-26 05:45:47 +01:00
Andreas Kling
244d5bcce1
WindowServer: More event -> message renaming.
2019-01-26 05:35:45 +01:00
Andreas Kling
bba21adae3
WindowServer: Rename WSEvent to WSMessage.
...
Also do the same for WSMessageLoop and WSMessageReceiver. More to come.
2019-01-26 05:28:02 +01:00
Andreas Kling
7cf3c7461c
Refactor GUI rendering model to be two-phased.
...
Instead of clients painting whenever they feel like it, we now ask that they
paint in response to a paint message.
After finishing painting, clients notify the WindowServer about the rect(s)
they painted into and then flush eventually happens, etc.
This stuff leaves us with a lot of badly named things. Need to fix that.
2019-01-26 05:20:32 +01:00
Andreas Kling
a54848f451
Let's not auto-start guitest. guitest2 is so much more useful.
2019-01-25 15:52:55 +01:00
Andreas Kling
d059e684a2
Keyboard: Shift+backspace should generate backspace character.
2019-01-25 15:34:02 +01:00
Andreas Kling
dfdca9d2a7
Kernel: Implement lazy FPU state restore.
2019-01-25 07:52:44 +01:00
Andreas Kling
d39f585f35
Kernel: Fix Syscall.h build when out of context.
2019-01-25 05:19:29 +01:00
Andreas Kling
0db72786cf
Snazz up the windows with some title bar gradients. :^)
2019-01-25 05:02:32 +01:00
Andreas Kling
267a903dd0
Terminal: Redraw entire line if any of its characters are dirty.
...
This means we only have to do one fill_rect() per line and the whole process
ends up being ~10% faster than before.
Also added a read_tsc() syscall to give userspace access to the TSC.
2019-01-25 02:09:29 +01:00
Andreas Kling
11b73c38d8
Kernel: Fix incorrect EFAULTs when syscall would write into COW pages.
2019-01-25 01:39:15 +01:00
Andreas Kling
e28de4ad5e
Kernel: Dump registers and code on ring0 page fault.
2019-01-25 00:32:50 +01:00
Andreas Kling
b896d4b237
PTY: Disallow infinite writing to slaves.
...
This way we don't buffer ungodly amounts of output in the kernel when doing
e.g "cat /dev/random" on a PTY.
2019-01-25 00:13:54 +01:00
Andreas Kling
d7d78670c9
Kernel: Add some logging for backing store get/release syscalls.
2019-01-25 00:13:37 +01:00
Andreas Kling
86eae0f8df
Let userland retain the window backing store while drawing into it.
...
To start painting, call:
gui$get_window_backing_store()
Then finish up with:
gui$release_window_backing_store()
Process will retain the underlying GraphicsBitmap behind the scenes.
This fixes racing between the WindowServer and GUI clients.
This patch also adds a WSWindowLocker that is exactly what it sounds like.
2019-01-24 23:44:19 +01:00
Andreas Kling
ccf3fc4618
TTY: MasterPTY's are always writable when open.
...
This should probably have some limitations eventually, but for now let's just
say we always accept data for shoveling over to SlavePTY.
2019-01-24 21:23:46 +01:00
Andreas Kling
2159d6bf76
Kernel: Fix bug in process termination on missing signal handler.
2019-01-24 21:22:13 +01:00
Andreas Kling
aa24547e12
Kernel: Finally stop exposing Region members to the public.
2019-01-24 18:09:46 +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
84c4110a50
Keyboard: Support the escape key.
2019-01-23 08:30:48 +01:00
Andreas Kling
af06d5edc1
Kernel: Implement a limited version of POSIX poll().
2019-01-23 08:03:31 +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
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
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
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
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
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
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
ea6678b7b3
LibGUI: Hook up GWindow event dispatch for paint and mouse events.
2019-01-20 07:03:38 +01:00
Andreas Kling
dbe83f3a83
Make it possible for userspace to alter window title/geometry.
...
I'm not in love with this syscall API but it allows me to make progress.
2019-01-20 06:04:13 +01:00
Andreas Kling
8eae89a405
Start bringing up LibGUI properly (formerly Widgets.)
2019-01-20 05:48:43 +01:00
Andreas Kling
a026da47e7
Move Widget & friends into LibGUI.
2019-01-19 23:49:56 +01:00