luat_netdrv.h 1003 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #ifndef LUAT_NETDRV_H
  2. #define LUAT_NETDRV_H
  3. #include "lwip/pbuf.h"
  4. typedef void (*luat_netdrv_dataout_cb)(void* userdata, struct pbuf* pb, int flags);
  5. typedef int (*luat_netdrv_bootup_cb)(void* userdata);
  6. typedef int (*luat_netdrv_ready_cb)(void* userdata);
  7. typedef struct luat_netdrv {
  8. int32_t id;
  9. struct netif* netif;
  10. luat_netdrv_dataout_cb dataout;
  11. luat_netdrv_bootup_cb boot;
  12. luat_netdrv_ready_cb ready;
  13. void* userdata;
  14. }luat_netdrv_t;
  15. enum {
  16. LUAT_NETDRV_TP_NATIVE,
  17. LUAT_NETDRV_TP_CH390H,
  18. LUAT_NETDRV_TP_W5100,
  19. LUAT_NETDRV_TP_W5500,
  20. LUAT_NETDRV_TP_SPINET,
  21. LUAT_NETDRV_TP_UARTNET,
  22. LUAT_NETDRV_TP_USB
  23. };
  24. typedef struct luat_netdrv_conf
  25. {
  26. int32_t id;
  27. int32_t impl;
  28. int32_t tp;
  29. int32_t flags;
  30. }luat_netdrv_conf_t;
  31. luat_netdrv_t* luat_netdrv_setup(luat_netdrv_conf_t *conf);
  32. int luat_netdrv_dhcp(int32_t id, int32_t enable);
  33. int luat_netdrv_ready(int32_t id);
  34. int luat_netdrv_register(int32_t id, luat_netdrv_t* drv);
  35. #endif