Skip to content
Snippets Groups Projects
  1. Sep 21, 2018
  2. Sep 18, 2018
    • Lioncash's avatar
      arm_interface: Remove ARM11-isms from the CPU interface · b51e7e02
      Lioncash authored
      This modifies the CPU interface to more accurately match an
      AArch64-supporting CPU as opposed to an ARM11 one. Two of the methods
      don't even make sense to keep around for this interface, as Adv Simd is
      used, rather than the VFP in the primary execution state. This is
      essentially a modernization change that should have occurred from the
      get-go.
      b51e7e02
  3. Sep 15, 2018
  4. Sep 12, 2018
  5. Aug 31, 2018
    • Lioncash's avatar
      core/core: Replace includes with forward declarations where applicable · 4a587b81
      Lioncash authored
      The follow-up to e2457418, which
      replaces most of the includes in the core header with forward declarations.
      
      This makes it so that if any of the headers the core header was
      previously including change, then no one will need to rebuild the bulk
      of the core, due to core.h being quite a prevalent inclusion.
      
      This should make turnaround for changes much faster for developers.
      4a587b81
  6. Aug 29, 2018
    • Lioncash's avatar
      kernel: Eliminate kernel global state · 0cbcd6ec
      Lioncash authored
      As means to pave the way for getting rid of global state within core,
      This eliminates kernel global state by removing all globals. Instead
      this introduces a KernelCore class which acts as a kernel instance. This
      instance lives in the System class, which keeps its lifetime contained
      to the lifetime of the System class.
      
      This also forces the kernel types to actually interact with the main
      kernel instance itself instead of having transient kernel state placed
      all over several translation units, keeping everything together. It also
      has a nice consequence of making dependencies much more explicit.
      
      This also makes our initialization a tad bit more correct. Previously we
      were creating a kernel process before the actual kernel was initialized,
      which doesn't really make much sense.
      
      The KernelCore class itself follows the PImpl idiom, which allows
      keeping all the implementation details sealed away from everything else,
      which forces the use of the exposed API and allows us to avoid any
      unnecessary inclusions within the main kernel header.
      0cbcd6ec
  7. Aug 25, 2018
  8. Aug 13, 2018
  9. Aug 12, 2018
  10. Aug 04, 2018
  11. Aug 03, 2018
  12. Aug 02, 2018
  13. Jul 31, 2018
    • Lioncash's avatar
      kernel: Remove unnecessary includes · a2304fad
      Lioncash authored
      Removes unnecessary direct dependencies in some headers and also gets
      rid of indirect dependencies that were being relied on to be included.
      a2304fad
  14. Jul 24, 2018
  15. Jul 21, 2018
  16. Jul 20, 2018
  17. Jul 18, 2018
  18. Jul 03, 2018
  19. Jun 21, 2018
  20. Jun 02, 2018
    • Subv's avatar
      Kernel/Threads: A thread waking up by timeout from a WaitProcessWideKey may... · 9cd87a63
      Subv authored
      Kernel/Threads: A thread waking up by timeout from a WaitProcessWideKey may already have an assigned lock owner.
      
      This situation may happen like so:
      Thread 1 with low priority calls WaitProcessWideKey with timeout.
      Thread 2 with high priority calls WaitProcessWideKey without timeout.
      Thread 3 calls SignalProcessWideKey
      - Thread 2 acquires the lock and awakens.
      - Thread 1 can't acquire the lock and is put to sleep with the lock owner being Thread 2.
      Thread 1's timeout expires, with the lock owner still being set to Thread 2.
      9cd87a63
  21. May 31, 2018
  22. May 30, 2018
  23. May 10, 2018
  24. Apr 30, 2018
  25. Apr 27, 2018
  26. Apr 26, 2018
  27. Apr 23, 2018
    • Subv's avatar
      Kernel: Implemented mutex priority inheritance. · 46572d02
      Subv authored
      Verified with a hwtest and implemented based on reverse engineering.
      
      Thread A's priority will get bumped to the highest priority among all the threads that are waiting for a mutex that A holds.
      Once A releases the mutex and ownership is transferred to B, A's priority will return to normal and B's priority will be bumped.
      46572d02
  28. Apr 21, 2018
Loading