Seriously... Just have the PMM temporarily map them as it needs them. The code to do so is pretty trivial, and far easier than screwing around with calling functions linked at a completely different address.
Its code you're going to need anyway.
Higher half and kernel linking
Re: Higher half and kernel linking
Ah yeah, good point.
So at this point I'm starting by mapping the kernel with position-independent/lower-half code that doesn't call any library functions, then mapping the multiboot structures as the PMM reads them, and running the rest of the initialization code for the GDT, IDT, etc. with paging enabled.
So at this point I'm starting by mapping the kernel with position-independent/lower-half code that doesn't call any library functions, then mapping the multiboot structures as the PMM reads them, and running the rest of the initialization code for the GDT, IDT, etc. with paging enabled.