2016-04-14 16:53:18 +09:00
# ifndef __PERF_CONFIG_H
# define __PERF_CONFIG_H
# include <stdbool.h>
# include <linux/list.h>
struct perf_config_item {
char * name ;
char * value ;
2016-11-04 15:44:22 +09:00
bool from_system_config ;
2016-04-14 16:53:18 +09:00
struct list_head node ;
} ;
struct perf_config_section {
char * name ;
struct list_head items ;
2016-11-04 15:44:22 +09:00
bool from_system_config ;
2016-04-14 16:53:18 +09:00
struct list_head node ;
} ;
struct perf_config_set {
struct list_head sections ;
} ;
2016-06-23 17:55:17 +09:00
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_int ( const char * , const char * ) ;
u64 perf_config_u64 ( const char * , const char * ) ;
int perf_config_bool ( const char * , const char * ) ;
int config_error_nonbool ( const char * ) ;
const char * perf_etc_perfconfig ( void ) ;
2016-04-14 16:53:18 +09:00
struct perf_config_set * perf_config_set__new ( void ) ;
void perf_config_set__delete ( struct perf_config_set * set ) ;
2016-11-04 15:44:22 +09:00
int perf_config_set__collect ( struct perf_config_set * set , const char * file_name ,
2016-11-04 15:44:20 +09:00
const char * var , const char * value ) ;
2016-06-23 23:14:31 +09:00
void perf_config__init ( void ) ;
void perf_config__exit ( void ) ;
void perf_config__refresh ( void ) ;
/**
* 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 ( & section - > items , item )
2016-04-14 16:53:18 +09:00
# endif /* __PERF_CONFIG_H */