X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Finclude%2Frte_trace_point_register.h;h=4f5c86552d4ea414b3c46d3948967da878717da3;hb=6f583cd8b01b5b6568668ce8efb78d3eaaa55b61;hp=6c5872a3e6b6346d6d00477f630d8bf19550ede0;hpb=f58880682c81d412369742ff7e8159f226d9e620;p=dpdk.git diff --git a/lib/librte_eal/include/rte_trace_point_register.h b/lib/librte_eal/include/rte_trace_point_register.h index 6c5872a3e6..4f5c86552d 100644 --- a/lib/librte_eal/include/rte_trace_point_register.h +++ b/lib/librte_eal/include/rte_trace_point_register.h @@ -2,19 +2,44 @@ * Copyright(C) 2020 Marvell International Ltd. */ -#ifndef _RTE_TRACE_POINT_H_ -#error do not include this file directly, use instead -#endif - #ifndef _RTE_TRACE_POINT_REGISTER_H_ #define _RTE_TRACE_POINT_REGISTER_H_ +#ifdef _RTE_TRACE_POINT_H_ +#error for registration, include this file first before +#endif + #include +#include RTE_DECLARE_PER_LCORE(volatile int, trace_point_sz); #define RTE_TRACE_POINT_REGISTER(trace, name) \ +rte_trace_point_t __attribute__((section("__rte_trace_point"))) __##trace; \ +RTE_INIT(trace##_init) \ +{ \ __rte_trace_point_register(&__##trace, RTE_STR(name), \ - (void (*)(void)) trace) + (void (*)(void)) trace); \ +} + +#define __rte_trace_point_emit_header_generic(t) \ + RTE_PER_LCORE(trace_point_sz) = __RTE_TRACE_EVENT_HEADER_SZ + +#define __rte_trace_point_emit_header_fp(t) \ + __rte_trace_point_emit_header_generic(t) + +#define __rte_trace_point_emit(in, type) \ +do { \ + RTE_BUILD_BUG_ON(sizeof(type) != sizeof(typeof(in))); \ + __rte_trace_point_emit_field(sizeof(type), RTE_STR(in), \ + RTE_STR(type)); \ +} while (0) + +#define rte_trace_point_emit_string(in) \ +do { \ + RTE_SET_USED(in); \ + __rte_trace_point_emit_field(__RTE_TRACE_EMIT_STRING_LEN_MAX, \ + RTE_STR(in)"[32]", "string_bounded_t"); \ +} while (0) #endif /* _RTE_TRACE_POINT_REGISTER_H_ */