Barrelfish
Data Structures | Macros | Enumerations
init.h File Reference

init user-space domain special structures. More...

Data Structures

struct  mem_region
 
struct  bootinfo
 

Macros

#define BOOTINFO_SIZEBITS   (BASE_PAGE_BITS + 2)
 
#define ARGS_FRAME_BITS   17
 
#define FDS_SIZE   (32 * 1024)
 
#define DISPATCHER_SIZE   ((genpaddr_t)1 << DISPATCHER_FRAME_BITS)
 
#define MON_URPC_SIZE   (2 * BASE_PAGE_SIZE)
 
#define MAX_MEM_REGIONS
 
#define ROOTCN_SLOT_TASKCN   0
 Taskcn slot in root cnode.
 
#define ROOTCN_SLOT_PAGECN   1
 Pagecn slot in root cnode.
 
#define ROOTCN_SLOT_BASE_PAGE_CN   2
 Slot for a cnode of BASE_PAGE_SIZE frames.
 
#define ROOTCN_SLOT_SUPERCN   3
 Slot for a cnode of SUPER frames.
 
#define ROOTCN_SLOT_SEGCN   4
 SegCN slot in root cnode.
 
#define ROOTCN_SLOT_PACN   5
 PhysAddr cnode slot in root cnode.
 
#define ROOTCN_SLOT_MODULECN   6
 Multiboot modules cnode slot in root cnode.
 
#define ROOTCN_SLOT_SLOT_ALLOC0   7
 Root of slot alloc0.
 
#define ROOTCN_SLOT_SLOT_ALLOC1   8
 Root of slot alloc1.
 
#define ROOTCN_SLOT_SLOT_ALLOC2   9
 Root of slot alloc2.
 
#define ROOTCN_SLOT_ARGCN   10
 Argcn slot in root cnode.
 
#define ROOTCN_SLOT_BSPKCB   11
 BSP KCB cap to fix reverse lookup issues.
 
#define ROOTCN_SLOTS_USER   12
 First free slot in root cnode for user.
 
#define TASKCN_SLOT_TASKCN   0
 Task CNode in itself (XXX)
 
#define TASKCN_SLOT_DISPATCHER   1
 Dispatcher cap in task cnode.
 
#define TASKCN_SLOT_ROOTCN   2
 RootCN slot in task cnode.
 
#define TASKCN_SLOT_DISPFRAME   4
 Dispatcher frame cap in task cnode.
 
#define TASKCN_SLOT_IRQ   5
 IRQ cap in task cnode.
 
#define TASKCN_SLOT_IO   6
 IO cap in task cnode.
 
#define TASKCN_SLOT_BOOTINFO   7
 Bootinfo frame slot in task cnode.
 
#define TASKCN_SLOT_KERNELCAP   8
 Kernel cap in task cnode.
 
#define TASKCN_SLOT_TRACEBUF   9
 Trace buffer cap in task cnode.
 
#define TASKCN_SLOT_ARGSPAGE   10
 ?
 
#define TASKCN_SLOT_MON_URPC   11
 Frame cap for urpc comm.
 
#define TASKCN_SLOT_SESSIONID   12
 Session ID domain belongs to.
 
#define TASKCN_SLOT_FDSPAGE   13
 cap for inherited file descriptors
 
#define TASKCN_SLOT_PERF_MON   14
 cap for performance monitoring
 
#define TASKCN_SLOT_SYSMEM   15
 ???
 
#define TASKCN_SLOT_COREBOOT   16
 Copy of realmode section used to bootstrap a core.
 
#define TASKCN_SLOT_IPI   17
 Copy of IPI cap.
 
#define TASKCN_SLOTS_USER   18
 First free slot in taskcn for user.
 
#define PAGECN_SLOT_VROOT   0
 First slot of page cnode is root page table.
 

Enumerations

Detailed Description

init user-space domain special structures.

Macro Definition Documentation

#define ARGS_FRAME_BITS   17

Address (in spawned domain) of page with command-line arguments and environment

#define BOOTINFO_SIZEBITS   (BASE_PAGE_BITS + 2)

Size of bootinfo mapping.

#define DISPATCHER_SIZE   ((genpaddr_t)1 << DISPATCHER_FRAME_BITS)

Size of dispatcher frame

#define FDS_SIZE   (32 * 1024)

Size of page with inherited file descriptors

#define MAX_MEM_REGIONS
Value:
((BOOTINFO_SIZE - sizeof(struct bootinfo)) / \
sizeof(struct mem_region))
Definition: init.h:150
Definition: init.h:136

Maximum possible number of entries in the memory regions array. This is limited by the page size minus the size of the initial part of the bootinfo structure.

#define MON_URPC_SIZE   (2 * BASE_PAGE_SIZE)

Size of initial page to carry out monitor URPC

Enumeration Type Documentation

Memory region types.

Enumerator
RegionType_Empty 

Empty memory: describes a RAM cap in supercn.

RegionType_RootTask 

Code/Data of init itself: describes a Frame cap in segcn.

RegionType_PhyAddr 

Physical address range (not RAM): describes a PhysAddr cap in physaddrcn.

RegionType_PlatformData 

BIOS tables and platform-specific data: describes a PhysAddr cap in physaddrcn.

RegionType_Module 

Multiboot module: describes multiple Frame caps in modulecn.

describes memory region that is an ACPI table

RegionType_Max 

Must be last.