blob: e807a3f3c8c9b0ed5af20ce1b3dd4a1e318f8c6a [file] [log] [blame]
/* SPDX-License-Identifier: BSD-3-Clause */
#ifndef _ARCH_EXCEPTION_H
#define _ARCH_EXCEPTION_H
#include <stdint.h>
struct trapframe {
uintptr_t gpr[32];
uintptr_t status;
uintptr_t epc;
uintptr_t badvaddr;
uintptr_t cause;
uintptr_t insn;
};
typedef uint32_t insn_t;
struct insn_fetch {
uintptr_t error;
insn_t insn;
};
static inline void exception_init(void)
{
}
void redirect_trap(void);
void default_trap_handler(struct trapframe *tf);
void handle_supervisor_call(struct trapframe *tf);
void handle_misaligned(struct trapframe *tf);
#endif