root/tools/perf/util/perf-hooks.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef PERF_UTIL_PERF_HOOKS_H
   3 #define PERF_UTIL_PERF_HOOKS_H
   4 
   5 #ifdef __cplusplus
   6 extern "C" {
   7 #endif
   8 
   9 typedef void (*perf_hook_func_t)(void *ctx);
  10 struct perf_hook_desc {
  11         const char * const hook_name;
  12         perf_hook_func_t * const p_hook_func;
  13         void *hook_ctx;
  14 };
  15 
  16 extern void perf_hooks__invoke(const struct perf_hook_desc *);
  17 extern void perf_hooks__recover(void);
  18 
  19 #define PERF_HOOK(name)                                 \
  20 extern struct perf_hook_desc __perf_hook_desc_##name;   \
  21 static inline void perf_hooks__invoke_##name(void)      \
  22 {                                                       \
  23         perf_hooks__invoke(&__perf_hook_desc_##name);   \
  24 }
  25 
  26 #include "perf-hooks-list.h"
  27 #undef PERF_HOOK
  28 
  29 extern int
  30 perf_hooks__set_hook(const char *hook_name,
  31                      perf_hook_func_t hook_func,
  32                      void *hook_ctx);
  33 
  34 extern perf_hook_func_t
  35 perf_hooks__get_hook(const char *hook_name);
  36 
  37 #ifdef __cplusplus
  38 }
  39 #endif
  40 #endif

/* [<][>][^][v][top][bottom][index][help] */