unix_diag.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2. #ifndef __UNIX_DIAG_H__
  3. #define __UNIX_DIAG_H__
  4. #include <linux/types.h>
  5. struct unix_diag_req {
  6. __u8 sdiag_family;
  7. __u8 sdiag_protocol;
  8. __u16 pad;
  9. __u32 udiag_states;
  10. __u32 udiag_ino;
  11. __u32 udiag_show;
  12. __u32 udiag_cookie[2];
  13. };
  14. #define UDIAG_SHOW_NAME 0x00000001 /* show name (not path) */
  15. #define UDIAG_SHOW_VFS 0x00000002 /* show VFS inode info */
  16. #define UDIAG_SHOW_PEER 0x00000004 /* show peer socket info */
  17. #define UDIAG_SHOW_ICONS 0x00000008 /* show pending connections */
  18. #define UDIAG_SHOW_RQLEN 0x00000010 /* show skb receive queue len */
  19. #define UDIAG_SHOW_MEMINFO 0x00000020 /* show memory info of a socket */
  20. #define UDIAG_SHOW_UID 0x00000040 /* show socket's UID */
  21. struct unix_diag_msg {
  22. __u8 udiag_family;
  23. __u8 udiag_type;
  24. __u8 udiag_state;
  25. __u8 pad;
  26. __u32 udiag_ino;
  27. __u32 udiag_cookie[2];
  28. };
  29. enum {
  30. /* UNIX_DIAG_NONE, standard nl API requires this attribute! */
  31. UNIX_DIAG_NAME,
  32. UNIX_DIAG_VFS,
  33. UNIX_DIAG_PEER,
  34. UNIX_DIAG_ICONS,
  35. UNIX_DIAG_RQLEN,
  36. UNIX_DIAG_MEMINFO,
  37. UNIX_DIAG_SHUTDOWN,
  38. UNIX_DIAG_UID,
  39. __UNIX_DIAG_MAX,
  40. };
  41. #define UNIX_DIAG_MAX (__UNIX_DIAG_MAX - 1)
  42. struct unix_diag_vfs {
  43. __u32 udiag_vfs_ino;
  44. __u32 udiag_vfs_dev;
  45. };
  46. struct unix_diag_rqlen {
  47. __u32 udiag_rqueue;
  48. __u32 udiag_wqueue;
  49. };
  50. #endif