1/*
2 * Copyright 2014, General Dynamics C4 Systems
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 */
6
7#pragma once
8
9#ifdef CONFIG_DEBUG_BUILD
10
11/* helpers */
12void add_to_seen(cap_t c);
13void reset_seen_list(void);
14bool_t seen(cap_t c);
15bool_t same_cap(cap_t a, cap_t b);
16bool_t root_or_idle_tcb(tcb_t *tcb);
17
18/* common */
19void obj_tcb_print_cnodes(cap_t cnode, tcb_t *tcb);
20void print_caps(void);
21void print_objects(void);
22void print_cap(cap_t cap);
23void print_object(cap_t cap);
24
25void obj_tcb_print_attrs(tcb_t *tcb);
26void obj_sc_print_attrs(cap_t sc);
27void obj_cnode_print_attrs(cap_t cnode);
28void obj_ut_print_attrs(cte_t *slot, tcb_t *tcb);
29
30void obj_tcb_print_slots(tcb_t *tcb);
31void obj_cnode_print_slots(tcb_t *tcb);
32void obj_irq_print_slots(cap_t irq_cap);
33void obj_irq_print_maps(void);
34
35void cap_ep_print_attrs(cap_t ep);
36void cap_ntfn_print_attrs(cap_t ntfn);
37void cap_cnode_print_attrs(cap_t cnode);
38
39/* arch specific functions */
40void print_ipc_buffer_slot(tcb_t *tcb);
41/* TBD: currently the capDL extractor declaring an object for every entry in the vspace.
42 * However, frames can be mapped into multiple locations but sould only be declared once.
43 */
44void obj_vtable_print_slots(tcb_t *tcb);
45word_t get_tcb_sp(tcb_t *tcb);
46void print_cap_arch(cap_t cap);
47void print_object_arch(cap_t cap);
48void obj_tcb_print_vtable(tcb_t *tcb);
49
50#endif
51