blob: 6cbc447d55ea63d85c15c4ebed106f53d5297501 [file] [log] [blame]
Marton Hunyady000dfa22018-02-21 14:30:35 +01001//
2// Copyright (C) 2018 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17#ifndef UPDATE_ENGINE_UPDATE_MANAGER_ROLLBACK_PREFS_H_
18#define UPDATE_ENGINE_UPDATE_MANAGER_ROLLBACK_PREFS_H_
19
20namespace chromeos_update_manager {
21
Zentaro Kavanagh1f899d52018-02-27 15:02:47 -080022// Value used to represent that kernel key versions can always roll-forward.
23// This is the maximum value of a kernel key version.
24constexpr int kRollforwardInfinity = 0xfffffffe;
25
Marton Hunyady000dfa22018-02-21 14:30:35 +010026// Whether the device should roll back to the target version, and if yes, which
27// type of rollback should it do. Matches chrome_device_policy.proto's
28// AutoUpdateSettingsProto::RollbackToTargetVersion.
29enum class RollbackToTargetVersion {
30 kUnspecified = 0,
31 kDisabled = 1,
Marton Hunyadyd4bc4622018-08-30 15:52:23 +020032 kRollbackAndPowerwash = 2,
Marton Hunyady31aefb92018-08-29 16:17:03 +020033 kRollbackAndRestoreIfPossible = 3,
Marton Hunyady000dfa22018-02-21 14:30:35 +010034 // This value must be the last entry.
Aya ElAttard84c4282019-05-20 15:23:00 +020035 kMaxValue = 4
Marton Hunyady000dfa22018-02-21 14:30:35 +010036};
37
Miriam Polzerf197cdb2020-08-27 08:18:29 +020038// Whether the device should do rollback and powerwash on channel downgrade.
39// Matches chrome_device_policy.proto's
40// |AutoUpdateSettingsProto::ChannelDowngradeBehavior|.
41enum class ChannelDowngradeBehavior {
42 kUnspecified = 0,
43 kWaitForVersionToCatchUp = 1,
44 kRollback = 2,
45 kAllowUserToConfigure = 3,
46 // These values must be kept up to date.
47 kFirstValue = kUnspecified,
48 kLastValue = kAllowUserToConfigure
49};
50
Marton Hunyady000dfa22018-02-21 14:30:35 +010051} // namespace chromeos_update_manager
52
53#endif // UPDATE_ENGINE_UPDATE_MANAGER_ROLLBACK_PREFS_H_