1*5a923131SAndroid Build Coastguard Worker //
2*5a923131SAndroid Build Coastguard Worker // Copyright (C) 2015 The Android Open Source Project
3*5a923131SAndroid Build Coastguard Worker //
4*5a923131SAndroid Build Coastguard Worker // Licensed under the Apache License, Version 2.0 (the "License");
5*5a923131SAndroid Build Coastguard Worker // you may not use this file except in compliance with the License.
6*5a923131SAndroid Build Coastguard Worker // You may obtain a copy of the License at
7*5a923131SAndroid Build Coastguard Worker //
8*5a923131SAndroid Build Coastguard Worker // http://www.apache.org/licenses/LICENSE-2.0
9*5a923131SAndroid Build Coastguard Worker //
10*5a923131SAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software
11*5a923131SAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS,
12*5a923131SAndroid Build Coastguard Worker // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*5a923131SAndroid Build Coastguard Worker // See the License for the specific language governing permissions and
14*5a923131SAndroid Build Coastguard Worker // limitations under the License.
15*5a923131SAndroid Build Coastguard Worker //
16*5a923131SAndroid Build Coastguard Worker
17*5a923131SAndroid Build Coastguard Worker #include "update_engine/common/boot_control_stub.h"
18*5a923131SAndroid Build Coastguard Worker #include "update_engine/common/dynamic_partition_control_stub.h"
19*5a923131SAndroid Build Coastguard Worker
20*5a923131SAndroid Build Coastguard Worker #include <base/logging.h>
21*5a923131SAndroid Build Coastguard Worker
22*5a923131SAndroid Build Coastguard Worker using std::string;
23*5a923131SAndroid Build Coastguard Worker
24*5a923131SAndroid Build Coastguard Worker namespace chromeos_update_engine {
25*5a923131SAndroid Build Coastguard Worker
BootControlStub()26*5a923131SAndroid Build Coastguard Worker BootControlStub::BootControlStub()
27*5a923131SAndroid Build Coastguard Worker : dynamic_partition_control_(new DynamicPartitionControlStub()) {}
28*5a923131SAndroid Build Coastguard Worker
GetNumSlots() const29*5a923131SAndroid Build Coastguard Worker unsigned int BootControlStub::GetNumSlots() const {
30*5a923131SAndroid Build Coastguard Worker return 0;
31*5a923131SAndroid Build Coastguard Worker }
32*5a923131SAndroid Build Coastguard Worker
GetCurrentSlot() const33*5a923131SAndroid Build Coastguard Worker BootControlInterface::Slot BootControlStub::GetCurrentSlot() const {
34*5a923131SAndroid Build Coastguard Worker LOG(ERROR) << __FUNCTION__ << " should never be called.";
35*5a923131SAndroid Build Coastguard Worker return 0;
36*5a923131SAndroid Build Coastguard Worker }
37*5a923131SAndroid Build Coastguard Worker
GetPartitionDevice(const std::string & partition_name,BootControlInterface::Slot slot,bool not_in_payload,std::string * device,bool * is_dynamic) const38*5a923131SAndroid Build Coastguard Worker bool BootControlStub::GetPartitionDevice(const std::string& partition_name,
39*5a923131SAndroid Build Coastguard Worker BootControlInterface::Slot slot,
40*5a923131SAndroid Build Coastguard Worker bool not_in_payload,
41*5a923131SAndroid Build Coastguard Worker std::string* device,
42*5a923131SAndroid Build Coastguard Worker bool* is_dynamic) const {
43*5a923131SAndroid Build Coastguard Worker LOG(ERROR) << __FUNCTION__ << " should never be called.";
44*5a923131SAndroid Build Coastguard Worker return false;
45*5a923131SAndroid Build Coastguard Worker }
46*5a923131SAndroid Build Coastguard Worker
GetPartitionDevice(const std::string & partition_name,uint32_t slot,uint32_t current_slot,bool not_in_payload) const47*5a923131SAndroid Build Coastguard Worker std::optional<PartitionDevice> BootControlStub::GetPartitionDevice(
48*5a923131SAndroid Build Coastguard Worker const std::string& partition_name,
49*5a923131SAndroid Build Coastguard Worker uint32_t slot,
50*5a923131SAndroid Build Coastguard Worker uint32_t current_slot,
51*5a923131SAndroid Build Coastguard Worker bool not_in_payload) const {
52*5a923131SAndroid Build Coastguard Worker LOG(ERROR) << __FUNCTION__ << " should never be called.";
53*5a923131SAndroid Build Coastguard Worker return {};
54*5a923131SAndroid Build Coastguard Worker }
55*5a923131SAndroid Build Coastguard Worker
GetPartitionDevice(const string & partition_name,Slot slot,string * device) const56*5a923131SAndroid Build Coastguard Worker bool BootControlStub::GetPartitionDevice(const string& partition_name,
57*5a923131SAndroid Build Coastguard Worker Slot slot,
58*5a923131SAndroid Build Coastguard Worker string* device) const {
59*5a923131SAndroid Build Coastguard Worker LOG(ERROR) << __FUNCTION__ << " should never be called.";
60*5a923131SAndroid Build Coastguard Worker return false;
61*5a923131SAndroid Build Coastguard Worker }
62*5a923131SAndroid Build Coastguard Worker
IsSlotBootable(Slot slot) const63*5a923131SAndroid Build Coastguard Worker bool BootControlStub::IsSlotBootable(Slot slot) const {
64*5a923131SAndroid Build Coastguard Worker LOG(ERROR) << __FUNCTION__ << " should never be called.";
65*5a923131SAndroid Build Coastguard Worker return false;
66*5a923131SAndroid Build Coastguard Worker }
67*5a923131SAndroid Build Coastguard Worker
MarkSlotUnbootable(Slot slot)68*5a923131SAndroid Build Coastguard Worker bool BootControlStub::MarkSlotUnbootable(Slot slot) {
69*5a923131SAndroid Build Coastguard Worker LOG(ERROR) << __FUNCTION__ << " should never be called.";
70*5a923131SAndroid Build Coastguard Worker return false;
71*5a923131SAndroid Build Coastguard Worker }
72*5a923131SAndroid Build Coastguard Worker
SetActiveBootSlot(Slot slot)73*5a923131SAndroid Build Coastguard Worker bool BootControlStub::SetActiveBootSlot(Slot slot) {
74*5a923131SAndroid Build Coastguard Worker LOG(ERROR) << __FUNCTION__ << " should never be called.";
75*5a923131SAndroid Build Coastguard Worker return false;
76*5a923131SAndroid Build Coastguard Worker }
77*5a923131SAndroid Build Coastguard Worker
MarkBootSuccessfulAsync(base::Callback<void (bool)> callback)78*5a923131SAndroid Build Coastguard Worker bool BootControlStub::MarkBootSuccessfulAsync(
79*5a923131SAndroid Build Coastguard Worker base::Callback<void(bool)> callback) {
80*5a923131SAndroid Build Coastguard Worker // This is expected to be called on update_engine startup.
81*5a923131SAndroid Build Coastguard Worker return false;
82*5a923131SAndroid Build Coastguard Worker }
83*5a923131SAndroid Build Coastguard Worker
IsSlotMarkedSuccessful(Slot slot) const84*5a923131SAndroid Build Coastguard Worker bool BootControlStub::IsSlotMarkedSuccessful(Slot slot) const {
85*5a923131SAndroid Build Coastguard Worker LOG(ERROR) << __FUNCTION__ << " should never be called.";
86*5a923131SAndroid Build Coastguard Worker return false;
87*5a923131SAndroid Build Coastguard Worker }
88*5a923131SAndroid Build Coastguard Worker
89*5a923131SAndroid Build Coastguard Worker DynamicPartitionControlInterface*
GetDynamicPartitionControl()90*5a923131SAndroid Build Coastguard Worker BootControlStub::GetDynamicPartitionControl() {
91*5a923131SAndroid Build Coastguard Worker return dynamic_partition_control_.get();
92*5a923131SAndroid Build Coastguard Worker }
93*5a923131SAndroid Build Coastguard Worker
94*5a923131SAndroid Build Coastguard Worker } // namespace chromeos_update_engine
95