1 /*
2  * Copyright (c) 2018-2019 Intel Corporation
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef TP_PRIV_H
8 #define TP_PRIV_H
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 #include <sys/types.h>
15 #include <string.h>
16 #include <zephyr/kernel.h>
17 #include <zephyr/net/net_pkt.h>
18 
19 #define tp_dbg(fmt, args...) printk("%s: " fmt "\n", __func__, ## args)
20 #define tp_err(fmt, args...) do {				\
21 	printk("%s: Error: " fmt "\n", __func__, ## args);	\
22 	k_oops();						\
23 } while (false)
24 
25 #define tp_assert(cond, fmt, args...) do {			\
26 	if ((cond) == false) {					\
27 		printk("%s: Assertion failed: %s, " fmt "\n",	\
28 			__func__, #cond, ## args);		\
29 		k_oops();					\
30 	}							\
31 } while (false)
32 
33 #define is(_a, _b) (strcmp((_a), (_b)) == 0)
34 #define ip_get(_x) ((struct net_ipv4_hdr *) net_pkt_ip_data((_x)))
35 
36 #define TP_MEM_HEADER_COOKIE 0xAAAAAAAA
37 #define TP_MEM_FOOTER_COOKIE 0xBBBBBBBB
38 
39 struct tp_mem {
40 	sys_snode_t next;
41 	const char *file;
42 	int line;
43 	const char *func;
44 	size_t size;
45 	uint32_t *footer;
46 	uint32_t header;
47 	uint8_t mem[];
48 };
49 
50 struct tp_nbuf {
51 	sys_snode_t next;
52 	struct net_buf *nbuf;
53 	const char *file;
54 	int line;
55 };
56 
57 struct tp_pkt {
58 	sys_snode_t next;
59 	struct net_pkt *pkt;
60 	const char *file;
61 	int line;
62 };
63 
64 struct tp_seq {
65 	sys_snode_t next;
66 	const char *file;
67 	int line;
68 	const char *func;
69 	int kind;
70 	int req;
71 	uint32_t value;
72 	uint32_t old_value;
73 	int of;
74 };
75 
76 #ifdef __cplusplus
77 }
78 #endif
79 
80 #endif /* TP_PRIV_H */
81