All the kernel header files now use pargma once rather than the ifndef, as the pre-processed C files do not change while header files are protected with pargma once. This will also solve any naming issues caused by ifndef.
41 lines
891 B
C
41 lines
891 B
C
/*
|
|
* Copyright 2014, General Dynamics C4 Systems
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-only
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#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;
|
|
|