|
Barrelfish
|
Kernel capability management. More...
Data Structures | |
| struct | cte |
| A CTE (Capability Table Entry). More... | |
Functions | |
| errval_t | caps_create_new (enum objtype type, lpaddr_t addr, size_t bits, size_t objbits, coreid_t owner, struct cte *caps) |
| errval_t | caps_create_from_existing (struct capability *root, capaddr_t cnode_cptr, int cnode_vbits, cslot_t dest_slot, coreid_t owner, struct capability *src) |
| Create a capability from an existing capability metadata. More... | |
| errval_t | caps_copy_to_cnode (struct cte *dest_cnode_cte, cslot_t dest_slot, struct cte *src_cte, bool mint, uintptr_t param1, uintptr_t param2) |
| Create copies to a slot within a cnode. | |
| errval_t | caps_copy_to_vnode (struct cte *dest_vnode_cte, cslot_t dest_slot, struct cte *src_cte, uintptr_t flags, uintptr_t offset, uintptr_t pte_count, struct cte *mapping_cte) |
| Create page mappings. | |
| errval_t | page_mappings_modify_flags (struct capability *mapping, size_t offset, size_t pages, size_t mflags, genvaddr_t va_hint) |
modify flags of mapping mapping. More... | |
| errval_t | caps_retype (enum objtype type, gensize_t objsize, size_t count, struct capability *dest_cnode, cslot_t dest_slot, struct cte *src_cte, gensize_t offset, bool from_monitor) |
| errval_t | is_retypeable (struct cte *src_cte, enum objtype src_type, enum objtype dest_type, bool from_monitor) |
| Check the validity of a retype operation. | |
| errval_t | caps_lookup_cap (struct capability *cnode_cap, capaddr_t cptr, uint8_t level, struct capability **ret, CapRights rights) |
| errval_t | caps_lookup_slot (struct capability *rootcn, capaddr_t cptr, uint8_t level, struct cte **ret, CapRights rights) |
| errval_t | caps_delete_last (struct cte *cte, struct cte *ret_ram_cap) |
| Delete the last copy of a cap in the entire system. More... | |
| errval_t | caps_delete_foreigns (struct cte *cte) |
| Delete all copies of a foreign cap. | |
| errval_t | caps_mark_revoke (struct capability *base, struct cte *revoked) |
| Mark capabilities for a revoke operation. More... | |
Kernel capability management.
| errval_t caps_create_from_existing | ( | struct capability * | root, |
| capaddr_t | cnode_cptr, | ||
| int | cnode_level, | ||
| cslot_t | dest_slot, | ||
| coreid_t | owner, | ||
| struct capability * | src | ||
| ) |
Create a capability from an existing capability metadata.
Used when sending capabilities across cores. The metadata is sent across cores and the receiving monitor can create the new capability on its core.
| errval_t caps_create_new | ( | enum objtype | type, |
| lpaddr_t | addr, | ||
| size_t | bytes, | ||
| size_t | objsize, | ||
| coreid_t | owner, | ||
| struct cte * | caps | ||
| ) |
Create caps to new kernel objects. This takes the size of the memory region in bytes, and the size of individual objects in bytes. The following needs to hold: bytes % objbytes == 0
Delete the last copy of a cap in the entire system.
| errval_t caps_lookup_cap | ( | struct capability * | cnode_cap, |
| capaddr_t | cptr, | ||
| uint8_t | level, | ||
| struct capability ** | ret, | ||
| CapRights | rights | ||
| ) |
Wrapper for caps_lookup_slot returning capability instead of cte.
| errval_t caps_lookup_slot | ( | struct capability * | rootcn, |
| capaddr_t | cptr, | ||
| uint8_t | level, | ||
| struct cte ** | ret, | ||
| CapRights | rights | ||
| ) |
Look up a capability in two-level cspace rooted at rootcn.
| errval_t caps_mark_revoke | ( | struct capability * | base, |
| struct cte * | revoked | ||
| ) |
Mark capabilities for a revoke operation.
| base | The data for the capability being revoked |
| revoked | The revoke target if it is on this core. This specific capability copy will not be marked. If supplied, is_copy(base, &revoked->cap) must hold. |
| errval_t caps_retype | ( | enum objtype | type, |
| gensize_t | objsize, | ||
| size_t | count, | ||
| struct capability * | dest_cnode, | ||
| cslot_t | dest_slot, | ||
| struct cte * | src_cte, | ||
| gensize_t | offset, | ||
| bool | from_monitor | ||
| ) |
Retype caps Create count new caps of type from offset in src, and put them in dest_cnode starting at dest_slot.
| errval_t page_mappings_modify_flags | ( | struct capability * | mapping, |
| size_t | offset, | ||
| size_t | pages, | ||
| size_t | mflags, | ||
| genvaddr_t | va_hint | ||
| ) |
modify flags of mapping mapping.
1.8.11