1 /*
2  * Copyright (c) 2024 Silicon Laboratories Inc.
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 #ifndef SIWX91X_WIFI_H
6 #define SIWX91X_WIFI_H
7 
8 #include <zephyr/net/net_context.h>
9 #include <zephyr/net/wifi_mgmt.h>
10 #include <zephyr/net/wifi.h>
11 #include <zephyr/kernel.h>
12 
13 #include "sl_ieee802_types.h"
14 #include "sl_si91x_types.h"
15 #include "sl_si91x_protocol_types.h"
16 
17 struct siwx91x_dev {
18 	struct net_if *iface;
19 	sl_mac_address_t macaddr;
20 	enum wifi_iface_state state;
21 	enum wifi_iface_state scan_prev_state;
22 	scan_result_cb_t scan_res_cb;
23 	uint16_t scan_max_bss_cnt;
24 
25 #ifdef CONFIG_WIFI_SILABS_SIWX91X_NET_STACK_OFFLOAD
26 	struct k_event fds_recv_event;
27 	sl_si91x_fd_set fds_watch;
28 	struct {
29 		net_context_recv_cb_t cb;
30 		void *user_data;
31 		struct net_context *context;
32 	} fds_cb[NUMBER_OF_SOCKETS];
33 #endif
34 };
35 
36 #endif
37