Skip to content
  • Charlie Jacobsen's avatar
    Adds support for creating a kLCD from another kLCD. · e49732d2
    Charlie Jacobsen authored and Vikram Narayanan's avatar Vikram Narayanan committed
    This is a boring but important commit that we need for
    our glue code example (that is still in progress).
    
    The main motiviation is: One kLCD (like a booting kLCD) may
    want to create other threads to run kernel modules, and it
    may want to grant them capabilities to resources. (Before
    this, this wasn't possible - all kLCDs were isolated from
    each other.) Another alternative (possibly better) for the
    future is to allow threads to share cspaces. But we're
    probably not there yet.
    
    Adds the following to the kLIBLCD interface:
    
    -- klcd_create_klcd - essentially creates another kernel
       thread and initializes the lcd-specific stuff like its
       cspace; the creator can then use lcd_cap_grant to grant
       this thread capabilities
    
    -- klcd_create_module_klcd - creates a klcd (using
       klcd_create_klcd) and loads a kernel module for the klcd
       to run
    
    -- klcd_destroy_module_klcd - destroys klcd (the kernel
       thread, etc.) and unloads the module
    
    Adds test and an example group of modules that show how to use
    this.
    e49732d2