-
Colin Finck authored
* Split the CMake files into an architecture-independent and an architecture-dependent part. This overhaul of the build system also removes the custom "module system", which doesn't make much sense for a Rust kernel and doesn't work well with such a split configuration. * Add an aarch64-unknown-hermit-kernel.json target for Xargo. * Implement basic IRQ and serial port functions for AArch64 to get a first output. * Copy the 4-level paging from x86_64 to AArch64 and remove the parts relying on the "x86" crate. While this still needs some work to get the names and flags right, 4-level paging should generally work on AArch64 with the same concepts that are used for x86_64. * Comment out and stub out many functions for AArch64 to let is somewhat compile. * Redefine core_id as a CPU number that is guaranteed to be sequential to make it architecture-independent. For x86_64, this number is now translated to a Local APIC ID in the "apic" module only. * Add a per-architecture TaskStacks structure, which contains "stack" and "ist" on x86_64 and only "stack" on AArch64. * Add a per-architecture network_adapter_init function to initialize RTL8139 only for x86_64. * Get rid of the top-level "arch" directory and put the reasonable architecture-dependent include files into /include/hermit/<ARCH>, all prefixed with "arch_". * Make the inclusion of some crates dependent on the target architecture. * Rename get_number_of_processors to get_processor_count and make it return a usize.
a9671ff5