diff options
author | David Anderson <dvander@google.com> | 2019-09-16 17:20:03 -0700 |
---|---|---|
committer | David Anderson <dvander@google.com> | 2019-10-16 17:01:25 -0700 |
commit | b93d670bb9a892c31ee6b1751395af6cc363306c (patch) | |
tree | bbd740ce967132fca29207626bc560bf963e87cb /bootctrl/BootControlShared.h | |
parent | c4b7b9f13f9168885650e3f8fb22e73f11f5c597 (diff) |
Implement IBootControl 1.1.
Store the new state for IBootControl 1.1 in the misc partition, using
the reserved section of bootloader_message_ab. The code to read/write
this partition is from the bootloader_message library.
We don't embed libboot_control directly because the 1.0 HAL methods are
implemented using GPT, not misc. Note that the new 1.1 methods are
implemented in a shared file. This is for future implementations of the
HAL that may not rely on the legacy GPT library, but will use the same
misc storage.
Bug: 141131816
Test: vts
Change-Id: I455c202cdd6a21261a2ed1f17dec6efd2ae8116e
Diffstat (limited to 'bootctrl/BootControlShared.h')
-rw-r--r-- | bootctrl/BootControlShared.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/bootctrl/BootControlShared.h b/bootctrl/BootControlShared.h new file mode 100644 index 0000000..2f7a6a0 --- /dev/null +++ b/bootctrl/BootControlShared.h @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include <android/hardware/boot/1.1/IBootControl.h> +#include <hidl/MQDescriptor.h> +#include <hidl/Status.h> + +namespace android { +namespace hardware { +namespace boot { +namespace V1_1 { +namespace implementation { + +using ::android::hardware::Return; + +struct BootControlShared : public IBootControl { + BootControlShared(); + + Return<bool> setSnapshotMergeStatus(MergeStatus status) override; + Return<MergeStatus> getSnapshotMergeStatus() override; + + protected: + std::string misc_device_; +}; + +extern "C" IBootControl *HIDL_FETCH_IBootControl(const char *name); + +} // namespace implementation +} // namespace V1_1 +} // namespace boot +} // namespace hardware +} // namespace android |