162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2019-2022 Red Hat, Inc. Daniel Bristot de Oliveira <bristot@kernel.org> 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Helper functions to facilitate the instrumentation of auto-generated 662306a36Sopenharmony_ci * RV monitors create by dot2k. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci * The dot2k tool is available at tools/verification/dot2/ 962306a36Sopenharmony_ci */ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#include <linux/ftrace.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/* 1462306a36Sopenharmony_ci * rv_attach_trace_probe - check and attach a handler function to a tracepoint 1562306a36Sopenharmony_ci */ 1662306a36Sopenharmony_ci#define rv_attach_trace_probe(monitor, tp, rv_handler) \ 1762306a36Sopenharmony_ci do { \ 1862306a36Sopenharmony_ci check_trace_callback_type_##tp(rv_handler); \ 1962306a36Sopenharmony_ci WARN_ONCE(register_trace_##tp(rv_handler, NULL), \ 2062306a36Sopenharmony_ci "fail attaching " #monitor " " #tp "handler"); \ 2162306a36Sopenharmony_ci } while (0) 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci/* 2462306a36Sopenharmony_ci * rv_detach_trace_probe - detach a handler function to a tracepoint 2562306a36Sopenharmony_ci */ 2662306a36Sopenharmony_ci#define rv_detach_trace_probe(monitor, tp, rv_handler) \ 2762306a36Sopenharmony_ci do { \ 2862306a36Sopenharmony_ci unregister_trace_##tp(rv_handler, NULL); \ 2962306a36Sopenharmony_ci } while (0) 30