driver.h 889 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef __DRIVER_H__
  2. #define __DRIVER_H__
  3. #include <rtthread.h>
  4. enum uclass_type
  5. {
  6. rt_usb_Class_MassStor = 0,
  7. rt_usb_Class_Hid,
  8. rt_usb_Class_Hub,
  9. };
  10. struct uclass_driver
  11. {
  12. rt_list_t list;
  13. int class_code;
  14. int subclass_code;
  15. rt_err_t (*run)(void* arg);
  16. rt_err_t (*stop)(void* arg);
  17. void* user_data;
  18. };
  19. typedef struct uclass_driver* ucd_t;
  20. struct uprotocal
  21. {
  22. rt_list_t list;
  23. int pro_id;
  24. rt_err_t (*init)(void* arg);
  25. rt_err_t (*callback)(void* arg);
  26. };
  27. typedef struct uprotocal* uprotocal_t;
  28. rt_err_t rt_usb_class_driver_init(void);
  29. rt_err_t rt_usb_class_driver_register(ucd_t drv);
  30. rt_err_t rt_usb_class_driver_unregister(ucd_t drv);
  31. rt_err_t rt_usb_class_driver_run(ucd_t drv, void* args);
  32. rt_err_t rt_usb_class_driver_stop(ucd_t drv, void* args);
  33. ucd_t rt_usb_class_driver_find(int class_code, int subclass_code);
  34. #endif