wlan_prot.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2018-08-14 tyx the first version
  9. */
  10. #ifndef __WLAN_PROT_H__
  11. #define __WLAN_PROT_H__
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. #ifndef RT_WLAN_PROT_NAME_LEN
  16. #define RT_WLAN_PROT_NAME_LEN (8)
  17. #endif
  18. #ifndef RT_WLAN_PROT_MAX
  19. #define RT_WLAN_PROT_MAX (1)
  20. #endif
  21. #define RT_LWAN_ID_PREFIX (0x5054)
  22. typedef enum
  23. {
  24. RT_WLAN_PROT_EVT_INIT_DONE = 0,
  25. RT_WLAN_PROT_EVT_CONNECT,
  26. RT_WLAN_PROT_EVT_DISCONNECT,
  27. RT_WLAN_PROT_EVT_AP_START,
  28. RT_WLAN_PROT_EVT_AP_STOP,
  29. RT_WLAN_PROT_EVT_AP_ASSOCIATED,
  30. RT_WLAN_PROT_EVT_AP_DISASSOCIATED,
  31. RT_WLAN_PROT_EVT_MAX,
  32. } rt_wlan_prot_event_t;
  33. struct rt_wlan_prot;
  34. struct rt_wlan_prot_ops
  35. {
  36. rt_err_t (*prot_recv)(struct rt_wlan_device *wlan, void *buff, int len);
  37. struct rt_wlan_prot *(*dev_reg_callback)(struct rt_wlan_prot *prot, struct rt_wlan_device *wlan);
  38. void (*dev_unreg_callback)(struct rt_wlan_prot *prot, struct rt_wlan_device *wlan);
  39. };
  40. struct rt_wlan_prot
  41. {
  42. char name[RT_WLAN_PROT_NAME_LEN];
  43. rt_uint32_t id;
  44. const struct rt_wlan_prot_ops *ops;
  45. };
  46. typedef void (*rt_wlan_prot_event_handler)(struct rt_wlan_prot *port, struct rt_wlan_device *wlan, int event);
  47. rt_err_t rt_wlan_prot_attach(const char *dev_name, const char *prot_name);
  48. rt_err_t rt_wlan_prot_attach_dev(struct rt_wlan_device *wlan, const char *prot_name);
  49. rt_err_t rt_wlan_prot_detach(const char *dev_name);
  50. rt_err_t rt_wlan_prot_detach_dev(struct rt_wlan_device *wlan);
  51. rt_err_t rt_wlan_prot_regisetr(struct rt_wlan_prot *prot);
  52. rt_err_t rt_wlan_prot_transfer_dev(struct rt_wlan_device *wlan, void *buff, int len);
  53. rt_err_t rt_wlan_dev_transfer_prot(struct rt_wlan_device *wlan, void *buff, int len);
  54. 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);
  55. rt_err_t rt_wlan_prot_event_unregister(struct rt_wlan_prot *prot, rt_wlan_prot_event_t event);
  56. int rt_wlan_prot_ready(struct rt_wlan_device *wlan, struct rt_wlan_buff *buff);
  57. void rt_wlan_prot_dump(void);
  58. #ifdef __cplusplus
  59. }
  60. #endif
  61. #endif