1 /* 2 * Copyright (c) 2024 Nordic Semiconductor ASA 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef NRFS_RESET_H 8 #define NRFS_RESET_H 9 10 #include <internal/services/nrfs_reset.h> 11 12 #ifdef __cplusplus 13 extern "C" { 14 #endif 15 16 /** @brief Reset service event types. */ 17 typedef enum __NRFS_PACKED { 18 NRFS_RESET_EVT_DONE, /** Reset done. */ 19 NRFS_RESET_EVT_REJECT, /** Request rejected. */ 20 } nrfs_reset_evt_type_t; 21 22 /** @brief Reset service event. */ 23 typedef struct { 24 nrfs_reset_evt_type_t type; /** Event type. */ 25 } nrfs_reset_evt_t; 26 27 /** @brief Reset service event handler type. */ 28 typedef void (*nrfs_reset_evt_handler_t)(nrfs_reset_evt_t const * p_evt); 29 30 /** 31 * @brief Function for initializing the RESET service. 32 * 33 * @param[in] handler Function called as a response to the request. 34 * 35 * @retval NRFS_SUCCESS Service initialized successfully. 36 * @retval NRFS_ERR_INVALID_STATE Service was already initialized. 37 */ 38 nrfs_err_t nrfs_reset_init(nrfs_reset_evt_handler_t handler); 39 40 /** 41 * @brief Function for uninitializing the RESET service. 42 * 43 * @warning Notifications from previous requests are dropped after service uninitialization. 44 */ 45 void nrfs_reset_uninit(void); 46 47 /** 48 * @brief Function for requesting a reset of all services. 49 * 50 * @retval NRFS_SUCCESS Request sent successfully. 51 * @retval NRFS_ERR_INVALID_STATE Service is uninitialized. 52 * @retval NRFS_ERR_IPC Backend returned error during request sending. 53 */ 54 nrfs_err_t nrfs_request_reset(void); 55 56 #ifdef __cplusplus 57 } 58 #endif 59 60 #endif /* NRFS_RESET_H */ 61