Jason Chiu 3303171462 gs-common: move bootctrl hal aidl implementation to gs-common
copy from device/google/zuma/interfaces/boot
  $ git log --oneline -1 interfaces/boot/
    193e5e8 zuma:interfaces:boot: add aidl interface support

Bug: 265063384
Change-Id: I9b8318eee17e51f40577d7f4c6514703483b8eaa
Signed-off-by: Jason Chiu <jasoncschiu@google.com>
2023-12-05 00:46:22 +08:00

61 lines
2.2 KiB
C++

/*
* Copyright (C) 2023 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 <aidl/android/hardware/boot/BnBootControl.h>
#include <libboot_control/libboot_control.h>
namespace aidl::android::hardware::boot {
class BootControl final : public BnBootControl {
public:
BootControl();
::ndk::ScopedAStatus getActiveBootSlot(int32_t* _aidl_return) override;
::ndk::ScopedAStatus getCurrentSlot(int32_t* _aidl_return) override;
::ndk::ScopedAStatus getNumberSlots(int32_t* _aidl_return) override;
::ndk::ScopedAStatus getSnapshotMergeStatus(
::aidl::android::hardware::boot::MergeStatus* _aidl_return) override;
::ndk::ScopedAStatus getSuffix(int32_t in_slot, std::string* _aidl_return) override;
::ndk::ScopedAStatus isSlotBootable(int32_t in_slot, bool* _aidl_return) override;
::ndk::ScopedAStatus isSlotMarkedSuccessful(int32_t in_slot, bool* _aidl_return) override;
::ndk::ScopedAStatus markBootSuccessful() override;
::ndk::ScopedAStatus setActiveBootSlot(int32_t in_slot) override;
::ndk::ScopedAStatus setSlotAsUnbootable(int32_t in_slot) override;
::ndk::ScopedAStatus setSnapshotMergeStatus(
::aidl::android::hardware::boot::MergeStatus in_status) override;
};
enum otpmgr_command : uint32_t {
OTP_REQ_SHIFT = 1,
OTP_RESP_BIT = 1,
OTP_CMD_write_antirbk_non_secure_ap = (7 << OTP_REQ_SHIFT),
OTP_CMD_write_antirbk_secure_ap = (8 << OTP_REQ_SHIFT),
};
struct otp_mgr_req_base {
uint32_t command;
uint32_t resp_payload_size;
uint8_t handle;
}__packed;
struct otp_mgr_rsp_base {
uint32_t command;
uint32_t resp_payload_size;
int result;
}__packed;
} // namespace aidl::android::hardware::boot