1 /*
2  * Copyright (c) 2023 Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef H_OS_MGMT_CLIENT_
8 #define H_OS_MGMT_CLIENT_
9 
10 #include <inttypes.h>
11 #include <zephyr/mgmt/mcumgr/smp/smp_client.h>
12 
13 /**
14  * @brief MCUmgr OS management client API
15  * @defgroup mcumgr_os_mgmt_client MCUmgr os_mgmt_client API
16  * @ingroup mcumgr
17  * @{
18  */
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 /**
25  * @brief OS mgmt client object
26  */
27 struct os_mgmt_client {
28 	/** SMP client object  */
29 	struct smp_client_object *smp_client;
30 	/** Command status */
31 	int status;
32 };
33 
34 /**
35  * @brief Initialize OS management client.
36  *
37  * @param client OS mgmt client object
38  * @param smp_client SMP client object
39  *
40  */
41 void os_mgmt_client_init(struct os_mgmt_client *client, struct smp_client_object *smp_client);
42 
43 /**
44  * @brief Send SMP message for Echo command.
45  *
46  * @param client OS mgmt client object
47  * @param echo_string Echo string
48  * @param max_len Max length of @p echo_string
49  *
50  * @return 0 on success.
51  * @return @ref mcumgr_err_t code on failure.
52  */
53 int os_mgmt_client_echo(struct os_mgmt_client *client, const char *echo_string, size_t max_len);
54 
55 /**
56  * @brief Send SMP Reset command.
57  *
58  * @param client OS mgmt client object
59  *
60  * @return 0 on success.
61  * @return @ref mcumgr_err_t code on failure.
62  */
63 int os_mgmt_client_reset(struct os_mgmt_client *client);
64 
65 /**
66  * @}
67  */
68 
69 #ifdef __cplusplus
70 }
71 #endif
72 
73 #endif /* H_OS_MGMT_CLIENT_ */
74