CHERIoT RTOS
A compartmentalised RTOS for CHERIoT hardware
Loading...
Searching...
No Matches
Revocation::IsRevokerDevice Concept Reference

Concept for a revoker. More...

#include <hardware_revoker.hh>

Concept definition

template<typename T>
concept IsRevokerDevice =
requires(T v) {
{ T::IsAsynchronous } -> std::same_as<const bool &>;
{ v.init() } -> std::same_as<void>;
{ v.system_epoch_get() } -> std::same_as<uint32_t>;
{ v.system_bg_revoker_kick() } -> std::same_as<void>;
} &&
requires(T v, uint32_t epoch) {
{
v.template has_revocation_finished_for_epoch<true>(epoch)
} -> std::same_as<uint32_t>;
{
v.template has_revocation_finished_for_epoch<false>(epoch)
} -> std::same_as<uint32_t>;
} &&
requires(T v,
ptraddr_t addr,
ptraddr_t endAddr,
CHERI::Capability<void> *cap) {
{ v.mark_get(addr) } -> std::same_as<bool>;
{ v.mark_set_one(cap) } -> std::same_as<void>;
{ v.mark_clear_one(addr) } -> std::same_as<void>;
{ v.mark_set_range(cap) } -> std::same_as<void>;
{ v.mark_clear_range(addr, endAddr) } -> std::same_as<void>;
}
Concept for a revoker.

Detailed Description

Concept for a revoker.

Boards can provide their own definition of this, which must be found in <platform-hardware_revoker.hh> in a path provided by the board include directories.

Definition at line 16 of file hardware_revoker.hh.