root/tools/perf/util/config.h

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

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef __PERF_CONFIG_H
   3 #define __PERF_CONFIG_H
   4 
   5 #include <stdbool.h>
   6 #include <linux/list.h>
   7 
   8 struct perf_config_item {
   9         char *name;
  10         char *value;
  11         bool from_system_config;
  12         struct list_head node;
  13 };
  14 
  15 struct perf_config_section {
  16         char *name;
  17         struct list_head items;
  18         bool from_system_config;
  19         struct list_head node;
  20 };
  21 
  22 struct perf_config_set {
  23         struct list_head sections;
  24 };
  25 
  26 extern const char *config_exclusive_filename;
  27 
  28 typedef int (*config_fn_t)(const char *, const char *, void *);
  29 int perf_default_config(const char *, const char *, void *);
  30 int perf_config(config_fn_t fn, void *);
  31 int perf_config_int(int *dest, const char *, const char *);
  32 int perf_config_u64(u64 *dest, const char *, const char *);
  33 int perf_config_bool(const char *, const char *);
  34 int config_error_nonbool(const char *);
  35 const char *perf_etc_perfconfig(void);
  36 
  37 struct perf_config_set *perf_config_set__new(void);
  38 void perf_config_set__delete(struct perf_config_set *set);
  39 int perf_config_set__collect(struct perf_config_set *set, const char *file_name,
  40                              const char *var, const char *value);
  41 void perf_config__exit(void);
  42 void perf_config__refresh(void);
  43 
  44 /**
  45  * perf_config_sections__for_each - iterate thru all the sections
  46  * @list: list_head instance to iterate
  47  * @section: struct perf_config_section iterator
  48  */
  49 #define perf_config_sections__for_each_entry(list, section)     \
  50         list_for_each_entry(section, list, node)
  51 
  52 /**
  53  * perf_config_items__for_each - iterate thru all the items
  54  * @list: list_head instance to iterate
  55  * @item: struct perf_config_item iterator
  56  */
  57 #define perf_config_items__for_each_entry(list, item)   \
  58         list_for_each_entry(item, list, node)
  59 
  60 /**
  61  * perf_config_set__for_each - iterate thru all the config section-item pairs
  62  * @set: evlist instance to iterate
  63  * @section: struct perf_config_section iterator
  64  * @item: struct perf_config_item iterator
  65  */
  66 #define perf_config_set__for_each_entry(set, section, item)                     \
  67         perf_config_sections__for_each_entry(&set->sections, section)           \
  68         perf_config_items__for_each_entry(&section->items, item)
  69 
  70 #endif /* __PERF_CONFIG_H */

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