seL4/include/api/failures.h
Gerwin Klein 79da079239 Convert license tags to SPDX identifiers
This commit also converts our own copyright headers to directly use
SPDX, but leaves all other copyright header intact, only adding the
SPDX ident. As far as possible this commit also merges multiple
Data61 copyright statements/headers into one for consistency.
2020-03-09 13:21:49 +08:00

43 lines
927 B
C

/*
* Copyright 2014, General Dynamics C4 Systems
*
* SPDX-License-Identifier: GPL-2.0-only
*/
#ifndef __FAILURES_H
#define __FAILURES_H
#include <types.h>
#include <sel4/errors.h>
/* 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