NOVA User-Level Environment
Version testbox/changed-memory-timing-317-g320d8b5
|
Contains common code for nova programms. More...
#include <program.h>
Public Member Functions | |
NovaProgram () | |
Public Member Functions inherited from CapAllocator | |
CapAllocator (unsigned long cap_, unsigned long cap_start, unsigned long cap_order) | |
unsigned | alloc_cap (unsigned count=1) |
void | dealloc_cap (unsigned cap, unsigned count=1) |
Static Public Member Functions | |
static void | exit (const char *msg) |
Default exit function. | |
Static Public Member Functions inherited from BaseProgram | |
static Utcb * | myutcb (unsigned long esp=0) |
Get the UTCB pointer from the top of the stack, which is laid out as follows: | |
static phy_cpu_no | mycpu () |
Return my CPU number. | |
static void | revoke_all_mem (void *address, unsigned long size, unsigned rights, bool myself) |
Revoke all memory for a given virtual region. | |
static Crd | request_mapping (char *start, unsigned long size, unsigned long hotspot) |
Request the mapping for a memory area. |
Protected Member Functions | |
Utcb * | alloc_utcb () |
Alloc a region of virtual memory to put an EC into. | |
template<class C > | |
__attribute__ ((nonnull(6))) unsigned create_ec_helper(C *tls | |
Create an EC and setup the stack. | |
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 |
phy_cpu_no | cpunr |
phy_cpu_no unsigned | excbase |
phy_cpu_no unsigned Utcb ** | utcb_out |
phy_cpu_no unsigned Utcb void * | func |
phy_cpu_no unsigned Utcb void unsigned long | cap = ~0UL |
phy_cpu_no unsigned Utcb void unsigned long bool | local |
Private Types | |
enum | { VIRT_START = 0x1000, UTCB_PAD = 0x1000 } |
Additional Inherited Members | |
Public Attributes inherited from CapAllocator | |
unsigned long | _cap_ |
unsigned long | _cap_start |
unsigned long | _cap_order |
Static Public Attributes inherited from BaseProgram | |
static const unsigned | stack_size_shift = 12 |
static const unsigned | stack_size = (1U << stack_size_shift) |
Contains common code for nova programms.
|
inline |
|
protected |
Create an EC and setup the stack.
tls | Pointer passed to func as the first parameter |
|
inlineprotected |
Block ourself.
Reimplemented in Cycleburner, and Tutor.
|
inlineprotected |
Alloc a region of virtual memory to put an EC into.
|
inlinestatic |
Default exit function.
|
inlineprotected |
Init the memory map from the HIP as we get them from sigma0.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |