/* * Copyright 2014, General Dynamics C4 Systems * * SPDX-License-Identifier: GPL-2.0-only */ #ifndef __FAILURES_H #define __FAILURES_H #include #include /* These datatypes differ markedly from haskell, due to the * different implementation of the various fault monads */ enum exception { EXCEPTION_NONE, EXCEPTION_FAULT, EXCEPTION_LOOKUP_FAULT, EXCEPTION_SYSCALL_ERROR, EXCEPTION_PREEMPTED }; typedef word_t exception_t; typedef word_t syscall_error_type_t; struct syscall_error { word_t invalidArgumentNumber; word_t invalidCapNumber; word_t rangeErrorMin; word_t rangeErrorMax; word_t memoryLeft; bool_t failedLookupWasSource; syscall_error_type_t type; }; typedef struct syscall_error syscall_error_t; extern lookup_fault_t current_lookup_fault; extern seL4_Fault_t current_fault; extern syscall_error_t current_syscall_error; #endif