e18d4a2d06
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
46 lines
821 B
C
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);
|
|
}
|
|
|