devfs-types.h 844 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include <filesystem/VFS/VFS.h>
  3. /**
  4. * @brief devfs_private_file_info_t的type字段值
  5. *
  6. */
  7. enum
  8. {
  9. DEV_TYPE_UNDEF = 0,
  10. DEV_TYPE_CHAR = 1,
  11. DEV_TYPE_USB,
  12. DEV_TYPE_BLOCK,
  13. DEV_TYPE_NET,
  14. DEV_TYPE_BUS,
  15. };
  16. /**
  17. * @brief 字符设备的sub_type字段值
  18. *
  19. */
  20. enum
  21. {
  22. CHAR_DEV_STYPE_START = 0,
  23. CHAR_DEV_STYPE_PS2_KEYBOARD = 1,
  24. CHAR_DEV_STYPE_USB_KEYBOARD,
  25. CHAR_DEV_STYPE_PS2_MOUSE,
  26. CHAR_DEV_STYPE_USB_MOUSE,
  27. CHAR_DEV_STYPE_BLUETOOTH_MOUSE,
  28. CHAR_DEV_STYPE_BLUETOOTH_KEYBOARD,
  29. CHAR_DEV_STYPE_TTY,
  30. CHAR_DEV_STYPE_END, // 结束标志
  31. };
  32. /**
  33. * @brief 设备文件私有信息结构体
  34. *
  35. */
  36. struct devfs_private_inode_info_t
  37. {
  38. uint16_t type; // 设备主类型
  39. uint16_t sub_type; // 设备子类型
  40. struct vfs_file_operations_t *f_ops;
  41. uint64_t uuid;
  42. };