Barrelfish
|
Arch-generic system calls implementation. More...
Functions | |
errval_t | sys_print (const char *str, size_t length) |
Print a string through the kernel. More... | |
struct sysret | sys_retype (struct capability *root, capaddr_t source_croot, capaddr_t source_cptr, gensize_t offset, enum objtype type, gensize_t objsize, size_t count, capaddr_t dest_cspace_cptr, capaddr_t dest_cnode_cptr, uint8_t dest_cnode_level, cslot_t dest_slot, bool from_monitor) |
struct sysret | sys_copy_or_mint (struct capability *root, capaddr_t dest_cspace_cptr, capaddr_t destcn_cptr, cslot_t dest_slot, capaddr_t source_croot_ptr, capaddr_t source_cptr, uint8_t destcn_level, uint8_t source_level, uintptr_t param1, uintptr_t param2, bool mint) |
struct sysret | sys_yield (capaddr_t target) |
Yield the CPU. More... | |
struct sysret | sys_suspend (bool do_halt) |
struct sysret | sys_idcap_identify (struct capability *cap, idcap_id_t *id) |
struct sysret | sys_monitor_spawn_core (hwid_t target, enum cpu_type cpu_type, genvaddr_t entry, genpaddr_t context) |
struct sysret | sys_get_absolute_time (void) |
get time elapsed (in milliseconds) since system boot. | |
Arch-generic system calls implementation.
struct sysret sys_copy_or_mint | ( | struct capability * | root, |
capaddr_t | dest_cspace_cptr, | ||
capaddr_t | destcn_cptr, | ||
cslot_t | dest_slot, | ||
capaddr_t | source_croot_ptr, | ||
capaddr_t | source_cptr, | ||
uint8_t | destcn_level, | ||
uint8_t | source_level, | ||
uintptr_t | param1, | ||
uintptr_t | param2, | ||
bool | mint | ||
) |
Common code for copying and minting except the mint flag and param passing
root | Source cspace root cnode |
dest_cspace_cptr | Destination cspace root cnode cptr in source cspace destcn_cptr Destination cnode cptr relative to destination cspace |
dest_slot | Destination slot |
source_cptr | Source capability cptr relative to source cspace |
destcn_level | Level/depth of destination cnode |
source_level | Level/depth of source cap |
param1 | First parameter for mint |
param2 | Second parameter for mint |
mint | Call is a minting operation |
struct sysret sys_idcap_identify | ( | struct capability * | cap, |
idcap_id_t * | id | ||
) |
The format of the returned ID is:
63 39 31 0 Bit
struct sysret sys_monitor_spawn_core | ( | hwid_t | target, |
enum cpu_type cpu_type | , | ||
genvaddr_t | entry, | ||
genpaddr_t | context | ||
) |
Calls correct handler function to spawn an app core.
At the moment spawn_core_handlers is set-up per architecture inside text_init() usually found in init.c.
core_id | Identifier of the core which we want to boot |
cpu_type | Architecture of the core. |
entry | Entry point for code to start execution. |
SYS_ERR_OK | Core successfully booted. |
SYS_ERR_ARCHITECTURE_NOT_SUPPORTED | No handler registered for the specified cpu_type. |
SYS_ERR_CORE_NOT_FOUND | Core failed to boot. |
errval_t sys_print | ( | const char * | string, |
size_t | length | ||
) |
Print a string through the kernel.
This calls SYSCALL_PRINT to print 'string' of length 'length' through the kernel. Whether and where 'string' is printed is determined by the kernel.
string | Pointer to string to print. |
length | Length of string. |
struct sysret sys_retype | ( | struct capability * | root, |
capaddr_t | source_croot, | ||
capaddr_t | source_cptr, | ||
gensize_t | offset, | ||
enum objtype | type, | ||
gensize_t | objsize, | ||
size_t | count, | ||
capaddr_t | dest_cspace_cptr, | ||
capaddr_t | dest_cnode_cptr, | ||
uint8_t | dest_cnode_level, | ||
cslot_t | dest_slot, | ||
bool | from_monitor | ||
) |
root | Source CSpace root cnode to invoke |
source_croot | Source capability cspace root |
source_cptr | Source capability cptr |
offset | Offset into source capability from which to retype |
type | Type to retype to |
objsize | Object size for variable-sized types |
count | number of objects to create |
dest_cspace_cptr | Destination CSpace cnode cptr relative to source cspace root |
dest_cnode_cptr | Destination cnode cptr |
dest_slot | Destination slot number |
dest_cnode_level | Level/depth of destination cnode |
struct sysret sys_suspend | ( | bool | halt | ) |
Suspend the current cpu
struct sysret sys_yield | ( | capaddr_t | target | ) |
Yield the CPU.
Yields the remainder of the time-slice for this dispatcher to the next runnable dispatcher.
target | Dispatcher to yield to, or CPTR_NULL for an undirected yield |