/* * Copyright 2014, General Dynamics C4 Systems * * This software may be distributed and modified according to the terms of * the GNU General Public License version 2. Note that NO WARRANTY is provided. * See "LICENSE_GPLv2.txt" for details. * * @TAG(GD_GPL) */ #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