/* * Copyright (c) 2023 O.S.Systems * * SPDX-License-Identifier: Apache-2.0 */ #ifndef __UPDATEHUB_STORAGE_H__ #define __UPDATEHUB_STORAGE_H__ #ifdef __cplusplus extern "C" { #endif #include #include #define UPDATEHUB_SLOT_PARTITION_0 FIXED_PARTITION_ID(slot0_partition) #define UPDATEHUB_SLOT_PARTITION_1 FIXED_PARTITION_ID(slot1_partition) struct updatehub_storage_context { struct flash_img_context flash_ctx; }; int updatehub_storage_is_partition_good(struct updatehub_storage_context *ctx); int updatehub_storage_init(struct updatehub_storage_context *ctx, const uint32_t partition_id); int updatehub_storage_write(struct updatehub_storage_context *ctx, const uint8_t *data, const size_t size, const bool flush); int updatehub_storage_check(struct updatehub_storage_context *ctx, const uint32_t partition_id, const uint8_t *hash, const size_t size); int updatehub_storage_mark_partition_to_upgrade(struct updatehub_storage_context *ctx, const uint32_t partition_id); int updatehub_storage_mark_partition_as_confirmed(const uint32_t partition_id); #ifdef __cplusplus } #endif #endif /* __UPDATEHUB_STORAGE_H__ */