18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef __nosy_user_h
38c2ecf20Sopenharmony_ci#define __nosy_user_h
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#include <linux/ioctl.h>
68c2ecf20Sopenharmony_ci#include <linux/types.h>
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#define NOSY_IOC_GET_STATS _IOR('&', 0, struct nosy_stats)
98c2ecf20Sopenharmony_ci#define NOSY_IOC_START     _IO('&', 1)
108c2ecf20Sopenharmony_ci#define NOSY_IOC_STOP      _IO('&', 2)
118c2ecf20Sopenharmony_ci#define NOSY_IOC_FILTER    _IOW('&', 2, __u32)
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cistruct nosy_stats {
148c2ecf20Sopenharmony_ci	__u32 total_packet_count;
158c2ecf20Sopenharmony_ci	__u32 lost_packet_count;
168c2ecf20Sopenharmony_ci};
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci/*
198c2ecf20Sopenharmony_ci * Format of packets returned from the kernel driver:
208c2ecf20Sopenharmony_ci *
218c2ecf20Sopenharmony_ci *	quadlet with timestamp		(microseconds, CPU endian)
228c2ecf20Sopenharmony_ci *	quadlet-padded packet data...	(little endian)
238c2ecf20Sopenharmony_ci *	quadlet with ack		(little endian)
248c2ecf20Sopenharmony_ci */
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci#endif /* __nosy_user_h */
27