summaryrefslogtreecommitdiff
path: root/Kernel
AgeCommit message (Collapse)Author
2020-03-15Userland: ifconfig can change the IP address of the default gatewaymarprok
ioctl can now perform a request for a specific route and change the address of it's default gateway.
2020-03-12ACPI: Examine bit width in Generic address structure before assertingLiav A
Also, the switch-case flow is simplified for IO access within a Generic address strucuture's handling.
2020-03-12ACPI: Keep common flags in structures for later usageLiav A
2020-03-12Ext2FS: Reset the found_a_group flagmarprok
2020-03-11Userland: Set the mask of a network adapter with ifconfig (#1388)Marios Prokopakis
A new IP address or a new network mask can be specified in the command line arguments of ifconfig to replace the old values of a given network adapter. Additionally, more information is being printed for each adapter.
2020-03-10Kernel: Get rid of SmapDisabler in sys$fstat()Andreas Kling
2020-03-09Games: Added solitaire to build-root-filesystem.shTill Mayer
2020-03-09Kernel: Allow to reboot in ACPI via PCI or MMIO accessLiav A
Also, we determine if ACPI reboot is supported by checking the FADT flags' field.
2020-03-09PCI: Enable LogStream output for addressesLiav A
2020-03-09LibBareMetal: Return FlatPtr from PhysicalAddress::offset_in_page()Liav A
2020-03-08Kernel: Ensure RTL8139NetworkAdapter uses virtual memory correctlyLiav A
2020-03-08Kernel: Ensure E1000NetworkAdapter uses virtual memory correctlyLiav A
2020-03-08Kernel: Allow contiguous allocations in physical memoryLiav A
For that, we have a new type of VMObject, called ContiguousVMObject, that is responsible for allocating contiguous physical pages.
2020-03-08Kernel: Fix race in waitidBen Wiederhake
This is similar to 28e1da344d1de4fb80ce9e9c8da9127fa8606dc7 and 4dd4dd2f3c067eca446d9513e814ae9aaa648882. The crux is that wait verifies that the outvalue (siginfo* infop) is writable *before* waiting, and writes to it *after* waiting. In the meantime, a concurrent thread can make the output region unwritable, e.g. by deallocating it.
2020-03-08Kernel: Fix race in selectBen Wiederhake
This is similar to 28e1da344d1de4fb80ce9e9c8da9127fa8606dc7 and 4dd4dd2f3c067eca446d9513e814ae9aaa648882. The crux is that select verifies that the filedescriptor sets are writable *before* blocking, and writes to them *after* blocking. In the meantime, a concurrent thread can make the output buffer unwritable, e.g. by deallocating it.
2020-03-08Kernel: Fix inconsistent inclusion styleBen Wiederhake
This also makes it easier to automatically parse the dependency tree. Thankfully, this is the only place where a change was necessary.
2020-03-08Kernel: Add missing #includes now that <AK/StdLibExtras.h> is smallerAndreas Kling
2020-03-08AK: Add global FlatPtr typedef. It's u32 or u64, based on sizeof(void*)Andreas Kling
Use this instead of uintptr_t throughout the codebase. This makes it possible to pass a FlatPtr to something that has u32 and u64 overloads.
2020-03-07IPv4: Keep IPv4 socket locked during receive operationsAndreas Kling
We unlock/relock around blocking, but outside of that we now keep the socket locked. This fixes an intermittent ASSERT(m_can_read) failure.
2020-03-07LibWeb: Move everything into the Web namespaceAndreas Kling
2020-03-06Kernel: Fix syntax error in FIFO_DEBUGLiav A
2020-03-06Kernel: Fix syntax errors in PS2MOUSE_DEBUGTibor Nagy
Found with Cppcheck.
2020-03-06Meta: Claim copyright on `PCI` filesLiav A
2020-03-06CPU: Prevent leakage of virtual addresses to kernel logLiav A
2020-03-06Meta: Claim copyright on `ACPI` filesLiav A
2020-03-06Kernel: Simplify a bunch of dbg() and klog() callsAndreas Kling
LogStream can handle VirtualAddress and PhysicalAddress directly.
2020-03-06Ext2FS: Remove unused allocate_block()Andreas Kling
We only use allocate_blocks() now. If you want a single block, you can just call allocate_blocks() with a count of 1.
2020-03-06Kernel: Shorten the model name of i8529 PIC classLiav A
2020-03-06Kernel: Change data in /proc/interrupts to be more richerLiav A
Also, during interrupt handlers' enumeration, we call all interrupts handlers that are not UnhandledInterruptHandler.
2020-03-06Kernel: Change HandlerPurpose to HandlerTypeLiav A
Also, GenericInterruptHandler class requires to implement two new methods.
2020-03-06Kernel: Fix strange looking output on unhandled page faultAndreas Kling
2020-03-06AK: Remove Optional::operator bool()Andreas Kling
This was causing some obvious-in-hindsight but hard to spot bugs where we'd implicitly convert the bool to an integer type and carry on with the number 1 instead of the actual value().
2020-03-06Init Stage: Allow to boot with smp=onLiav A
One can now set the kernel boot argument smp to on, and therefore, to instruct the kernel to use the IOAPIC instead of the PIC.
2020-03-06Kernel: Simplify APIC::enable()Liav A
We install a SpuriousInterruptHandler when calling APIC::enable(), and we don't enable local interrupts for now.
2020-03-06Kernel: Enable IRQs before sending commands to devicesLiav A
Without this fix, a very fast IRQ can preempt the enable_irq() call, leaving that IRQ being unhandled.
2020-03-06CPU: Allow to use IRQs in range of 50 to 178Liav A
2020-03-06Kernel: Acquire ISA interrupt overrides from Interrupt ManagementLiav A
Also, InterruptDisabler were added to prevent critical function from being interrupted. In addition, the interrupt numbers are abstracted from IDT offsets, thus, allowing to create a better routing scheme when using IOAPICs for interrupt redirection.
2020-03-06Kernel: Print MultiProcessor featuresLiav A
2020-03-06Kernel: Unmap non-readable pagesAndreas Kling
This was caught by running all crash tests with "crash -A". Basically, non-readable pages need to not be mapped *at all* so that a "page not present" exception is provoked on access. Unfortunately x86 does not support write-only mappings, so this is the best we can do. Fixes #1336.
2020-03-05Kernel: Run clang-format on Process.cpp & ACPIDynamicParser.hLiav A
2020-03-05Kernel: Call ACPI reboot method first if possibleLiav A
Now we call ACPI reboot method first if possible, and if ACPI reboot is not available, we attempt to reboot via the keyboard controller.
2020-03-03Kernel: Fix race in clock_nanosleepBen Wiederhake
This is a complete fix of clock_nanosleep, because the thread holds the process lock again when returning from sleep()/sleep_until(). Therefore, no further concurrent invalidation can occur.
2020-03-03AK: Make quick_sort() a little more ergonomicAndreas Kling
Now it actually defaults to "a < b" comparison, instead of forcing you to provide a trivial less-than comparator. Also you can pass in any collection type that has .begin() and .end() and we'll sort it for you.
2020-03-02CPU: Change debug messages to fit the latest changesLiav A
2020-03-02Kernel: Run clang-format on various filesLiav A
2020-03-02Kernel: Use klog() instead of kprintf()Liav A
Also, duplicate data in dbg() and klog() calls were removed. In addition, leakage of virtual address to kernel log is prevented. This is done by replacing kprintf() calls to dbg() calls with the leaked data instead. Also, other kprintf() calls were replaced with klog().
2020-03-02Kernel: Use IOAddress class in PATAChannel classLiav A
This change make the code a bit more readable. Also, kprintf() calls are replaced with klog() calls.
2020-03-02Kernel: Use IOAddress class in Network adapters' driversLiav A
Also, kprintf() calls were replaced with klog() calls.
2020-03-02Kernel: MemoryManager should create cacheable regions by defaultAndreas Kling
2020-03-02Kernel: Remove ability to create kernel-only regions at user addressesAndreas Kling
This was only used by the mechanism for mapping executables into each process's own address space. Now that we remap executables on demand when needed for symbolication, this can go away.