| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chromecast/system/reboot/reboot_util.h" |
| |
| #include "base/logging.h" |
| #include "chromecast/public/reboot_shlib.h" |
| |
| // This is a partial implementation of the reboot_util.h interface. |
| // The remaining methods are defined in other reboot_util_*.cc depending |
| // on which platform/product they are for. |
| |
| namespace chromecast { |
| |
| // static |
| bool RebootUtil::IsRebootSupported() { |
| return RebootShlib::IsSupported(); |
| } |
| |
| // static |
| bool RebootUtil::IsValidRebootSource(RebootShlib::RebootSource reboot_source) { |
| switch (reboot_source) { |
| case RebootShlib::RebootSource::UNKNOWN: |
| case RebootShlib::RebootSource::FORCED: |
| case RebootShlib::RebootSource::API: |
| case RebootShlib::RebootSource::NIGHTLY: |
| case RebootShlib::RebootSource::OTA: |
| case RebootShlib::RebootSource::WATCHDOG: |
| case RebootShlib::RebootSource::PROCESS_MANAGER: |
| case RebootShlib::RebootSource::CRASH_UPLOADER: |
| case RebootShlib::RebootSource::FDR: |
| return true; |
| default: |
| return false; |
| } |
| } |
| |
| // static |
| bool RebootUtil::IsRebootSourceSupported( |
| RebootShlib::RebootSource reboot_source) { |
| return RebootShlib::IsSupported() && |
| RebootShlib::IsRebootSourceSupported(reboot_source); |
| } |
| |
| // static |
| bool RebootUtil::RebootNow(RebootShlib::RebootSource reboot_source) { |
| DCHECK(IsRebootSourceSupported(reboot_source)); |
| SetLastRebootSource(reboot_source); |
| return RebootShlib::RebootNow(reboot_source); |
| } |
| |
| // static |
| bool RebootUtil::IsFdrForNextRebootSupported() { |
| return RebootShlib::IsSupported() && |
| RebootShlib::IsFdrForNextRebootSupported(); |
| } |
| |
| // static |
| void RebootUtil::SetFdrForNextReboot() { |
| DCHECK(IsFdrForNextRebootSupported()); |
| RebootShlib::SetFdrForNextReboot(); |
| } |
| |
| // static |
| bool RebootUtil::IsOtaForNextRebootSupported() { |
| return RebootShlib::IsSupported() && |
| RebootShlib::IsOtaForNextRebootSupported(); |
| } |
| |
| // static |
| void RebootUtil::SetOtaForNextReboot() { |
| DCHECK(IsOtaForNextRebootSupported()); |
| RebootShlib::SetOtaForNextReboot(); |
| } |
| |
| } // namespace chromecast |