Contains common code for nova programms. More...
#include <program.h>
Public Member Functions | |
NovaProgram () | |
Static Public Member Functions | |
static void | exit (const char *msg) |
Default exit function. | |
Protected Member Functions | |
Utcb * | alloc_utcb () |
Alloc a region of virtual memory to put an EC into. | |
template<class C > | |
unsigned | create_ec_helper (C *tls, unsigned cpunr, unsigned excbase, Utcb **utcb_out=0, void *func=0, unsigned cap=alloc_cap()) |
Create an ec and setup the stack. | |
unsigned | init (Hip *hip) |
Initialize ourself. | |
void | init_mem (Hip *hip) |
Init the memory map from the HIP as we get them from sigma0. | |
void | __attribute__ ((noreturn)) block_forever() |
Block ourself. | |
Protected Attributes | |
Hip * | _hip |
unsigned | _cap_block |
RegionList< 512 > | _free_virt |
RegionList< 512 > | _free_phys |
RegionList< 512 > | _virt_phys |
Contains common code for nova programms.
NovaProgram::NovaProgram | ( | ) | [inline] |
void NovaProgram::__attribute__ | ( | (noreturn) | ) | [inline, protected] |
Block ourself.
Utcb* NovaProgram::alloc_utcb | ( | ) | [inline, protected] |
Alloc a region of virtual memory to put an EC into.
unsigned NovaProgram::create_ec_helper | ( | C * | tls, | |
unsigned | cpunr, | |||
unsigned | excbase, | |||
Utcb ** | utcb_out = 0 , |
|||
void * | func = 0 , |
|||
unsigned | cap = alloc_cap() | |||
) | [inline, protected] |
Create an ec and setup the stack.
static void NovaProgram::exit | ( | const char * | msg | ) | [inline, static] |
Default exit function.
unsigned NovaProgram::init | ( | Hip * | hip | ) | [inline, protected] |
Initialize ourself.
void NovaProgram::init_mem | ( | Hip * | hip | ) | [inline, protected] |
Init the memory map from the HIP as we get them from sigma0.
unsigned NovaProgram::_cap_block [protected] |
RegionList<512> NovaProgram::_free_phys [protected] |
RegionList<512> NovaProgram::_free_virt [protected] |
Hip* NovaProgram::_hip [protected] |
RegionList<512> NovaProgram::_virt_phys [protected] |