SaturnRingLibrary 0.9.2
SGL wrapper
Loading...
Searching...
No Matches
SRL::System::InterruptPriorityTable Struct Reference

Detailed Description

SCU interrupt priority table (32 longword entries).

Each entry is a 32-bit value with two packed fields:

  • Upper 16 bits: SH2 SR lower-word value set at interrupt entry
  • Lower 16 bits: SCU interrupt mask OR'd with current mask at entry
Warning
Incorrect priority settings will crash the system. The BIOS performs no validation on the table content.
See also
SetInterruptPriorities()

#include <srl_system.hpp>

Public Member Functions

constexpr InterruptPriorityTable ()
 Default constructor initializes all priorities to zero.
template<size_t I>
constexpr const uint32_t & at () const noexcept
 Const access to interrupt priority with compile-time bounds checking.
template<size_t I>
constexpr uint32_t & at () noexcept
 Access interrupt priority with compile-time bounds checking.
constexpr const uint32_t & operator[] (size_t index) const noexcept
 Const access to interrupt priority with runtime bounds checking.
constexpr uint32_t & operator[] (size_t index) noexcept
 Access interrupt priority with runtime bounds checking.

Public Attributes

uint32_t priorities [COUNT]
 Packed SR-value | mask-value entries.

Static Public Attributes

static constexpr size_t COUNT = 32
 Number of SCU interrupt priority entries.