xref: /nrf52832-nimble/rt-thread/components/drivers/wlan/wlan_prot.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero /*
2*10465441SEvalZero  * Copyright (c) 2006-2018, RT-Thread Development Team
3*10465441SEvalZero  *
4*10465441SEvalZero  * SPDX-License-Identifier: Apache-2.0
5*10465441SEvalZero  *
6*10465441SEvalZero  * Change Logs:
7*10465441SEvalZero  * Date           Author       Notes
8*10465441SEvalZero  * 2018-08-14     tyx          the first version
9*10465441SEvalZero  */
10*10465441SEvalZero 
11*10465441SEvalZero #ifndef __WLAN_PROT_H__
12*10465441SEvalZero #define __WLAN_PROT_H__
13*10465441SEvalZero 
14*10465441SEvalZero #ifdef __cplusplus
15*10465441SEvalZero extern "C" {
16*10465441SEvalZero #endif
17*10465441SEvalZero 
18*10465441SEvalZero #ifndef RT_WLAN_PROT_NAME_LEN
19*10465441SEvalZero #define RT_WLAN_PROT_NAME_LEN  (8)
20*10465441SEvalZero #endif
21*10465441SEvalZero 
22*10465441SEvalZero #ifndef RT_WLAN_PROT_MAX
23*10465441SEvalZero #define RT_WLAN_PROT_MAX       (1)
24*10465441SEvalZero #endif
25*10465441SEvalZero 
26*10465441SEvalZero #define RT_LWAN_ID_PREFIX      (0x5054)
27*10465441SEvalZero 
28*10465441SEvalZero #define RT_WLAN_PROT_LWIP  ("lwip")
29*10465441SEvalZero 
30*10465441SEvalZero typedef enum
31*10465441SEvalZero {
32*10465441SEvalZero     RT_WLAN_PROT_EVT_INIT_DONE = 0,
33*10465441SEvalZero     RT_WLAN_PROT_EVT_CONNECT,
34*10465441SEvalZero     RT_WLAN_PROT_EVT_DISCONNECT,
35*10465441SEvalZero     RT_WLAN_PROT_EVT_AP_START,
36*10465441SEvalZero     RT_WLAN_PROT_EVT_AP_STOP,
37*10465441SEvalZero     RT_WLAN_PROT_EVT_AP_ASSOCIATED,
38*10465441SEvalZero     RT_WLAN_PROT_EVT_AP_DISASSOCIATED,
39*10465441SEvalZero     RT_WLAN_PROT_EVT_MAX,
40*10465441SEvalZero } rt_wlan_prot_event_t;
41*10465441SEvalZero 
42*10465441SEvalZero struct rt_wlan_prot;
43*10465441SEvalZero struct rt_wlan_prot_ops
44*10465441SEvalZero {
45*10465441SEvalZero     rt_err_t (*prot_recv)(struct rt_wlan_device *wlan, void *buff, int len);
46*10465441SEvalZero     struct rt_wlan_prot *(*dev_reg_callback)(struct rt_wlan_prot *prot, struct rt_wlan_device *wlan);
47*10465441SEvalZero     void (*dev_unreg_callback)(struct rt_wlan_prot *prot, struct rt_wlan_device *wlan);
48*10465441SEvalZero };
49*10465441SEvalZero 
50*10465441SEvalZero struct rt_wlan_prot
51*10465441SEvalZero {
52*10465441SEvalZero     char name[RT_WLAN_PROT_NAME_LEN];
53*10465441SEvalZero     rt_uint32_t id;
54*10465441SEvalZero     const struct rt_wlan_prot_ops *ops;
55*10465441SEvalZero };
56*10465441SEvalZero 
57*10465441SEvalZero typedef void (*rt_wlan_prot_event_handler)(struct rt_wlan_prot *port, struct rt_wlan_device *wlan, int event);
58*10465441SEvalZero 
59*10465441SEvalZero rt_err_t rt_wlan_prot_attach(const char *dev_name, const char *prot_name);
60*10465441SEvalZero 
61*10465441SEvalZero rt_err_t rt_wlan_prot_attach_dev(struct rt_wlan_device *wlan, const char *prot_name);
62*10465441SEvalZero 
63*10465441SEvalZero rt_err_t rt_wlan_prot_detach(const char *dev_name);
64*10465441SEvalZero 
65*10465441SEvalZero rt_err_t rt_wlan_prot_detach_dev(struct rt_wlan_device *wlan);
66*10465441SEvalZero 
67*10465441SEvalZero rt_err_t rt_wlan_prot_regisetr(struct rt_wlan_prot *prot);
68*10465441SEvalZero 
69*10465441SEvalZero rt_err_t rt_wlan_prot_transfer_dev(struct rt_wlan_device *wlan, void *buff, int len);
70*10465441SEvalZero 
71*10465441SEvalZero rt_err_t rt_wlan_dev_transfer_prot(struct rt_wlan_device *wlan, void *buff, int len);
72*10465441SEvalZero 
73*10465441SEvalZero rt_err_t rt_wlan_prot_event_register(struct rt_wlan_prot *prot, rt_wlan_prot_event_t event, rt_wlan_prot_event_handler handler);
74*10465441SEvalZero 
75*10465441SEvalZero rt_err_t rt_wlan_prot_event_unregister(struct rt_wlan_prot *prot, rt_wlan_prot_event_t event);
76*10465441SEvalZero 
77*10465441SEvalZero int rt_wlan_prot_ready(struct rt_wlan_device *wlan, struct rt_wlan_buff *buff);
78*10465441SEvalZero 
79*10465441SEvalZero void rt_wlan_prot_dump(void);
80*10465441SEvalZero 
81*10465441SEvalZero #ifdef __cplusplus
82*10465441SEvalZero }
83*10465441SEvalZero #endif
84*10465441SEvalZero 
85*10465441SEvalZero #endif
86