Commit graph

2763 commits

Author SHA1 Message Date
Andreas Kling
9da62f52a1 Kernel: Use the Multiboot memory map info to inform our paging setup.
This makes it possible to run Serenity with more than 64 MB of RAM.
Because each physical page is represented by a PhysicalPage object, and such
objects are allocated using kmalloc_eternal(), more RAM means more pressure
on kmalloc_eternal(), so we're gonna need a better strategy for this.

But for now, let's just celebrate that we can use the 128 MB of RAM we've
been telling QEMU to run with. :^)
2019-06-09 11:48:58 +02:00
Andreas Kling
8258b699db Kernel: Use StringView more in Inode and subclasses. 2019-06-09 10:25:19 +02:00
Andreas Kling
cdb44be703 StringView: Store a StringImpl* rather than a String*. 2019-06-08 23:55:13 +02:00
Andreas Kling
6a51093ab1 AK: Add String::operator==(const char*).
Without this function, comparing a String to a const char* will instantiate
a temporary String which is obviously not great.

Also add some missing null checks to StringView::operator==(const char*).
2019-06-08 18:32:09 +02:00
Conrad Pankoff
8b1154f5f2 Kernel: Implement serial port driver
This implements a basic 8250 UART serial port driver. It does not
currently handle (or enable) interrupts, nor any runtime configuration.
2019-06-08 18:12:20 +02:00
Conrad Pankoff
7b04c7dc48 Userland: Implement -c [characters] option for head 2019-06-08 18:01:06 +02:00
Conrad Pankoff
842bf96e2c Kernel: Fix booting from "inactive" MBR partitions
Apparently you can boot from any MBR partition, not just the one labeled
as "bootable" or "active". The only ones you don't want to boot from are
the ones that don't exist.
2019-06-08 17:59:17 +02:00
Andreas Kling
de65c960e9 Kernel: Tweak some String&& => const String&.
String&& is just not very practical. Also return const String& when the
returned string is a member variable. The call site is free to make a copy
if he wants, but otherwise we can avoid the retain count churn.
2019-06-07 20:58:12 +02:00
Andreas Kling
736092a087 Kernel: Move i386.{cpp,h} => Arch/i386/CPU.{cpp,h}
There's a ton of work that would need to be done before we could spin up on
another architecture, but let's at least try to separate things out a bit.
2019-06-07 20:02:01 +02:00
Andreas Kling
5bce004d84 Kernel: The kernel will never call mmx_memcpy() so prune it. 2019-06-07 19:32:12 +02:00
Andreas Kling
891d4c4834 Kernel: Qualify a bunch of #include statements. 2019-06-07 19:29:34 +02:00
Andreas Kling
de9edb0169 StringView: operator==(const char*) needs to stop when the view ends.
We were comparing past the end of the view, which was clearly not correct.
2019-06-07 19:22:58 +02:00
Andreas Kling
f90d75e5b9 Meta: Time for a new screenshot to keep things fresh. :^) 2019-06-07 18:14:13 +02:00
Andreas Kling
191112e457 Meta: Tweak ReadMe. 2019-06-07 17:57:03 +02:00
Andreas Kling
a0bde822ee AK: Add IterationDecision.h. 2019-06-07 17:14:16 +02:00
Andreas Kling
39d1a9ae66 Meta: Tweak .clang-format to not wrap braces after enums. 2019-06-07 17:13:23 +02:00
Andreas Kling
9145917bf0 ELF: Run clang-format on everything. 2019-06-07 17:12:30 +02:00
Andreas Kling
e42c3b4fd7 Kernel: Rename LinearAddress => VirtualAddress. 2019-06-07 12:56:50 +02:00
Andreas Kling
0ed89440f1 ProcessManager+top: Rename "linear" size to "virtual" size.
I originally called it "linear" because that's how the Intel manual names
virtual addresses in many cases. I'm ready to accept that most people know
this as "virtual" so let's just call it that.
2019-06-07 12:44:29 +02:00
Andreas Kling
54448b5d24 Kernel: Syscall header should forward-declare timeval with C linkage. 2019-06-07 11:52:27 +02:00
Andreas Kling
2c70ae0418 Demos: Run clang-format on everything. 2019-06-07 11:50:05 +02:00
Andreas Kling
3ca332af42 LibM: Run clang-format on everything. 2019-06-07 11:49:47 +02:00
Andreas Kling
b07bbf383d Userland: Run clang-format on everything. 2019-06-07 11:49:31 +02:00
Andreas Kling
f7ede145b4 Shell: Run clang-format on everything. 2019-06-07 11:49:21 +02:00
Andreas Kling
46527b72d7 LibC: Run clang-format on everything. 2019-06-07 11:49:03 +02:00
Andreas Kling
892acfb10d VisualBuilder: Run clang-format on everything. 2019-06-07 11:48:27 +02:00
Andreas Kling
fba2c971e7 Games: Run clang-format on everything. 2019-06-07 11:48:15 +02:00
Andreas Kling
fd604a7c68 Applications: Run clang-format on everything. 2019-06-07 11:48:03 +02:00
Andreas Kling
e09c3a1ae8 SystemServer: Run clang-format on everything. 2019-06-07 11:47:46 +02:00
Andreas Kling
8358833bc8 WindowServer: Run clang-format on everything. 2019-06-07 11:47:19 +02:00
Andreas Kling
76b3337498 SharedGraphics: Run clang-format on everything. 2019-06-07 11:46:55 +02:00
Andreas Kling
7770d6a09d LibCore: Run clang-format on everything. 2019-06-07 11:46:37 +02:00
Andreas Kling
b34b084619 AK: Run clang-format on everything. 2019-06-07 11:46:22 +02:00
Andreas Kling
7ad8790d80 LibGUI: Run clang-format on everything. 2019-06-07 11:46:02 +02:00
Andreas Kling
bc951ca565 Kernel: Run clang-format on everything. 2019-06-07 11:43:58 +02:00
Andreas Kling
98eeb8f22d AK: Rename printf.cpp to PrintfImplementation.h. 2019-06-07 11:41:11 +02:00
Andreas Kling
1d5a3507b2 Userland: Add a little test program for the alarm() syscall. 2019-06-07 11:30:22 +02:00
Andreas Kling
d194ce828d Kernel: Implement the alarm() syscall. 2019-06-07 11:30:07 +02:00
Andreas Kling
a2a6bb93bc GScrollBar: Use increment/decrement naming consistently. 2019-06-07 10:56:30 +02:00
Andreas Kling
164742f316 GScrollBar: Keep scrolling while pushing down increment/decrement button. 2019-06-07 10:43:10 +02:00
Andreas Kling
0ece5fee14 GTextEditor: Set the vertical scrollbar step size to the line height.
This makes us scroll one line at a time.
2019-06-07 10:42:59 +02:00
Andreas Kling
1d7b89cd1c Base: Let's have "te" as a symlink alias for TextEditor for now. 2019-06-07 10:12:04 +02:00
Andreas Kling
08cd75ac4b Kernel: Rename FileDescriptor to FileDescription.
After reading a bunch of POSIX specs, I've learned that a file descriptor
is the number that refers to a file description, not the description itself.
So this patch renames FileDescriptor to FileDescription, and Process now has
FileDescription* file_description(int fd).
2019-06-07 09:36:51 +02:00
Andreas Kling
69a6ce90df AK: Add a ScopeGuard helper that invokes a callback when destroyed.
This is useful when you want to ensure some little thing happens when you
exit a certain scope.

This patch makes use of it in LibC's netdb code to make sure we close the
connection to the LookupServer.
2019-06-07 09:19:15 +02:00
Andreas Kling
4edc73ad1f Terminal: Use the visual bell by default. 2019-06-07 08:45:39 +02:00
Christopher Dumas
0491d34d0c LookupServer: use /etc/hosts even for reverse lookups 2019-06-07 08:35:41 +02:00
Christopher Dumas
70a37f9a26 LookupServer: Load hostnames 2019-06-07 08:35:41 +02:00
Christopher Dumas
4f62176c3e LookupServer: Clang-Format 2019-06-07 08:35:41 +02:00
Andreas Kling
59c37363b6 TTY: Generate SIGTSTP if cc[VSUSP] is pressed.
Fixes #207.
2019-06-06 20:31:49 +02:00
Ben Sloane
9687f1801b tail: Default tail behavior with no arguments (#209)
Make tail assume you wanted 10 lines of output if no -n option was provided.
2019-06-06 20:28:58 +02:00