1*e5a9df51SDavid Vernet /* SPDX-License-Identifier: GPL-2.0 */
2*e5a9df51SDavid Vernet /* Copyright (c) 2022 Meta Platforms, Inc. and affiliates. */
3*e5a9df51SDavid Vernet 
4*e5a9df51SDavid Vernet #ifndef _TEST_USER_RINGBUF_H
5*e5a9df51SDavid Vernet #define _TEST_USER_RINGBUF_H
6*e5a9df51SDavid Vernet 
7*e5a9df51SDavid Vernet #define TEST_OP_64 4
8*e5a9df51SDavid Vernet #define TEST_OP_32 2
9*e5a9df51SDavid Vernet 
10*e5a9df51SDavid Vernet enum test_msg_op {
11*e5a9df51SDavid Vernet 	TEST_MSG_OP_INC64,
12*e5a9df51SDavid Vernet 	TEST_MSG_OP_INC32,
13*e5a9df51SDavid Vernet 	TEST_MSG_OP_MUL64,
14*e5a9df51SDavid Vernet 	TEST_MSG_OP_MUL32,
15*e5a9df51SDavid Vernet 
16*e5a9df51SDavid Vernet 	// Must come last.
17*e5a9df51SDavid Vernet 	TEST_MSG_OP_NUM_OPS,
18*e5a9df51SDavid Vernet };
19*e5a9df51SDavid Vernet 
20*e5a9df51SDavid Vernet struct test_msg {
21*e5a9df51SDavid Vernet 	enum test_msg_op msg_op;
22*e5a9df51SDavid Vernet 	union {
23*e5a9df51SDavid Vernet 		__s64 operand_64;
24*e5a9df51SDavid Vernet 		__s32 operand_32;
25*e5a9df51SDavid Vernet 	};
26*e5a9df51SDavid Vernet };
27*e5a9df51SDavid Vernet 
28*e5a9df51SDavid Vernet struct sample {
29*e5a9df51SDavid Vernet 	int pid;
30*e5a9df51SDavid Vernet 	int seq;
31*e5a9df51SDavid Vernet 	long value;
32*e5a9df51SDavid Vernet 	char comm[16];
33*e5a9df51SDavid Vernet };
34*e5a9df51SDavid Vernet 
35*e5a9df51SDavid Vernet #endif /* _TEST_USER_RINGBUF_H */
36