Liav A
e3b24d0478
Kernel: Delete unused files
2020-02-24 11:27:03 +01:00
Liav A
36eea5fa60
Build: Update the Kernel makefile to build the latest changes
2020-02-24 11:27:03 +01:00
Liav A
4448597c64
Kernel: Update the init stage to use all the latest changes
...
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-24 11:27:03 +01:00
Liav A
bb73802b15
CPU: Use the new interrupt components
...
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-24 11:27:03 +01:00
Liav A
9e66eb160c
Kernel: Add the new APIC namespace
...
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-24 11:27:03 +01:00
Liav A
71371d39b3
CPU: Add 2 files with ISR stub macros
2020-02-24 11:27:03 +01:00
Liav A
c51a57fb32
Kernel: Update SB16 driver to use the new IRQHandler class
...
Also, add methods to allow changing of IRQ line in the SB16 card.
2020-02-24 11:27:03 +01:00
Liav A
895e874eb4
Kernel: Include the new PIT class in system components
2020-02-24 11:27:03 +01:00
Liav A
b3c132ffb7
Kernel: Update PATAChannel implementation to use the PIT class
...
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-24 11:27:03 +01:00
Liav A
83aa868c17
Kernel: Update PATAChannel class to use the PCI::Device class
...
PATAChannel class will inherit from the PCI::Device class, thus,
can still implement IRQ handling.
2020-02-24 11:27:03 +01:00
Liav A
12dbb7ca49
Kernel: Add MSIHandler class
...
This is a stub for now, since we don't support Message Signaled
Interrupts yet.
2020-02-24 11:27:03 +01:00
Liav A
9d281b4b15
Kernel: Add UnhandledInterruptHandler class
...
This class will be used to represent an IRQ vector handler that wasn't
assigned to any IRQ Handler.
2020-02-24 11:27:03 +01:00
Liav A
9587f2d3ee
Kernel: Add SharedIRQHandler class
...
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-24 11:27:03 +01:00
Liav A
740534cd67
Kernel: Update system components to use the new IRQHandler class
2020-02-24 11:27:03 +01:00
Liav A
a46120b4a8
ACPI: Run clang-format on the definitions file
2020-02-24 11:27:03 +01:00
Liav A
16055de978
Kernel: Introduce the PIT class
...
The PIT class inherits from HardwareTimer class, and is replacing
the PIT namespace.
2020-02-24 11:27:03 +01:00
Liav A
d83a3eff1f
Kernel: Update Network adapter classes to use the PCI::Device class
...
Those classes will inherit from the PCI::Device class, thus,
they can still implement IRQ handling.
2020-02-24 11:27:03 +01:00
Liav A
73a7e5875e
Kernel: Update PCI::Device class to use the new IRQHandler class
2020-02-24 11:27:03 +01:00
Liav A
ea1251d465
Kernel: Add HardwareTimer class
...
This is an abstraction layer for future hardware timers
that will be implemented.
2020-02-24 11:27:03 +01:00
Liav A
dd7522bdb2
Kernel: Add new IRQHandler class
...
This class will replace the old IRQHandler class later.
2020-02-24 11:27:03 +01:00
Liav A
b201b23363
Kernel: Add Interrupt Management and Generic Interrupt Handler
...
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-24 11:27:03 +01:00
Liav A
ebe30ed11e
ACPI: Adding definitions for HPET
...
Also, definitions were added for MADT entries, like IOAPIC and GSI
overriding information.
2020-02-24 11:27:03 +01:00
Liav A
e760ebcacb
Kernel: Add the IOAPIC class
...
This class inherits from IRQController class, and represents
the 82093AA IOAPIC chip.
2020-02-24 11:27:03 +01:00
Liav A
7d59a67504
Kernel: Add the PIC class
...
This class inherits from IRQController class, and represents
the common Intel 8259 PIC chip.
2020-02-24 11:27:03 +01:00
Liav A
b56afbea17
Kernel: Add IRQController class
...
This class is an abstraction layer for different IRQ controllers
that are present in a typical system.
2020-02-24 11:27:03 +01:00
Liav A
35f27231b3
Kernel: Fix a wrong debug message in ACPIStaticParser
2020-02-24 11:27:03 +01:00
Liav A
3539666ac9
Kernel: Add PCI helpers to enable and disable the interrupt line
2020-02-24 11:27:03 +01:00
Liav A
ca05d54b2b
Kernel: Add MultiProcessor Parser
2020-02-24 11:27:03 +01:00
Tibor Nagy
5f913c67d9
LibGUI: Implement keyboard and mouse wheel events for SpinBox
2020-02-24 10:40:32 +01:00
Andreas Kling
17846dd063
AK: Zero-initialize the internal storage of Optional
2020-02-24 10:22:27 +01:00
Andreas Kling
0763f67043
AK: Make Bitmap use size_t for its size
...
Also rework its API's to return Optional<size_t> instead of int with -1
as the error value.
2020-02-24 09:56:07 +01:00
Andreas Kling
b813b2f871
AK: Make HashTable and HashMap use size_t for size and capacity
2020-02-24 09:42:52 +01:00
Andreas Kling
3252a6925e
LibGUI: Fix silly nullptr dereference in MessageBox::show()
...
Since we take the parent object as a raw pointer, we should handle the
case where it's null.
2020-02-24 09:15:51 +01:00
thatlittlegit
525f8df5b8
SystemMenu: Migrate PowerDialog to (widget)->add like in 3d20da9e
...
This also fixes the build.
2020-02-23 22:03:03 +01:00
thatlittlegit
ab9e5755ba
Userland+Kernel: Set shutdown/reboot to only be run by the phys
group
2020-02-23 22:03:03 +01:00
thatlittlegit
30556a0a93
SystemMenu: Move SystemDialog into SystemMenu and remove INI config
...
I probably would've done INI config removal in another commit, but it
fit well here because I didn't want to pledge wpath for SystemMenu if I
didn't need to.
Frankly, that's something that I think should be done: allow ConfigFile
to be used read-only.
2020-02-23 22:03:03 +01:00
thatlittlegit
9784ab99d2
SystemDialog+Base: Add icon for SystemDialog
2020-02-23 22:03:03 +01:00
thatlittlegit
ba6a290f4f
SystemMenu: Remove --shutdown argument when calling SystemDialog
2020-02-23 22:03:03 +01:00
thatlittlegit
efc4861786
SystemDialog: Revamp to be more Win95-like
...
Only thing I don't like right now is the fact that we rely on the shell.
2020-02-23 22:03:03 +01:00
Andreas Kling
6c5100b644
LibGUI: Add helper for constructing new TabWidget tabs
...
This patch adds the following convenience helper:
auto tab_widget = GUI::TabWidget::construct();
auto my_widget = tab_widget->add_tab<GUI::Widget>("My tab", ...);
The above is equivalent to:
auto tab_widget = GUI::TabWidget::construct();
auto my_widget = GUI::Widget::construct(...);
tab_widget->add_widget("My tab", my_widget);
2020-02-23 12:27:53 +01:00
Andreas Kling
bbc02af090
Demos: Remove silly HelloWorld2 demo
...
This was just a tiny test app made with the old VisualBuilder. It's not
really useful for anything.
2020-02-23 12:27:53 +01:00
Andreas Kling
c5d913970a
LibGUI: Remove parent parameter to GUI::Widget constructor
2020-02-23 12:27:53 +01:00
Andreas Kling
4ce28c32d1
Inspector: Use Core::Object::add()
2020-02-23 12:27:53 +01:00
Tibor Nagy
3d32c3352b
FontEditor: Fix focus and implement keyboard navigation in the glyph map
2020-02-23 12:18:17 +01:00
Tibor Nagy
6fcf4e48f8
LibGfx: Fix accidentally hardcoded font height in Font::clone()
2020-02-23 12:18:17 +01:00
Andreas Kling
bfd86c4631
LibGUI: Make GUI::Frame have the 2px sunken container look by default
...
The overwhelming majority of GUI::Frame users set the same appearance,
so let's just make it the default.
2020-02-23 11:10:52 +01:00
Andreas Kling
3d20da9ee4
Userspace: Use Core::Object::add() when building interfaces
2020-02-23 11:10:52 +01:00
Andreas Kling
7ec758773c
Kernel: Dump all kernel regions when we hit a page fault during IRQ
...
This way you can try to figure out what the faulting address is.
2020-02-23 11:10:52 +01:00
Andreas Kling
00bf68adc6
LibGUI: Reduce header dependencies of ComboBox
2020-02-23 11:10:52 +01:00
Andreas Kling
45c25ffecd
LibGUI: Use Core::Object::add() a whole bunch
2020-02-23 11:10:52 +01:00