segmentless smp fixes

adjust the smp booting procedure for segmentless operation. changes are
mostly due to gdt/idt being dependent on paging, because of the high
location, and paging being on much sooner because of that too.

also smaller fixes: redefine DESC_SIZE, fix kernel makefile variable name
(crosscompiling), some null pointer checks that trap now because of a
sparser pagetable, acpi sanity checking
This commit is contained in:
Ben Gras
2012-07-13 00:54:27 +02:00
parent 50e2064049
commit 1d48c0148e
16 changed files with 259 additions and 145 deletions

View File

@@ -16,6 +16,14 @@ struct segdesc_s { /* segment descriptor for protected mode */
u8_t base_high;
} __attribute__((packed));
struct gatedesc_s {
u16_t offset_low;
u16_t selector;
u8_t pad; /* |000|XXXXX| ig & trpg, |XXXXXXXX| task g */
u8_t p_dpl_type; /* |P|DL|0|TYPE| */
u16_t offset_high;
} __attribute__((packed));
struct desctableptr_s {
u16_t limit;
u32_t base;