haiku/src/system/kernel/shutdown.c
Stephan Aßmus e18d4a2d06 Patch by Olivier Coursiere: When rebooting, shutdown all the system teams,
most importantly input_server, which then closes the drivers for input devices.
This in turn will do some cleanup. The touch pad driver will then be reset to
act as normal PS/2 mouse, so that OS like BeOS can use it again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29948 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-05 19:04:25 +00:00

46 lines
821 B
C

/*
* 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 <kernel.h>
#include <syscalls.h>
status_t
system_shutdown(bool reboot)
{
int32 cookie = 0;
team_info info;
// 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);
}