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