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