cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

perf-hooks.h (874B)


      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
      6extern "C" {
      7#endif
      8
      9typedef void (*perf_hook_func_t)(void *ctx);
     10struct perf_hook_desc {
     11	const char * const hook_name;
     12	perf_hook_func_t * const p_hook_func;
     13	void *hook_ctx;
     14};
     15
     16extern void perf_hooks__invoke(const struct perf_hook_desc *);
     17extern void perf_hooks__recover(void);
     18
     19#define PERF_HOOK(name)					\
     20extern struct perf_hook_desc __perf_hook_desc_##name;	\
     21static 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
     29extern int
     30perf_hooks__set_hook(const char *hook_name,
     31		     perf_hook_func_t hook_func,
     32		     void *hook_ctx);
     33
     34extern perf_hook_func_t
     35perf_hooks__get_hook(const char *hook_name);
     36
     37#ifdef __cplusplus
     38}
     39#endif
     40#endif