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

core.c (792B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2
      3#define __printf(a, b)  __attribute__((format(printf, a, b)))
      4
      5#include <stdio.h>
      6#include <stdarg.h>
      7#include <unistd.h>
      8#include <linux/compiler.h>
      9#include <perf/core.h>
     10#include <internal/lib.h>
     11#include "internal.h"
     12
     13static int __base_pr(enum libperf_print_level level __maybe_unused, const char *format,
     14		     va_list args)
     15{
     16	return vfprintf(stderr, format, args);
     17}
     18
     19static libperf_print_fn_t __libperf_pr = __base_pr;
     20
     21__printf(2, 3)
     22void libperf_print(enum libperf_print_level level, const char *format, ...)
     23{
     24	va_list args;
     25
     26	if (!__libperf_pr)
     27		return;
     28
     29	va_start(args, format);
     30	__libperf_pr(level, format, args);
     31	va_end(args);
     32}
     33
     34void libperf_init(libperf_print_fn_t fn)
     35{
     36	page_size = sysconf(_SC_PAGE_SIZE);
     37	__libperf_pr = fn;
     38}