Golioth Firmware SDK
Loading...
Searching...
No Matches
fw_update.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022 Golioth, Inc.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6#pragma once
7
8#include <golioth/client.h>
9#include <golioth/ota.h>
10#include <stdbool.h>
11
12#define GOLIOTH_FW_UPDATE_DEFAULT_PACKAGE_NAME "main"
13
15{
17 const char *current_version;
20 const char *fw_package_name;
21};
22
28
45void golioth_fw_update_init(struct golioth_client *client, const char *current_version);
46
51void golioth_fw_update_init_with_config(struct golioth_client *client,
52 const struct golioth_fw_update_config *config);
53
60 enum golioth_ota_reason reason,
61 void *user_arg);
62
72 void *user_arg);
73
74//---------------------------------------------------------------------------
75// Backend API for firmware updates. Required to be implemented by port.
76// Not intended to be called by user code.
77//---------------------------------------------------------------------------
78
82
85
91
96
107enum golioth_status fw_update_handle_block(const uint8_t *block,
108 size_t block_size,
109 size_t offset,
110 size_t total_size);
111
125 size_t bufsize,
126 size_t offset);
127
133
143
150
155void fw_update_end(void);
156//---------------------------------------------------------------------------
157
golioth_status
enum golioth_status fw_update_validate(void)
void fw_update_rollback(void)
Initiate a firmware rollback.
void fw_update_post_download(void)
void golioth_fw_update_init_with_config(struct golioth_client *client, const struct golioth_fw_update_config *config)
void(* golioth_fw_update_state_change_callback)(enum golioth_ota_state state, enum golioth_ota_reason reason, void *user_arg)
Definition fw_update.h:59
void golioth_fw_update_register_state_change_callback(golioth_fw_update_state_change_callback callback, void *user_arg)
enum golioth_status fw_update_handle_block(const uint8_t *block, size_t block_size, size_t offset, size_t total_size)
enum golioth_status fw_update_read_current_image_at_offset(uint8_t *buf, size_t bufsize, size_t offset)
void fw_update_end(void)
void fw_update_cancel_rollback(void)
bool fw_update_is_pending_verify(void)
void fw_update_reboot(void)
void golioth_fw_update_init(struct golioth_client *client, const char *current_version)
enum golioth_status fw_update_change_boot_image(void)
golioth_ota_state
State of OTA update, reported to Golioth server.
Definition ota.h:31
golioth_ota_reason
A reason associated with state changes.
Definition ota.h:44
const char * fw_package_name
Definition fw_update.h:20
const char * current_version
The current firmware version, NULL-terminated, shallow-copied from user. (e.g. "1....
Definition fw_update.h:17