Skip to content
  • Charles Jacobsen's avatar
    Support for multiple threads in lcd (limited). Major clean up of code. · ded1cd32
    Charles Jacobsen authored and Vikram Narayanan's avatar Vikram Narayanan committed
    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.
    ded1cd32