Skip to content
Snippets Groups Projects
  1. Sep 13, 2018
  2. 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
  3. Aug 25, 2018
  4. Aug 04, 2018
  5. Aug 02, 2018
  6. Aug 01, 2018
  7. 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
  8. Jul 21, 2018
  9. Jul 20, 2018
  10. Jun 22, 2018
  11. Jun 21, 2018
  12. May 10, 2018
  13. 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
  14. Apr 21, 2018
  15. Mar 19, 2018
  16. Feb 18, 2018
  17. Jan 10, 2018
  18. Jan 09, 2018
  19. Dec 31, 2017
  20. Dec 29, 2017
  21. Oct 01, 2017
  22. Sep 30, 2017
  23. Sep 28, 2017
    • Subv's avatar
      Kernel/Threads: When putting a thread to wait, specify a function to execute when it is awoken. · 8432749d
      Subv authored
      This change makes for a clearer (less confusing) path of execution in the scheduler, now the code to execute when a thread awakes is closer to the code that puts the thread to sleep (WaitSynch1, WaitSynchN). It also allows us to implement the special wake up behavior of ReplyAndReceive without hacking up WaitObject::WakeupAllWaitingThreads.
      
      If savestates are desired in the future, we can change this implementation to one similar to the CoreTiming event system, where we first register the callback functions at startup and assign their identifiers to the Thread callback variable instead of directly assigning a lambda to the wake up callback variable.
      8432749d
  24. Sep 26, 2017
  25. May 29, 2017
  26. May 25, 2017
  27. Feb 27, 2017
  28. Jan 06, 2017
Loading