1/*
2 * Copyright 2014, General Dynamics C4 Systems
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 */
6
7#pragma once
8
9#include <object.h>
10
11#ifdef CONFIG_KERNEL_MCS
12static inline bool_t validTimeoutHandler(tcb_t *tptr)
13{
14    return cap_get_capType(TCB_PTR_CTE_PTR(tptr, tcbTimeoutHandler)->cap) == cap_endpoint_cap;
15}
16
17void handleTimeout(tcb_t *tptr);
18void handleNoFaultHandler(tcb_t *tptr);
19bool_t sendFaultIPC(tcb_t *tptr, cap_t handlerCap, bool_t can_donate);
20#else
21exception_t sendFaultIPC(tcb_t *tptr);
22void handleDoubleFault(tcb_t *tptr, seL4_Fault_t ex1);
23#endif
24void handleFault(tcb_t *tptr);
25
26