124 строки
2.6 KiB
C
124 строки
2.6 KiB
C
// 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
|
|
|
|
struct tep_cmdline;
|
|
struct cmdline_list;
|
|
struct func_map;
|
|
struct func_list;
|
|
struct event_handler;
|
|
struct func_resolver;
|
|
struct tep_plugins_dir;
|
|
|
|
#define __hidden __attribute__((visibility ("hidden")))
|
|
|
|
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;
|
|
|
|
struct tep_cmdline *cmdlines;
|
|
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;
|
|
|
|
struct tep_event **events;
|
|
int nr_events;
|
|
struct tep_event **sort_events;
|
|
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 */
|
|
struct tep_event *last_event;
|
|
|
|
struct tep_plugins_dir *plugins_dir;
|
|
};
|
|
|
|
enum tep_print_parse_type {
|
|
PRINT_FMT_STRING,
|
|
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;
|
|
};
|
|
|
|
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);
|
|
|
|
#endif /* _PARSE_EVENTS_INT_H */
|