Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
/*
 * Copyright (c) 2018-2019 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef TP_PRIV_H
#define TP_PRIV_H

#ifdef __cplusplus
extern "C" {
#endif

#include <sys/types.h>
#include <string.h>
#include <zephyr.h>
#include <net/net_pkt.h>

#define tp_dbg(fmt, args...) printk("%s: " fmt "\n", __func__, ## args)
#define tp_err(fmt, args...) do {				\
	printk("%s: Error: " fmt "\n", __func__, ## args);	\
	k_oops();						\
} while (0)

#define tp_assert(cond, fmt, args...) do {			\
	if ((cond) == false) {					\
		printk("%s: Assertion failed: %s, " fmt "\n",	\
			__func__, #cond, ## args);		\
		k_oops();					\
	}							\
} while (0)

#define is(_a, _b) (strcmp((_a), (_b)) == 0)
#define ip_get(_x) ((struct net_ipv4_hdr *) net_pkt_ip_data((_x)))

#define TP_MEM_HEADER_COOKIE 0xAAAAAAAA
#define TP_MEM_FOOTER_COOKIE 0xBBBBBBBB

struct tp_mem {
	sys_snode_t next;
	const char *file;
	int line;
	const char *func;
	size_t size;
	uint32_t *footer;
	uint32_t header;
	uint8_t mem[];
};

struct tp_nbuf {
	sys_snode_t next;
	struct net_buf *nbuf;
	const char *file;
	int line;
};

struct tp_pkt {
	sys_snode_t next;
	struct net_pkt *pkt;
	const char *file;
	int line;
};

struct tp_seq {
	sys_snode_t next;
	const char *file;
	int line;
	const char *func;
	int kind;
	int req;
	uint32_t value;
	uint32_t old_value;
	int of;
};

#ifdef __cplusplus
}
#endif

#endif /* TP_PRIV_H */