Skip to content
  • Lioncash's avatar
    core: Relocate CPU core management to its own class · 232d95b5
    Lioncash authored
    Keeps the CPU-specific behavior from being spread throughout the main
    System class. This will also act as the home to contain member functions
    that perform operations on all cores. The reason for this being that the
    following pattern is sort of prevalent throughout sections of the
    codebase:
    
    If clearing the instruction cache for all 4 cores is necessary:
    
    Core::System::GetInstance().ArmInterface(0).ClearInstructionCache();
    Core::System::GetInstance().ArmInterface(1).ClearInstructionCache();
    Core::System::GetInstance().ArmInterface(2).ClearInstructionCache();
    Core::System::GetInstance().ArmInterface(3).ClearInstructionCache();
    
    This is kind of... well, silly to copy around whenever it's needed.
    especially when it can be reduced down to a single line.
    
    This change also puts the basics in place to begin "ungrafting" all of the
    forwarding member functions from the System class that are used to
    access CPU state or invoke CPU-specific behavior. As such, this change
    itself makes no changes to the direct external interface of System. This
    will be covered by another changeset.
    232d95b5
Loading