Skip to content
Snippets Groups Projects
  1. Mar 04, 2019
    • Lioncash's avatar
      kernel/scheduler: Pass in system instance in constructor · fad20213
      Lioncash authored
      Avoids directly relying on the global system instance and instead makes
      an arbitrary system instance an explicit dependency on construction.
      
      This also allows removing dependencies on some global accessor functions
      as well.
      fad20213
  2. Feb 16, 2019
    • Lioncash's avatar
      core_timing: Convert core timing into a class · bd983414
      Lioncash authored
      Gets rid of the largest set of mutable global state within the core.
      This also paves a way for eliminating usages of GetInstance() on the
      System class as a follow-up.
      
      Note that no behavioral changes have been made, and this simply extracts
      the functionality into a class. This also has the benefit of making
      dependencies on the core timing functionality explicit within the
      relevant interfaces.
      bd983414
  3. Nov 22, 2018
    • 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