40 lines
993 B
C
40 lines
993 B
C
/*
|
|
* Copyright (c) 2021-2023 Nordic Semiconductor ASA
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <zephyr/kernel.h>
|
|
|
|
#include "bootutil/bootutil_log.h"
|
|
#include "../boot_serial/src/boot_serial_priv.h"
|
|
#include <zcbor_encode.h>
|
|
#include <boot_serial/boot_serial_extensions.h>
|
|
|
|
BOOT_LOG_MODULE_DECLARE(mcuboot);
|
|
|
|
int bs_peruser_system_specific(const struct nmgr_hdr *hdr, const char *buffer,
|
|
int len, zcbor_state_t *cs)
|
|
{
|
|
int mgmt_rc = MGMT_ERR_ENOTSUP;
|
|
|
|
STRUCT_SECTION_FOREACH(mcuboot_bs_custom_handlers, function) {
|
|
if (function->handler) {
|
|
mgmt_rc = function->handler(hdr, buffer, len, cs);
|
|
|
|
if (mgmt_rc != MGMT_ERR_ENOTSUP) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (mgmt_rc == MGMT_ERR_ENOTSUP) {
|
|
zcbor_map_start_encode(cs, 10);
|
|
zcbor_tstr_put_lit(cs, "rc");
|
|
zcbor_uint32_put(cs, mgmt_rc);
|
|
zcbor_map_end_encode(cs, 10);
|
|
}
|
|
|
|
return MGMT_ERR_OK;
|
|
}
|