/* * Copyright 2009, Olivier Coursière. All rights reserved. * Copyright 2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved. * Distributed under the terms of the MIT License. */ #include #include status_t system_shutdown(bool reboot) { int32 cookie = 0; team_info info; gKernelShutdown = true; // Now shutdown all system services! // TODO: Once we are sure we can shutdown the system on all hardware // checking reboot may not be necessary anymore. if (reboot) { while (get_next_team_info(&cookie, &info) == B_OK) { if (info.team == B_SYSTEM_TEAM) continue; kill_team(info.team); } } sync(); return arch_cpu_shutdown(reboot); } // #pragma mark - status_t _user_shutdown(bool reboot) { if (geteuid() != 0) return B_NOT_ALLOWED; return system_shutdown(reboot); }