Barrelfish
|
Architecture-independent bootstrap code. More...
Macros | |
#define | CNODE(cte) get_address(&(cte)->cap) |
Quick way to find the base address of a cnode capability. | |
Functions | |
errval_t | create_caps_to_cnode (lpaddr_t base_addr, size_t size, enum region_type type, struct spawn_state *st, struct bootinfo *bootinfo) |
Create caps in 'cnode'. More... | |
lpaddr_t | app_alloc_phys (size_t size) |
lpaddr_t | bsp_alloc_phys (size_t size) |
Linear physical memory allocator. More... | |
Variables | |
struct kcb * | kcb_current = NULL |
flag that indicates whether kcb scheduling should happen | |
lpaddr_t | bsp_init_alloc_addr = 0 |
Architecture-independent bootstrap code.
lpaddr_t app_alloc_phys | ( | size_t | size | ) |
Allocate physical memory during kernel startup for application cores. Allocations are always rounded up to multiple pages.
size | The number of bytes to allocate. |
lpaddr_t bsp_alloc_phys | ( | size_t | size | ) |
Linear physical memory allocator.
This function allocates a linear region of addresses of size 'size' from physical memory.
size | Number of bytes to allocate. |
errval_t create_caps_to_cnode | ( | lpaddr_t | base_addr, |
size_t | size, | ||
enum region_type | type, | ||
struct spawn_state * | st, | ||
struct bootinfo * | bootinfo | ||
) |
Create caps in 'cnode'.
This function creates untyped caps to the RAM at physical address 'base_addr' and size 'size' and adds them to a cnode for the init task. The bootinfo is updated accordingly.
base_addr | The physical base address of the RAM for which caps have to be created |
size | The size of the physical region |
type | Region type to create |
st | spawn_state structure to update |
bootinfo | bootinfo structure to update |
lpaddr_t bsp_init_alloc_addr = 0 |
The address from where bsp_alloc_phys will start allocating memory