From e18d4a2d065fbf99191879fcac134475e991fbed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Sun, 5 Apr 2009 19:04:25 +0000 Subject: [PATCH] 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 --- src/system/kernel/shutdown.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/system/kernel/shutdown.c b/src/system/kernel/shutdown.c index 8821601d44..16b8056fb6 100644 --- a/src/system/kernel/shutdown.c +++ b/src/system/kernel/shutdown.c @@ -1,4 +1,5 @@ /* + * 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. */ @@ -11,8 +12,20 @@ status_t system_shutdown(bool reboot) { - // ToDo: shutdown all system services! - + 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);