linux/tools/lib/perf/core.c
<<
>>
Prefs
   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}
  39