1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __nosy_user_h 3*4882a593Smuzhiyun #define __nosy_user_h 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <linux/ioctl.h> 6*4882a593Smuzhiyun #include <linux/types.h> 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #define NOSY_IOC_GET_STATS _IOR('&', 0, struct nosy_stats) 9*4882a593Smuzhiyun #define NOSY_IOC_START _IO('&', 1) 10*4882a593Smuzhiyun #define NOSY_IOC_STOP _IO('&', 2) 11*4882a593Smuzhiyun #define NOSY_IOC_FILTER _IOW('&', 2, __u32) 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun struct nosy_stats { 14*4882a593Smuzhiyun __u32 total_packet_count; 15*4882a593Smuzhiyun __u32 lost_packet_count; 16*4882a593Smuzhiyun }; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun /* 19*4882a593Smuzhiyun * Format of packets returned from the kernel driver: 20*4882a593Smuzhiyun * 21*4882a593Smuzhiyun * quadlet with timestamp (microseconds, CPU endian) 22*4882a593Smuzhiyun * quadlet-padded packet data... (little endian) 23*4882a593Smuzhiyun * quadlet with ack (little endian) 24*4882a593Smuzhiyun */ 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun #endif /* __nosy_user_h */ 27