kernel.cpp 963 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Copyright 2014 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #include "core/hle/kernel/handle_table.h"
  5. #include "core/hle/kernel/kernel.h"
  6. #include "core/hle/kernel/process.h"
  7. #include "core/hle/kernel/resource_limit.h"
  8. #include "core/hle/kernel/thread.h"
  9. #include "core/hle/kernel/timer.h"
  10. namespace Kernel {
  11. unsigned int Object::next_object_id;
  12. /// Initialize the kernel
  13. void Init() {
  14. Kernel::ResourceLimitsInit();
  15. Kernel::ThreadingInit();
  16. Kernel::TimersInit();
  17. Object::next_object_id = 0;
  18. // TODO(Subv): Start the process ids from 10 for now, as lower PIDs are
  19. // reserved for low-level services
  20. Process::next_process_id = 10;
  21. }
  22. /// Shutdown the kernel
  23. void Shutdown() {
  24. // Free all kernel objects
  25. g_handle_table.Clear();
  26. Kernel::ThreadingShutdown();
  27. Kernel::TimersShutdown();
  28. Kernel::ResourceLimitsShutdown();
  29. }
  30. } // namespace Kernel