162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef __nosy_user_h 362306a36Sopenharmony_ci#define __nosy_user_h 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#include <linux/ioctl.h> 662306a36Sopenharmony_ci#include <linux/types.h> 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#define NOSY_IOC_GET_STATS _IOR('&', 0, struct nosy_stats) 962306a36Sopenharmony_ci#define NOSY_IOC_START _IO('&', 1) 1062306a36Sopenharmony_ci#define NOSY_IOC_STOP _IO('&', 2) 1162306a36Sopenharmony_ci#define NOSY_IOC_FILTER _IOW('&', 2, __u32) 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cistruct nosy_stats { 1462306a36Sopenharmony_ci __u32 total_packet_count; 1562306a36Sopenharmony_ci __u32 lost_packet_count; 1662306a36Sopenharmony_ci}; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci/* 1962306a36Sopenharmony_ci * Format of packets returned from the kernel driver: 2062306a36Sopenharmony_ci * 2162306a36Sopenharmony_ci * quadlet with timestamp (microseconds, CPU endian) 2262306a36Sopenharmony_ci * quadlet-padded packet data... (little endian) 2362306a36Sopenharmony_ci * quadlet with ack (little endian) 2462306a36Sopenharmony_ci */ 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci#endif /* __nosy_user_h */ 27