diff options
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/perf/util/trace-event-parse.c | 89 | ||||
| -rw-r--r-- | tools/perf/util/trace-event-read.c | 12 | ||||
| -rw-r--r-- | tools/perf/util/trace-event.h | 1 |
3 files changed, 7 insertions, 95 deletions
diff --git a/tools/perf/util/trace-event-parse.c b/tools/perf/util/trace-event-parse.c index d6ef414075a6..069f261b225c 100644 --- a/tools/perf/util/trace-event-parse.c +++ b/tools/perf/util/trace-event-parse.c | |||
| @@ -691,11 +691,6 @@ static int __read_expected(enum event_type expect, const char *str, | |||
| 691 | return ret; | 691 | return ret; |
| 692 | } | 692 | } |
| 693 | 693 | ||
| 694 | static int read_expected_warn(enum event_type expect, const char *str, bool warn) | ||
| 695 | { | ||
| 696 | return __read_expected(expect, str, 1, warn); | ||
| 697 | } | ||
| 698 | |||
| 699 | static int read_expected(enum event_type expect, const char *str) | 694 | static int read_expected(enum event_type expect, const char *str) |
| 700 | { | 695 | { |
| 701 | return __read_expected(expect, str, 1, true); | 696 | return __read_expected(expect, str, 1, true); |
| @@ -3104,90 +3099,6 @@ static void print_args(struct print_arg *args) | |||
| 3104 | } | 3099 | } |
| 3105 | } | 3100 | } |
| 3106 | 3101 | ||
| 3107 | static void parse_header_field(const char *field, | ||
| 3108 | int *offset, int *size, bool warn) | ||
| 3109 | { | ||
| 3110 | char *token; | ||
| 3111 | int type; | ||
| 3112 | |||
| 3113 | if (read_expected(EVENT_ITEM, "field") < 0) | ||
| 3114 | return; | ||
| 3115 | if (read_expected(EVENT_OP, ":") < 0) | ||
| 3116 | return; | ||
| 3117 | |||
| 3118 | /* type */ | ||
| 3119 | if (read_expect_type(EVENT_ITEM, &token) < 0) | ||
| 3120 | goto fail; | ||
| 3121 | free_token(token); | ||
| 3122 | |||
| 3123 | if (read_expected_warn(EVENT_ITEM, field, warn) < 0) | ||
| 3124 | return; | ||
| 3125 | if (read_expected(EVENT_OP, ";") < 0) | ||
| 3126 | return; | ||
| 3127 | if (read_expected(EVENT_ITEM, "offset") < 0) | ||
| 3128 | return; | ||
| 3129 | if (read_expected(EVENT_OP, ":") < 0) | ||
| 3130 | return; | ||
| 3131 | if (read_expect_type(EVENT_ITEM, &token) < 0) | ||
| 3132 | goto fail; | ||
| 3133 | *offset = atoi(token); | ||
| 3134 | free_token(token); | ||
| 3135 | if (read_expected(EVENT_OP, ";") < 0) | ||
| 3136 | return; | ||
| 3137 | if (read_expected(EVENT_ITEM, "size") < 0) | ||
| 3138 | return; | ||
| 3139 | if (read_expected(EVENT_OP, ":") < 0) | ||
| 3140 | return; | ||
| 3141 | if (read_expect_type(EVENT_ITEM, &token) < 0) | ||
| 3142 | goto fail; | ||
| 3143 | *size = atoi(token); | ||
| 3144 | free_token(token); | ||
| 3145 | if (read_expected(EVENT_OP, ";") < 0) | ||
| 3146 | return; | ||
| 3147 | type = read_token(&token); | ||
| 3148 | if (type != EVENT_NEWLINE) { | ||
| 3149 | /* newer versions of the kernel have a "signed" type */ | ||
| 3150 | if (type != EVENT_ITEM) | ||
| 3151 | goto fail; | ||
| 3152 | |||
| 3153 | if (strcmp(token, "signed") != 0) | ||
| 3154 | goto fail; | ||
| 3155 | |||
| 3156 | free_token(token); | ||
| 3157 | |||
| 3158 | if (read_expected(EVENT_OP, ":") < 0) | ||
| 3159 | return; | ||
| 3160 | |||
| 3161 | if (read_expect_type(EVENT_ITEM, &token)) | ||
| 3162 | goto fail; | ||
| 3163 | |||
| 3164 | free_token(token); | ||
| 3165 | if (read_expected(EVENT_OP, ";") < 0) | ||
| 3166 | return; | ||
| 3167 | |||
| 3168 | if (read_expect_type(EVENT_NEWLINE, &token)) | ||
| 3169 | goto fail; | ||
| 3170 | } | ||
| 3171 | fail: | ||
| 3172 | free_token(token); | ||
| 3173 | } | ||
| 3174 | |||
| 3175 | int parse_header_page(char *buf, unsigned long size) | ||
| 3176 | { | ||
| 3177 | init_input_buf(buf, size); | ||
| 3178 | |||
| 3179 | parse_header_field("timestamp", &header_page_ts_offset, | ||
| 3180 | &header_page_ts_size, true); | ||
| 3181 | parse_header_field("commit", &header_page_size_offset, | ||
| 3182 | &header_page_size_size, true); | ||
| 3183 | parse_header_field("overwrite", &header_page_overwrite_offset, | ||
| 3184 | &header_page_overwrite_size, false); | ||
| 3185 | parse_header_field("data", &header_page_data_offset, | ||
| 3186 | &header_page_data_size, true); | ||
| 3187 | |||
| 3188 | return 0; | ||
| 3189 | } | ||
| 3190 | |||
| 3191 | int parse_ftrace_file(char *buf, unsigned long size) | 3102 | int parse_ftrace_file(char *buf, unsigned long size) |
| 3192 | { | 3103 | { |
| 3193 | struct format_field *field; | 3104 | struct format_field *field; |
diff --git a/tools/perf/util/trace-event-read.c b/tools/perf/util/trace-event-read.c index 44889c9b5630..46066391288a 100644 --- a/tools/perf/util/trace-event-read.c +++ b/tools/perf/util/trace-event-read.c | |||
| @@ -52,6 +52,12 @@ static unsigned long page_size; | |||
| 52 | 52 | ||
| 53 | static ssize_t calc_data_size; | 53 | static ssize_t calc_data_size; |
| 54 | 54 | ||
| 55 | /* If it fails, the next read will report it */ | ||
| 56 | static void skip(int size) | ||
| 57 | { | ||
| 58 | lseek(input_fd, size, SEEK_CUR); | ||
| 59 | } | ||
| 60 | |||
| 55 | static int do_read(int fd, void *buf, int size) | 61 | static int do_read(int fd, void *buf, int size) |
| 56 | { | 62 | { |
| 57 | int rsize = size; | 63 | int rsize = size; |
| @@ -169,7 +175,6 @@ static void read_ftrace_printk(void) | |||
| 169 | static void read_header_files(void) | 175 | static void read_header_files(void) |
| 170 | { | 176 | { |
| 171 | unsigned long long size; | 177 | unsigned long long size; |
| 172 | char *header_page; | ||
| 173 | char *header_event; | 178 | char *header_event; |
| 174 | char buf[BUFSIZ]; | 179 | char buf[BUFSIZ]; |
| 175 | 180 | ||
| @@ -179,10 +184,7 @@ static void read_header_files(void) | |||
| 179 | die("did not read header page"); | 184 | die("did not read header page"); |
| 180 | 185 | ||
| 181 | size = read8(); | 186 | size = read8(); |
| 182 | header_page = malloc_or_die(size); | 187 | skip(size); |
| 183 | read_or_die(header_page, size); | ||
| 184 | parse_header_page(header_page, size); | ||
| 185 | free(header_page); | ||
| 186 | 188 | ||
| 187 | /* | 189 | /* |
| 188 | * The size field in the page is of type long, | 190 | * The size field in the page is of type long, |
diff --git a/tools/perf/util/trace-event.h b/tools/perf/util/trace-event.h index 1f45d468fd9a..4e1acc31ebaa 100644 --- a/tools/perf/util/trace-event.h +++ b/tools/perf/util/trace-event.h | |||
| @@ -244,7 +244,6 @@ extern int header_page_data_size; | |||
| 244 | 244 | ||
| 245 | extern bool latency_format; | 245 | extern bool latency_format; |
| 246 | 246 | ||
| 247 | int parse_header_page(char *buf, unsigned long size); | ||
| 248 | int trace_parse_common_type(void *data); | 247 | int trace_parse_common_type(void *data); |
| 249 | int trace_parse_common_pid(void *data); | 248 | int trace_parse_common_pid(void *data); |
| 250 | int parse_common_pc(void *data); | 249 | int parse_common_pc(void *data); |
