sel4/
debug.rs

1//
2// Copyright 2023, Colias Group, LLC
3// Copyright (c) 2020 Arm Limited
4//
5// SPDX-License-Identifier: MIT
6//
7
8use crate::{sys, InvocationContext, CapType, cap, Cap};
9
10/// Corresponds to `seL4_DebugHalt`.
11pub fn debug_halt() {
12    sys::seL4_DebugHalt()
13}
14
15/// Corresponds to `seL4_DebugSnapshot`.
16pub fn debug_snapshot() {
17    sys::seL4_DebugSnapshot()
18}
19
20impl<C: InvocationContext> cap::Tcb<C> {
21    /// Corresponds to `seL4_DebugNameThread`.
22    pub fn debug_name(self, name: &[u8]) {
23        self.invoke(|cptr, ipc_buffer| {
24            sys::seL4_DebugNameThread(cptr.bits(), name, ipc_buffer.inner_mut())
25        })
26    }
27}
28
29impl<T: CapType> Cap<T> {
30    /// Corresponds to `seL4_DebugCapIdentify`.
31    pub fn debug_identify(self) -> u32 {
32        sys::seL4_DebugCapIdentify(self.bits())
33    }
34}