Loading...
1// SPDX-License-Identifier: LGPL-2.1
2/*
3 * Copyright (C) 2009, 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
4 *
5 */
6
7#ifndef _PARSE_EVENTS_INT_H
8#define _PARSE_EVENTS_INT_H
9
10struct tep_cmdline;
11struct cmdline_list;
12struct func_map;
13struct func_list;
14struct event_handler;
15struct func_resolver;
16struct tep_plugins_dir;
17
18#define __hidden __attribute__((visibility ("hidden")))
19
20struct tep_handle {
21 int ref_count;
22
23 int header_page_ts_offset;
24 int header_page_ts_size;
25 int header_page_size_offset;
26 int header_page_size_size;
27 int header_page_data_offset;
28 int header_page_data_size;
29 int header_page_overwrite;
30
31 enum tep_endian file_bigendian;
32 enum tep_endian host_bigendian;
33
34 int old_format;
35
36 int cpus;
37 int long_size;
38 int page_size;
39
40 struct tep_cmdline *cmdlines;
41 struct cmdline_list *cmdlist;
42 int cmdline_count;
43
44 struct func_map *func_map;
45 struct func_resolver *func_resolver;
46 struct func_list *funclist;
47 unsigned int func_count;
48
49 struct printk_map *printk_map;
50 struct printk_list *printklist;
51 unsigned int printk_count;
52
53 struct tep_event **events;
54 int nr_events;
55 struct tep_event **sort_events;
56 enum tep_event_sort_type last_type;
57
58 int type_offset;
59 int type_size;
60
61 int pid_offset;
62 int pid_size;
63
64 int pc_offset;
65 int pc_size;
66
67 int flags_offset;
68 int flags_size;
69
70 int ld_offset;
71 int ld_size;
72
73 int test_filters;
74
75 int flags;
76
77 struct tep_format_field *bprint_ip_field;
78 struct tep_format_field *bprint_fmt_field;
79 struct tep_format_field *bprint_buf_field;
80
81 struct event_handler *handlers;
82 struct tep_function_handler *func_handlers;
83
84 /* cache */
85 struct tep_event *last_event;
86
87 struct tep_plugins_dir *plugins_dir;
88};
89
90enum tep_print_parse_type {
91 PRINT_FMT_STRING,
92 PRINT_FMT_ARG_DIGIT,
93 PRINT_FMT_ARG_POINTER,
94 PRINT_FMT_ARG_STRING,
95};
96
97struct tep_print_parse {
98 struct tep_print_parse *next;
99
100 char *format;
101 int ls;
102 enum tep_print_parse_type type;
103 struct tep_print_arg *arg;
104 struct tep_print_arg *len_as_arg;
105};
106
107void free_tep_event(struct tep_event *event);
108void free_tep_format_field(struct tep_format_field *field);
109void free_tep_plugin_paths(struct tep_handle *tep);
110
111unsigned short data2host2(struct tep_handle *tep, unsigned short data);
112unsigned int data2host4(struct tep_handle *tep, unsigned int data);
113unsigned long long data2host8(struct tep_handle *tep, unsigned long long data);
114
115/* access to the internal parser */
116int peek_char(void);
117void init_input_buf(const char *buf, unsigned long long size);
118unsigned long long get_input_buf_ptr(void);
119const char *get_input_buf(void);
120enum tep_event_type read_token(char **tok);
121void free_token(char *tok);
122
123#endif /* _PARSE_EVENTS_INT_H */
1// SPDX-License-Identifier: LGPL-2.1
2/*
3 * Copyright (C) 2009, 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
4 *
5 */
6
7#ifndef _PARSE_EVENTS_INT_H
8#define _PARSE_EVENTS_INT_H
9
10struct tep_cmdline;
11struct cmdline_list;
12struct func_map;
13struct func_list;
14struct event_handler;
15struct func_resolver;
16struct tep_plugins_dir;
17
18struct tep_handle {
19 int ref_count;
20
21 int header_page_ts_offset;
22 int header_page_ts_size;
23 int header_page_size_offset;
24 int header_page_size_size;
25 int header_page_data_offset;
26 int header_page_data_size;
27 int header_page_overwrite;
28
29 enum tep_endian file_bigendian;
30 enum tep_endian host_bigendian;
31
32 int old_format;
33
34 int cpus;
35 int long_size;
36 int page_size;
37
38 struct tep_cmdline *cmdlines;
39 struct cmdline_list *cmdlist;
40 int cmdline_count;
41
42 struct func_map *func_map;
43 struct func_resolver *func_resolver;
44 struct func_list *funclist;
45 unsigned int func_count;
46
47 struct printk_map *printk_map;
48 struct printk_list *printklist;
49 unsigned int printk_count;
50
51 struct tep_event **events;
52 int nr_events;
53 struct tep_event **sort_events;
54 enum tep_event_sort_type last_type;
55
56 int type_offset;
57 int type_size;
58
59 int pid_offset;
60 int pid_size;
61
62 int pc_offset;
63 int pc_size;
64
65 int flags_offset;
66 int flags_size;
67
68 int ld_offset;
69 int ld_size;
70
71 int test_filters;
72
73 int flags;
74
75 struct tep_format_field *bprint_ip_field;
76 struct tep_format_field *bprint_fmt_field;
77 struct tep_format_field *bprint_buf_field;
78
79 struct event_handler *handlers;
80 struct tep_function_handler *func_handlers;
81
82 /* cache */
83 struct tep_event *last_event;
84
85 struct tep_plugins_dir *plugins_dir;
86};
87
88enum tep_print_parse_type {
89 PRINT_FMT_STRING,
90 PRINT_FMT_ARG_DIGIT,
91 PRINT_FMT_ARG_POINTER,
92 PRINT_FMT_ARG_STRING,
93};
94
95struct tep_print_parse {
96 struct tep_print_parse *next;
97
98 char *format;
99 int ls;
100 enum tep_print_parse_type type;
101 struct tep_print_arg *arg;
102 struct tep_print_arg *len_as_arg;
103};
104
105void tep_free_event(struct tep_event *event);
106void tep_free_format_field(struct tep_format_field *field);
107void tep_free_plugin_paths(struct tep_handle *tep);
108
109unsigned short tep_data2host2(struct tep_handle *tep, unsigned short data);
110unsigned int tep_data2host4(struct tep_handle *tep, unsigned int data);
111unsigned long long tep_data2host8(struct tep_handle *tep, unsigned long long data);
112
113#endif /* _PARSE_EVENTS_INT_H */