tools/perf/util/config.h
Source file repositories/reference/linux-study-clean/tools/perf/util/config.h
File Facts
- System
- Linux kernel
- Corpus path
tools/perf/util/config.h- Extension
.h- Size
- 2623 bytes
- Lines
- 81
- Domain
- Support Tooling And Documentation
- Bucket
- tools
- Inferred role
- Support Tooling And Documentation: implementation source
- Status
- source implementation candidate
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
stdbool.hlinux/list.h
Detected Declarations
struct perf_config_itemstruct perf_config_sectionstruct perf_config_set
Annotated Snippet
struct perf_config_item {
char *name;
char *value;
bool from_system_config;
struct list_head node;
};
struct perf_config_section {
char *name;
struct list_head items;
bool from_system_config;
struct list_head node;
};
struct perf_config_set {
struct list_head sections;
};
extern const char *config_exclusive_filename;
typedef int (*config_fn_t)(const char *, const char *, void *);
int perf_default_config(const char *, const char *, void *);
int perf_config(config_fn_t fn, void *);
int perf_config_scan(const char *name, const char *fmt, ...) __scanf(2, 3);
const char *perf_config_get(const char *name);
int perf_config_set(struct perf_config_set *set,
config_fn_t fn, void *data);
int perf_config_int(int *dest, const char *, const char *);
int perf_config_u8(u8 *dest, const char *name, const char *value);
int perf_config_u64(u64 *dest, const char *, const char *);
int perf_config_bool(const char *, const char *);
int config_error_nonbool(const char *);
const char *perf_etc_perfconfig(void);
const char *perf_home_perfconfig(void);
int perf_config_system(void);
int perf_config_global(void);
struct perf_config_set *perf_config_set__new(void);
struct perf_config_set *perf_config_set__load_file(const char *file);
void perf_config_set__delete(struct perf_config_set *set);
int perf_config_set__collect(struct perf_config_set *set, const char *file_name,
const char *var, const char *value);
void perf_config__exit(void);
int perf_config__set_variable(const char *var, const char *value);
/**
* perf_config_sections__for_each - iterate thru all the sections
* @list: list_head instance to iterate
* @section: struct perf_config_section iterator
*/
#define perf_config_sections__for_each_entry(list, section) \
list_for_each_entry(section, list, node)
/**
* perf_config_items__for_each - iterate thru all the items
* @list: list_head instance to iterate
* @item: struct perf_config_item iterator
*/
#define perf_config_items__for_each_entry(list, item) \
list_for_each_entry(item, list, node)
/**
* perf_config_set__for_each - iterate thru all the config section-item pairs
* @set: evlist instance to iterate
* @section: struct perf_config_section iterator
* @item: struct perf_config_item iterator
*/
#define perf_config_set__for_each_entry(set, section, item) \
perf_config_sections__for_each_entry(&set->sections, section) \
perf_config_items__for_each_entry(§ion->items, item)
#endif /* __PERF_CONFIG_H */
Annotation
- Immediate include surface: `stdbool.h`, `linux/list.h`.
- Detected declarations: `struct perf_config_item`, `struct perf_config_section`, `struct perf_config_set`.
- Atlas domain: Support Tooling And Documentation / tools.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.