blob: e3a6e6b570d7a001a9fd5ce53c67f8be5e0afe73 [file] [log] [blame]
/*
* Copyright (c) 2023 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file
* @brief Public API for boot mode interface
*/
#ifndef ZEPHYR_INCLUDE_RETENTION_BLINFO_
#define ZEPHYR_INCLUDE_RETENTION_BLINFO_
#include <stdint.h>
#include <stddef.h>
#include <zephyr/kernel.h>
#if defined(CONFIG_RETENTION_BOOTLOADER_INFO_TYPE_MCUBOOT)
#include <bootutil/boot_status.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Bootloader info interface
* @defgroup bootloader_info_interface Bootloader info interface
* @since 3.5
* @version 0.1.0
* @ingroup retention_api
* @{
*/
#if IS_ENABLED(CONFIG_RETENTION_BOOTLOADER_INFO_OUTPUT_FUNCTION) || defined(__DOXYGEN__)
/**
* @brief Returns bootinfo information.
*
* @param key The information to return (for MCUboot: minor TLV).
* @param val Where the return information will be placed.
* @param val_len_max The maximum size of the provided buffer.
*
* @retval 0 If successful.
* @retval -EOVERFLOW If the data is too large to fit the supplied buffer.
* @retval -EIO If the requested key was not found.
* @retval -errno Error code.
*/
int blinfo_lookup(uint16_t key, char *val, int val_len_max);
#endif
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* ZEPHYR_INCLUDE_RETENTION_BLINFO_ */