mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 16:18:12 +00:00
Kernel/riscv64: Add enum for scause
CSR
This commit is contained in:
parent
26752ee8df
commit
3286a05de1
1 changed files with 27 additions and 0 deletions
|
@ -215,4 +215,31 @@ struct [[gnu::packed]] alignas(u64) SSTATUS {
|
|||
};
|
||||
static_assert(AssertSize<SSTATUS, 8>());
|
||||
|
||||
// 4.1.8 Supervisor Cause Register (scause)
|
||||
constexpr u64 SCAUSE_INTERRUPT_MASK = 1LU << 63;
|
||||
|
||||
enum class SCAUSE : u64 {
|
||||
// Interrupts
|
||||
SupervisorSoftwareInterrupt = SCAUSE_INTERRUPT_MASK | 1,
|
||||
SupervisorTimerInterrupt = SCAUSE_INTERRUPT_MASK | 5,
|
||||
SupervisorExternalInterrupt = SCAUSE_INTERRUPT_MASK | 9,
|
||||
|
||||
// Exceptions
|
||||
InstructionAddressMisaligned = 0,
|
||||
InstructionAccessFault = 1,
|
||||
IllegalInstrction = 2,
|
||||
Breakpoint = 3,
|
||||
LoadAddressMisaligned = 4,
|
||||
LoadAccessFault = 5,
|
||||
StoreOrAMOAddressMisaligned = 6,
|
||||
StoreOrAMOAccessFault = 7,
|
||||
EnvironmentCallFromUMode = 8,
|
||||
EnvironmentCallFromSMode = 9,
|
||||
|
||||
InstructionPageFault = 12,
|
||||
LoadPageFault = 13,
|
||||
|
||||
StoreOrAMOPageFault = 15,
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue