summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-02-24LibGUI: Show the columns view action in the toolbar (but disable it)Andreas Kling
We'll enable it once ColumnsView is less crashy. :^)
2020-02-24LibThread: Post the completion callbacks to the *current* event loopAndreas Kling
FilePicker was not showing thumbnails correctly because once each thumbnail rendering BackgroundAction completed, it posted a deferred invocation event to the *main* event loop. Since FilePicker runs in a nested event loop, those completion callbacks never ran until it was too late and the FilePicker was gone.
2020-02-24LibGUI: Complain in SortingProxyModel::data() if map_to_target() failsAndreas Kling
There is some sort of issue with using a SortingProxyModel together with ColumnsView. This is a workaround to allow FilePicker to use a MultiView for now, but this needs to be fixed separately somehow.
2020-02-24LibGUI: Use MultiView in FilePickerAndreas Kling
This allows the user to switch between different view modes. Fixes #1283.
2020-02-24LibGUI: Add a MultiView widget, based on FileManager's "DirectoryView"Andreas Kling
A MultiView is a combination of ItemView, TableView and ColumnsView smashed into a single widget. You can switch between the view modes by calling MultiView::set_view_mode(). Note that MultiView inherits from StackWidget, not AbstractView. That's purely for practical reasons, although I'm not entirely sure if there would be some benefit to having it inherit from AbstractView.
2020-02-24LibGUI: Make AbstractView::set_model() take a RefPtr<Model>Andreas Kling
Let's face it: Taking RefPtr<T>&& arguments is obnoxious and puts too much unnecessary burden on the caller.
2020-02-24TextEditor: Pledge "thread" since it's needed by GUI::FilePickerAndreas Kling
This is a little bit awkward since it's only used for generating thumbnails on a background thread and it's not like I care about thumbnails very much in a text editor, but for now let's just pledge "thread" so I can get on with the thing I wanted to get on with.
2020-02-24WindowServer+LibGUI: Allow changing a window's base size and incrementAndreas Kling
Previously it was only possible to change these window attributes when creating a new window. This patch adds an IPC message that allows you to change them at runtime.
2020-02-24Kernel: Use Vector::unstable_remove() when deallocating a regionAndreas Kling
Process::m_regions is not sorted, so we can use unstable_remove() to avoid shifting the vector contents. :^)
2020-02-24Kernel: Fix some formatting goofs in Process.hAndreas Kling
2020-02-24LibGUI: Scroll selected treeview entries into viewTibor Nagy
2020-02-24Kernel: Fail with ENOMEM if there's insufficient VM for a SharedBufferAndreas Kling
2020-02-24Kernel: Make Region weakable and use WeakPtr<Region> instead of Region*Andreas Kling
This turns use-after-free bugs into null pointer dereferences instead.
2020-02-24Kernel: Clear the region lookup cache on exec()Andreas Kling
Each process has a 1-level lookup cache for fast repeated lookups of the same VM region (which tends to be the majority of lookups.) The cache is used by the following syscalls: munmap, madvise, mprotect and set_mmap_name. After a succesful exec(), there could be a stale Region* in the lookup cache, and the new executable was able to manipulate it using a number of use-after-free code paths.
2020-02-24ACPI: Don't set Smart Pointers to be nullptrLiav A
Instead of setting the smart pointers to be nullptr in the initializer list, it's done automatically by OwnPtr.
2020-02-24Kernel: Don't use references or pointers to physical addressesLiav A
Now the ACPI & PCI code is more safer, because we don't use raw pointers or references to objects or data that are located in the physical address space, so an accidental dereference cannot happen easily. Instead, we use the PhysicalAddress class to represent those addresses.
2020-02-24AK: Add offset_in_page() method in PhysicalAddress classLiav A
This method is useful for later usage.
2020-02-24Kernel: Change get_sharing_devices_count() in GenericInterruptHandlerLiav A
The new method' name is sharing_devices_count(). The Serenity Coding Style tends to not accept the word "get" in methods' names if possible.
2020-02-24Kernel: Change get_pci_address() to pci_address() in PCI::Device classLiav A
The Serenity Coding Style tends to not accept the word "get" in methods' names if possible.
2020-02-24Userland: Add a utility for viewing interrupts from ProcFSLiav A
2020-02-24Kernel: Create an entry for viewing interrupts in ProcFSLiav A
2020-02-24Kernel: Delete unused filesLiav A
2020-02-24Build: Update the Kernel makefile to build the latest changesLiav A
2020-02-24Kernel: Update the init stage to use all the latest changesLiav A
gdt_init() and idt_init() will be invoked earlier in the boot process. Also, setup_interrupts() will be called to setup the interrupt mode.
2020-02-24CPU: Use the new interrupt componentsLiav A
Now we use the GenericInterruptHandler class instead of IRQHandler in the CPU functions. This commit adds an include to the ISR stub macros header file. Also, this commit adds support for IRQ sharing, so when an IRQHandler will try to register to already-assigned IRQ number, a SharedIRQHandler will be created to register both IRQHandlers.
2020-02-24Kernel: Add the new APIC namespaceLiav A
Also, the enable() function is now correct and will use the right registers and values. In addition to that, write_register() and read_registers() are not relying on identity mapping anymore.
2020-02-24CPU: Add 2 files with ISR stub macrosLiav A
2020-02-24Kernel: Update SB16 driver to use the new IRQHandler classLiav A
Also, add methods to allow changing of IRQ line in the SB16 card.
2020-02-24Kernel: Include the new PIT class in system componentsLiav A
2020-02-24Kernel: Update PATAChannel implementation to use the PIT classLiav A
Also, update the class implementation to use PCI::Device class accordingly. The create() helper will now search for an IDE controller in the PCI bus, allowing to simplify the initialize() method.
2020-02-24Kernel: Update PATAChannel class to use the PCI::Device classLiav A
PATAChannel class will inherit from the PCI::Device class, thus, can still implement IRQ handling.
2020-02-24Kernel: Add MSIHandler classLiav A
This is a stub for now, since we don't support Message Signaled Interrupts yet.
2020-02-24Kernel: Add UnhandledInterruptHandler classLiav A
This class will be used to represent an IRQ vector handler that wasn't assigned to any IRQ Handler.
2020-02-24Kernel: Add SharedIRQHandler classLiav A
This class represents a shared interrupt handler. This class will not be created automatically but only if two IRQ Handlers are sharing the same IRQ number.
2020-02-24Kernel: Update system components to use the new IRQHandler classLiav A
2020-02-24ACPI: Run clang-format on the definitions fileLiav A
2020-02-24Kernel: Introduce the PIT classLiav A
The PIT class inherits from HardwareTimer class, and is replacing the PIT namespace.
2020-02-24Kernel: Update Network adapter classes to use the PCI::Device classLiav A
Those classes will inherit from the PCI::Device class, thus, they can still implement IRQ handling.
2020-02-24Kernel: Update PCI::Device class to use the new IRQHandler classLiav A
2020-02-24Kernel: Add HardwareTimer classLiav A
This is an abstraction layer for future hardware timers that will be implemented.
2020-02-24Kernel: Add new IRQHandler classLiav A
This class will replace the old IRQHandler class later.
2020-02-24Kernel: Add Interrupt Management and Generic Interrupt HandlerLiav A
The GenericInterruptHandler class will be used to represent an abstract interrupt handler. The InterruptManagement class will represent a centralized component to manage interrupts.
2020-02-24ACPI: Adding definitions for HPETLiav A
Also, definitions were added for MADT entries, like IOAPIC and GSI overriding information.
2020-02-24Kernel: Add the IOAPIC classLiav A
This class inherits from IRQController class, and represents the 82093AA IOAPIC chip.
2020-02-24Kernel: Add the PIC classLiav A
This class inherits from IRQController class, and represents the common Intel 8259 PIC chip.
2020-02-24Kernel: Add IRQController classLiav A
This class is an abstraction layer for different IRQ controllers that are present in a typical system.
2020-02-24Kernel: Fix a wrong debug message in ACPIStaticParserLiav A
2020-02-24Kernel: Add PCI helpers to enable and disable the interrupt lineLiav A
2020-02-24Kernel: Add MultiProcessor ParserLiav A
2020-02-24LibGUI: Implement keyboard and mouse wheel events for SpinBoxTibor Nagy