linux/tools/lib/traceevent/plugins/plugin_jbd2.c
<<
>>
Prefs
   1// SPDX-License-Identifier: LGPL-2.1
   2/*
   3 * Copyright (C) 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
   4 */
   5#include <stdio.h>
   6#include <stdlib.h>
   7#include <string.h>
   8
   9#include "event-parse.h"
  10#include "trace-seq.h"
  11
  12#define MINORBITS       20
  13#define MINORMASK       ((1U << MINORBITS) - 1)
  14
  15#define MAJOR(dev)      ((unsigned int) ((dev) >> MINORBITS))
  16#define MINOR(dev)      ((unsigned int) ((dev) & MINORMASK))
  17
  18static unsigned long long
  19process_jbd2_dev_to_name(struct trace_seq *s, unsigned long long *args)
  20{
  21        unsigned int dev = args[0];
  22
  23        trace_seq_printf(s, "%d:%d", MAJOR(dev), MINOR(dev));
  24        return 0;
  25}
  26
  27static unsigned long long
  28process_jiffies_to_msecs(struct trace_seq *s, unsigned long long *args)
  29{
  30        unsigned long long jiffies = args[0];
  31
  32        trace_seq_printf(s, "%lld", jiffies);
  33        return jiffies;
  34}
  35
  36int TEP_PLUGIN_LOADER(struct tep_handle *tep)
  37{
  38        tep_register_print_function(tep,
  39                                    process_jbd2_dev_to_name,
  40                                    TEP_FUNC_ARG_STRING,
  41                                    "jbd2_dev_to_name",
  42                                    TEP_FUNC_ARG_INT,
  43                                    TEP_FUNC_ARG_VOID);
  44
  45        tep_register_print_function(tep,
  46                                    process_jiffies_to_msecs,
  47                                    TEP_FUNC_ARG_LONG,
  48                                    "jiffies_to_msecs",
  49                                    TEP_FUNC_ARG_LONG,
  50                                    TEP_FUNC_ARG_VOID);
  51        return 0;
  52}
  53
  54void TEP_PLUGIN_UNLOADER(struct tep_handle *tep)
  55{
  56        tep_unregister_print_function(tep, process_jbd2_dev_to_name,
  57                                      "jbd2_dev_to_name");
  58
  59        tep_unregister_print_function(tep, process_jiffies_to_msecs,
  60                                      "jiffies_to_msecs");
  61}
  62