]> git.proxmox.com Git - ceph.git/blame - ceph/src/spdk/dpdk/lib/librte_eal/common/include/rte_debug.h
bump version to 15.2.11-pve1
[ceph.git] / ceph / src / spdk / dpdk / lib / librte_eal / common / include / rte_debug.h
CommitLineData
11fdf7f2
TL
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2010-2014 Intel Corporation
7c673cae
FG
3 */
4
5#ifndef _RTE_DEBUG_H_
6#define _RTE_DEBUG_H_
7
8/**
9 * @file
10 *
11 * Debug Functions in RTE
12 *
13 * This file defines a generic API for debug operations. Part of
14 * the implementation is architecture-specific.
15 */
16
17#include "rte_log.h"
18#include "rte_branch_prediction.h"
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24/**
25 * Dump the stack of the calling core to the console.
26 */
27void rte_dump_stack(void);
28
29/**
30 * Dump the registers of the calling core to the console.
31 *
32 * Note: Not implemented in a userapp environment; use gdb instead.
33 */
34void rte_dump_registers(void);
35
36/**
37 * Provide notification of a critical non-recoverable error and terminate
38 * execution abnormally.
39 *
40 * Display the format string and its expanded arguments (printf-like).
41 *
9f95a23c 42 * In a linux environment, this function dumps the stack and calls
7c673cae
FG
43 * abort() resulting in a core dump if enabled.
44 *
45 * The function never returns.
46 *
47 * @param ...
48 * The format string, followed by the variable list of arguments.
49 */
50#define rte_panic(...) rte_panic_(__func__, __VA_ARGS__, "dummy")
51#define rte_panic_(func, format, ...) __rte_panic(func, format "%.0s", __VA_ARGS__)
52
11fdf7f2 53#ifdef RTE_ENABLE_ASSERT
7c673cae
FG
54#define RTE_ASSERT(exp) RTE_VERIFY(exp)
55#else
56#define RTE_ASSERT(exp) do {} while (0)
57#endif
58#define RTE_VERIFY(exp) do { \
59 if (unlikely(!(exp))) \
11fdf7f2 60 rte_panic("line %d\tassert \"%s\" failed\n", __LINE__, #exp); \
7c673cae
FG
61} while (0)
62
63/*
64 * Provide notification of a critical non-recoverable error and stop.
65 *
66 * This function should not be called directly. Refer to rte_panic() macro
67 * documentation.
68 */
69void __rte_panic(const char *funcname , const char *format, ...)
70#ifdef __GNUC__
71#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2))
72 __attribute__((cold))
73#endif
74#endif
75 __attribute__((noreturn))
76 __attribute__((format(printf, 2, 3)));
77
78#ifdef __cplusplus
79}
80#endif
81
82#endif /* _RTE_DEBUG_H_ */