2018-10-05 12:22:25 -04:00
// SPDX-License-Identifier: LGPL-2.1
/*
* Copyright ( C ) 2009 , 2010 Red Hat Inc , Steven Rostedt < srostedt @ redhat . com >
*
*/
# ifndef _PARSE_EVENTS_INT_H
# define _PARSE_EVENTS_INT_H
2018-11-30 23:08:09 -05:00
struct tep_cmdline ;
2018-10-05 12:22:25 -04:00
struct cmdline_list ;
struct func_map ;
struct func_list ;
struct event_handler ;
struct func_resolver ;
2020-07-02 14:53:49 -04:00
struct tep_plugins_dir ;
2018-10-05 12:22:25 -04:00
2020-09-30 14:07:33 +03:00
# define __hidden __attribute__((visibility ("hidden")))
2018-10-05 12:22:25 -04:00
struct tep_handle {
int ref_count ;
int header_page_ts_offset ;
int header_page_ts_size ;
int header_page_size_offset ;
int header_page_size_size ;
int header_page_data_offset ;
int header_page_data_size ;
int header_page_overwrite ;
enum tep_endian file_bigendian ;
enum tep_endian host_bigendian ;
int old_format ;
int cpus ;
int long_size ;
int page_size ;
2018-11-30 23:08:09 -05:00
struct tep_cmdline * cmdlines ;
2018-10-05 12:22:25 -04:00
struct cmdline_list * cmdlist ;
int cmdline_count ;
struct func_map * func_map ;
struct func_resolver * func_resolver ;
struct func_list * funclist ;
unsigned int func_count ;
struct printk_map * printk_map ;
struct printk_list * printklist ;
unsigned int printk_count ;
2018-11-30 10:44:07 -05:00
struct tep_event * * events ;
2018-10-05 12:22:25 -04:00
int nr_events ;
2018-11-30 10:44:07 -05:00
struct tep_event * * sort_events ;
2018-10-05 12:22:25 -04:00
enum tep_event_sort_type last_type ;
int type_offset ;
int type_size ;
int pid_offset ;
int pid_size ;
int pc_offset ;
int pc_size ;
int flags_offset ;
int flags_size ;
int ld_offset ;
int ld_size ;
int test_filters ;
int flags ;
struct tep_format_field * bprint_ip_field ;
struct tep_format_field * bprint_fmt_field ;
struct tep_format_field * bprint_buf_field ;
struct event_handler * handlers ;
struct tep_function_handler * func_handlers ;
/* cache */
2018-11-30 10:44:07 -05:00
struct tep_event * last_event ;
2020-07-02 14:53:49 -04:00
struct tep_plugins_dir * plugins_dir ;
2018-10-05 12:22:25 -04:00
} ;
2020-07-02 14:53:51 -04:00
enum tep_print_parse_type {
2020-07-21 21:16:49 -04:00
PRINT_FMT_STRING ,
2020-07-02 14:53:51 -04:00
PRINT_FMT_ARG_DIGIT ,
PRINT_FMT_ARG_POINTER ,
PRINT_FMT_ARG_STRING ,
} ;
struct tep_print_parse {
struct tep_print_parse * next ;
char * format ;
int ls ;
enum tep_print_parse_type type ;
struct tep_print_arg * arg ;
struct tep_print_arg * len_as_arg ;
} ;
2020-09-30 14:07:33 +03:00
void free_tep_event ( struct tep_event * event ) ;
void free_tep_format_field ( struct tep_format_field * field ) ;
void free_tep_plugin_paths ( struct tep_handle * tep ) ;
unsigned short data2host2 ( struct tep_handle * tep , unsigned short data ) ;
unsigned int data2host4 ( struct tep_handle * tep , unsigned int data ) ;
unsigned long long data2host8 ( struct tep_handle * tep , unsigned long long data ) ;
/* access to the internal parser */
int peek_char ( void ) ;
void init_input_buf ( const char * buf , unsigned long long size ) ;
unsigned long long get_input_buf_ptr ( void ) ;
const char * get_input_buf ( void ) ;
enum tep_event_type read_token ( char * * tok ) ;
void free_token ( char * tok ) ;
2018-11-30 10:44:10 -05:00
2018-10-05 12:22:25 -04:00
# endif /* _PARSE_EVENTS_INT_H */