Commit b26fc487 authored by Dominik Ermel's avatar Dominik Ermel Committed by David Brown
Browse files

boot/boot_serial: Add boot_reset_request_hook to bs_reset



When hooks are enabled then boot_reset_request_hook will be
called to check whether it is allowed to reset a device.

Signed-off-by: default avatarDominik Ermel <dominik.ermel@nordicsemi.no>
parent ad35e2b2
Loading
Loading
Loading
Loading
+20 −8
Original line number Diff line number Diff line
@@ -657,8 +657,19 @@ out:
static void
bs_reset(char *buf, int len)
{
    bs_rc_rsp(0);
    int rc = BOOT_HOOK_CALL(boot_reset_request_hook, 0, false);
    if (rc == BOOT_RESET_REQUEST_HOOK_BUSY) {
	rc = MGMT_ERR_EBUSY;
    } else {
        /* Currently whatever else is returned it is just converted
         * to 0/no error. Boot serial starts accepting "force" parameter
         * in command this needs to change.
         */
         rc = 0;
    }
    bs_rc_rsp(rc);

    if (rc == 0) {
#ifdef __ZEPHYR__
#ifdef CONFIG_MULTITHREADING
        k_sleep(K_MSEC(250));
@@ -674,6 +685,7 @@ bs_reset(char *buf, int len)
        hal_system_reset();
#endif
    }
}

/*
 * Parse incoming line of input from console.
+1 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ extern "C" {
#define MGMT_ERR_ENOMEM         2
#define MGMT_ERR_EINVAL         3
#define MGMT_ERR_ENOTSUP        8
#define MGMT_ERR_EBUSY		10

#define NMGR_OP_READ            0
#define NMGR_OP_WRITE           2