Age | Commit message (Collapse) | Author |
|
This commit merges the trap module into the cpu module in order to solve
interface problems caused by the degree to which those two modules are
actually coupled, i.e. it just makes a lot more sense to not separate
them at all.
The cpu module is also internally reworked with improved object and
method definitions, that clarify the double fault handling code,
among other things.
|
|
|
|
For some reason, commit be5b9d6ab9f7e7a81c367e4bb0823ba11f85940f didn't
take care of all reserved identifiers.
|
|
|
|
In particular, the pic and ioapic modules register their respective
devices as interrupt controllers. Selection between the legacy XT-PIC
and the modern APIC system is made on the availability of ACPI,
disregarding the multiprocessor specification entirely. The uart
driver is also updated to register devices interrupt handlers.
|
|
Instead of mixing standard headers and internal redefinitions of standard
types, completely rely on the compiler for what is guaranteed for a free
standing environment. This results in the removal of kern/stddef.h and
kern/stdint.h. The kern/types.h header is reintroduced for the different
(and saner) purpose of defining types not specified in standard C,
namely ssize_t for now.
|
|
Interrupt handler functions are suffixed with _intr.
|
|
Make it clear that destinations are APIC IDs and not kernel-assigned
processor IDs.
|
|
In addition, make lapic_eoi public.
|
|
There are no precise enough criteria to justify the separation of these
two directories.
|
|
The trap module is responsible for managing low level interrupts and
exceptions.
|
|
Merge 32-bit IA-32 (i386) and 64-bit AMD64 (amd64) code into one common
architecture. The amd64 variant isn't functional yet.
|