Andreas Kling
5562ab3f5a
Kernel: Remove some more unnecessary Thread members.
2019-04-20 19:29:48 +02:00
Andreas Kling
b2ebf6c798
Kernel: Shrink Thread by making kernel resume TSS heap-allocated.
2019-04-20 19:23:45 +02:00
Andreas Kling
ec365b82d5
Kernel: Make the colonel run at "Idle" priority (the lowest possible.)
...
This means it won't hog the CPU for more than a single timeslice. :^)
2019-04-20 15:58:45 +02:00
Andreas Kling
ab94a6be00
AK: Add String::copy(BufferType) helper.
...
This will create a String from any BufferType that has data() and size().
2019-04-20 14:13:40 +02:00
Andreas Kling
5eedb22834
Sprinkle use of AK::Vector in various places.
...
Some of these are less helpful than others. Avoiding a bunch of mallocs
in the event loop wakeup code is definitely nice.
2019-04-20 14:02:19 +02:00
Andreas Kling
301a269ca0
Get rid of SERENITY macro since the compiler already defines __serenity__
...
This makes it a bit easier to use AK templates out-of-tree.
2019-04-20 12:58:49 +02:00
Andreas Kling
e24e486714
Snake: Flesh out a basic snake game :^)
2019-04-20 03:24:50 +02:00
Andreas Kling
0e6b273620
LibGUI: Start working on GTableView inline editing.
...
This is pretty shaky still, but the basic idea is that you subclass GModel
and return true for editable indices. The table view also needs to have its
editable flag set.
2019-04-18 22:27:14 +02:00
Andreas Kling
3817f5f619
Kernel+LibC: Add a DebugLogDevice that forwards everything to I/O port 0xe9.
...
This is then used to implement the userspace dbgprintf() in a far more
efficient way than what we had before. :^)
2019-04-18 16:08:52 +02:00
Andreas Kling
c02c6fef28
Kernel+ProcessManager: Show per-process syscall counts.
...
Added a simple syscall counter to the /proc/all contents. :^)
2019-04-17 23:16:14 +02:00
Andreas Kling
c59f8cd663
Kernel: Scheduler donations need to verify that the beneficiary is valid.
...
Add a Thread::is_thread(void*) helper that we can use to check that the
incoming donation beneficiary is a valid thread. The O(n) here is a bit sad
and we should eventually rethink the process/thread table data structures.
2019-04-17 12:41:51 +02:00
Andreas Kling
6bb0dbe8bf
Kernel: Lock::unlock_if_locked() should never donate to holder.
...
Since we're not interested in taking the lock if it's already held,
there's no need to donate the remainder of our time slice to the holder.
2019-04-17 12:37:44 +02:00
Andreas Kling
33920df299
AK: Try to use StringViews more for substrings and splitting.
2019-04-16 02:39:16 +02:00
Andreas Kling
1debc0a78c
Kernel: Reduce kmallocing in all_processes() and all_pids().
2019-04-16 00:37:35 +02:00
Andreas Kling
2533e0b57b
Kernel: Reduce kmallocing in /proc/all and /proc/memstat.
2019-04-16 00:36:17 +02:00
Andreas Kling
88f03f86ff
Kernel: Have TTY subclasses cache their tty_name/pts_name.
2019-04-16 00:35:02 +02:00
Andreas Kling
d384c7815f
Kernel: Make it possible to have kmalloc() dump call stacks.
...
This can be enabled at any time using a sysctl:
sysctl kmalloc_stacks=1
The stacks will go to the debugger output only.
2019-04-15 23:58:48 +02:00
Andreas Kling
fa89446cb6
Kernel: Make symbolication callable from kmalloc().
...
It wasn't possible to symbolicate from kmalloc(), since symbolication would
call kmalloc(). :^)
2019-04-15 23:50:25 +02:00
Andreas Kling
ae0dc22716
Kernel: Make validate_read_from_kernel() return early for nullptr checks.
...
Null pointers are always invalid, so don't bother going through all the
various checks for them.
2019-04-15 23:48:31 +02:00
Andreas Kling
e9c0f4567d
Kernel+ProcessManager: Expose the number of kmalloc/kfree calls.
...
This will be very helpful in tracking down unwanted kmalloc traffic. :^)
2019-04-15 19:43:12 +02:00
Andreas Kling
13041f894f
Kernel: Start using StringView in the VFS class.
...
The less kmalloc() we can do, the better. Calling kmalloc() disables all
interrupts while it runs, so it's directly affecting responsiveness.
2019-04-15 14:57:27 +02:00
Andreas Kling
024057b39a
Userland: Make sync.sh copy all executables from ../Userland
2019-04-15 13:53:27 +02:00
Andreas Kling
c0fe48635b
Kernel: Add /proc/uptime file (number of seconds since boot.)
...
Also added a simple /bin/uptime to pretty-print this information. :^)
2019-04-14 15:19:45 +02:00
Andreas Kling
4132f645ee
Kernel: Merge TSS.h into i386.h.
2019-04-14 04:39:56 +02:00
Andreas Kling
3f6408919f
AK: Improve smart pointer ergonomics a bit.
2019-04-14 02:36:06 +02:00
Andreas Kling
29d0412a06
Kernel: Remove system.h and make the uptime global a qword.
2019-04-14 01:29:14 +02:00
Andreas Kling
198a1a6877
Minesweeper: Add some menus.
2019-04-13 14:32:18 +02:00
Andreas Kling
0dbd7b0409
Fix typo in makeall.sh
2019-04-13 13:19:47 +02:00
Andreas Kling
a90e218c71
Minesweeper: Start working on a simple minesweeper game. :^)
2019-04-13 03:08:16 +02:00
Andreas Kling
6f90f41516
VisualBuilder: Add some more GWidget default properties.
2019-04-12 14:47:21 +02:00
Andreas Kling
0f5114852a
Kernel: Spawn text editor by default while I work on it.
2019-04-12 00:58:09 +02:00
Andreas Kling
93b76628a5
GGroupBox: Improve appearance with new FrameShape::Box style.
2019-04-11 14:27:31 +02:00
Andreas Kling
8268ece1bd
VisualBuilder: Start working on an interface builder application.
...
It's tedious making interfaces programmatically. Let's make a program to
help us with this. :^)
2019-04-11 00:05:47 +02:00
Andreas Kling
0bc72551f4
Kernel: Remove two unneeded headers.
2019-04-10 22:49:11 +02:00
Andreas Kling
5e0577a042
Introduce LibCore and move GElapsedTimer => CElapsedTimer.
...
I need a layer somewhere between AK (usable both by userspace and kernel)
and LibGUI (usable by userspace except WindowServer.) So here's LibCore.
2019-04-10 16:14:44 +02:00
Andreas Kling
60a819c14a
Kernel: Yet more work on bringing up POSIX SHM.
2019-04-09 02:37:38 +02:00
Andreas Kling
26a06f3fcd
Kernel: More work towards POSIX SHM, also add ftruncate().
2019-04-09 01:10:00 +02:00
Andreas Kling
99f3cc26c3
Kernel+LibC: Add stubs for POSIX shared memory API.
...
Specifically shm_open() and shm_unlink(). This patch just adds stubs.
2019-04-08 23:44:12 +02:00
Andreas Kling
65d6318c33
Kernel: Support non-blocking connect().
...
If connect() is called on a non-blocking socket, it will "fail" immediately
with -EINPROGRESS. After that, you select() on the socket and wait for it to
become writable.
2019-04-08 04:52:21 +02:00
Andreas Kling
37ae00a4dd
Kernel+Userland: Add the rename() syscall along with a basic /bin/mv.
2019-04-07 23:35:26 +02:00
Andreas Kling
8f30657390
Start working on a Downloader app and backing classes in LibGUI.
...
LibGUI is slowly becoming LibKitchensink but I'm okay with this for now.
2019-04-07 14:36:10 +02:00
Andreas Kling
ddba6c1b7f
Kernel: Oops, also moved FileDescriptor into FileSystem/, fix Makefile.
2019-04-06 20:34:59 +02:00
Andreas Kling
644c887594
Kernel: Move FIFO into FileSystem/ and Socket+LocalSocket into Net/.
2019-04-06 20:29:48 +02:00
Andreas Kling
ac6c7d3e19
Kernel: Use alloc_fd() more instead of walking fd list manually.
2019-04-06 14:54:32 +02:00
Andreas Kling
a58d7fd8bb
Kernel: Get rid of Kernel/types.h, separate LinearAddress/PhysicalAddress.
2019-04-06 14:29:29 +02:00
Andreas Kling
9fbac66a91
Hack sync.sh script to retry umount after a short delay if it fails.
...
I keep accumulated unwanted mounts because umount sometimes fails.
2019-04-05 16:26:29 +02:00
Andreas Kling
329cc60a92
NetworkTask: Add a combined alarm for the all network adapters.
...
This way we can go back to snoozing in the receiver task and stop chewing
up the CPU. :^)
2019-04-05 05:14:20 +02:00
Andreas Kling
bcc00857a4
AK: Revert Eternal<T> for now since it doesn't work as intended.
2019-04-05 05:14:20 +02:00
Andreas Kling
6df5e3f51a
Kernel: Build with i686-pc-serenity-g++.
...
This works just fine, and now we only need one cross-compiler. :^)
2019-04-05 02:56:23 +02:00
Andreas Kling
ec7817af37
Kernel: Spawn /bin/Taskbar on startup.
...
I think it's good enough now to be there by default. :^)
2019-04-04 20:19:07 +02:00