In line with more recent design discussions, we now have (limited)
support for running multiple threads inside an lcd.
Each thread will have its own hardware vm, but share a guest
physical address space and cspace.
It's limited for now because threads cannot handle interrupts/exceptions
internally in the lcd. This will require a per-thread TSS (much like
Linux's per-core TSS/interrupt stack). I removed the gdt/idt/tss for
now (Cf. with Dune, they don't use gdt/idt/tss) and will tackle that later
after finishing more important stuff.
I have only tested the code for running one hardware vm inside an lcd. Some
code is missing proper locking for the future when we have multiple threads
inside an lcd. I'm leaving this for now.
The microkernel uses a simple bitmap for guest physical page allocation.
Removed blob loading - code is set up for running modules exclusively.
See the headers and Documentation/lcd-domains for more info.
I put a flag at the top of files that are not currently in use, and will
probably be deleted/incorporated later.