1 /*
2  * Copyright (c) 2023 Nordic Semiconductor ASA
3  *
4  * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5  */
6 
7 #ifndef __WPA_CLI_ZEPHYR_H_
8 #define __WPA_CLI_ZEPHYR_H_
9 
10 #include <zephyr/kernel.h>
11 
12 #define SSID_MAX_LEN 32
13 
14 /* Public data structures - no serialization done, so, non-nested only */
15 struct add_network_resp {
16 	int network_id;
17 };
18 
19 struct signal_poll_resp {
20 	int rssi;
21 	int current_txrate;
22 };
23 
24 struct status_resp {
25 	char ssid_len;
26 	char ssid[SSID_MAX_LEN + 1];
27 };
28 
29 /* Public APIs */
30 int zephyr_wpa_ctrl_init(void *wpa_s);
31 void zephyr_wpa_ctrl_deinit(void *wpa_s);
32 int zephyr_wpa_ctrl_zephyr_cmd(int argc, const char *argv[]);
33 int zephyr_wpa_cli_cmd_v(const char *fmt, ...);
34 int zephyr_wpa_cli_cmd_resp(const char *cmd, char *resp);
35 
36 int z_wpa_ctrl_add_network(struct add_network_resp *resp);
37 int z_wpa_ctrl_signal_poll(struct signal_poll_resp *resp);
38 int z_wpa_ctrl_status(struct status_resp *resp);
39 
40 /* Global control interface */
41 int zephyr_global_wpa_ctrl_init(void);
42 void zephyr_global_wpa_ctrl_deinit(void);
43 int zephyr_wpa_global_ctrl_zephyr_cmd(int argc, const char *argv[]);
44 int zephyr_wpa_cli_global_cmd_v(const char *fmt, ...);
45 
46 #endif /* __WPA_CLI_ZEPHYR_H_ */
47