seL4/include/kernel/cspace.h
Qian Ge 512a0200de replacing all ifndef with pargma once
All the kernel header files now use pargma once rather than the ifndef,
as the pre-processed C files do not change while header files
are protected with pargma once. This will also solve any naming issues
caused by ifndef.
2020-03-23 11:04:46 +11:00

61 lines
1.7 KiB
C

/*
* Copyright 2014, General Dynamics C4 Systems
*
* SPDX-License-Identifier: GPL-2.0-only
*/
#pragma once
#include <types.h>
#include <api/failures.h>
#include <api/types.h>
#include <object/structures.h>
struct lookupCap_ret {
exception_t status;
cap_t cap;
};
typedef struct lookupCap_ret lookupCap_ret_t;
struct lookupCapAndSlot_ret {
exception_t status;
cap_t cap;
cte_t *slot;
};
typedef struct lookupCapAndSlot_ret lookupCapAndSlot_ret_t;
struct lookupSlot_raw_ret {
exception_t status;
cte_t *slot;
};
typedef struct lookupSlot_raw_ret lookupSlot_raw_ret_t;
struct lookupSlot_ret {
exception_t status;
cte_t *slot;
};
typedef struct lookupSlot_ret lookupSlot_ret_t;
struct resolveAddressBits_ret {
exception_t status;
cte_t *slot;
word_t bitsRemaining;
};
typedef struct resolveAddressBits_ret resolveAddressBits_ret_t;
lookupCap_ret_t lookupCap(tcb_t *thread, cptr_t cPtr);
lookupCapAndSlot_ret_t lookupCapAndSlot(tcb_t *thread, cptr_t cPtr);
lookupSlot_raw_ret_t lookupSlot(tcb_t *thread, cptr_t capptr);
lookupSlot_ret_t lookupSlotForCNodeOp(bool_t isSource,
cap_t root, cptr_t capptr,
word_t depth);
lookupSlot_ret_t lookupSourceSlot(cap_t root, cptr_t capptr,
word_t depth);
lookupSlot_ret_t lookupTargetSlot(cap_t root, cptr_t capptr,
word_t depth);
lookupSlot_ret_t lookupPivotSlot(cap_t root, cptr_t capptr,
word_t depth);
resolveAddressBits_ret_t resolveAddressBits(cap_t nodeCap,
cptr_t capptr,
word_t n_bits);