• Philippe Gerum's avatar
    sched: ipipe: enable task migration between domains · 957ac4c9
    Philippe Gerum authored
    This is the basic code enabling alternate control of tasks between the
    regular kernel and an embedded co-kernel. The changes cover the
    following aspects:
    
    - extend the per-thread information block with a private area usable
      by the co-kernel for storing additional state information
    
    - provide the API enabling a scheduler exchange mechanism, so that
      tasks can run under the control of either kernel alternatively. This
      includes a service to move the current task to the head domain under
      the control of the co-kernel, and the converse service to re-enter
      the root domain once the co-kernel has released such task.
    
    - ensure the generic context switching code can be used from any
      domain, serializing execution as required.
    
    These changes have to be paired with arch-specific code further
    enabling context switching from the head domain.
    957ac4c9
sched.h 47.4 KB