diff options
author | Steven Rostedt <srostedt@redhat.com> | 2010-03-19 15:54:06 -0400 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2010-03-19 15:54:06 -0400 |
commit | 1bb8667937103dec4184aed02140a848b7988a1d (patch) | |
tree | c924979eeb8d29144ef30ef204df535610137ff4 | |
parent | 730013abbeb77bdf887b721c5b9ac048fa69a165 (diff) |
trace-cmd: Move the printing of the mac address into its own function
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r-- | parse-events.c | 52 |
1 files changed, 29 insertions, 23 deletions
diff --git a/parse-events.c b/parse-events.c index af4a238..fa4d16b 100644 --- a/parse-events.c +++ b/parse-events.c | |||
@@ -3139,6 +3139,34 @@ get_bprint_format(void *data, int size __unused, struct event_format *event) | |||
3139 | return format; | 3139 | return format; |
3140 | } | 3140 | } |
3141 | 3141 | ||
3142 | static void print_mac_arg(struct trace_seq *s, int mac, void *data, | ||
3143 | struct event_format *event, struct print_arg *arg) | ||
3144 | { | ||
3145 | unsigned char *buf; | ||
3146 | char *fmt = "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x"; | ||
3147 | |||
3148 | if (arg->type != PRINT_FIELD) { | ||
3149 | trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", | ||
3150 | arg->type); | ||
3151 | return; | ||
3152 | } | ||
3153 | |||
3154 | if (mac == 'm') | ||
3155 | fmt = "%.2x%.2x%.2x%.2x%.2x%.2x"; | ||
3156 | if (!arg->field.field) { | ||
3157 | arg->field.field = | ||
3158 | pevent_find_any_field(event, arg->field.name); | ||
3159 | if (!arg->field.field) | ||
3160 | die("field %s not found", arg->field.name); | ||
3161 | } | ||
3162 | if (arg->field.field->size != 6) { | ||
3163 | trace_seq_printf(s, "INVALIDMAC"); | ||
3164 | return; | ||
3165 | } | ||
3166 | buf = data + arg->field.field->offset; | ||
3167 | trace_seq_printf(s, fmt, buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]); | ||
3168 | } | ||
3169 | |||
3142 | static void pretty_print(struct trace_seq *s, void *data, int size, struct event_format *event) | 3170 | static void pretty_print(struct trace_seq *s, void *data, int size, struct event_format *event) |
3143 | { | 3171 | { |
3144 | struct pevent *pevent = event->pevent; | 3172 | struct pevent *pevent = event->pevent; |
@@ -3224,29 +3252,7 @@ static void pretty_print(struct trace_seq *s, void *data, int size, struct event | |||
3224 | ptr++; | 3252 | ptr++; |
3225 | show_func = *ptr; | 3253 | show_func = *ptr; |
3226 | } else if (*(ptr+1) == 'M' || *(ptr+1) == 'm') { | 3254 | } else if (*(ptr+1) == 'M' || *(ptr+1) == 'm') { |
3227 | unsigned char *buf; | 3255 | print_mac_arg(s, *(ptr+1), data, event, arg); |
3228 | char *fmt = "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x"; | ||
3229 | |||
3230 | if (arg->type != PRINT_FIELD) { | ||
3231 | trace_seq_printf(s, "ARG TYPE NOT FIELD BUT %d", | ||
3232 | arg->type); | ||
3233 | break; | ||
3234 | } | ||
3235 | |||
3236 | if (*(ptr+1) == 'm') | ||
3237 | fmt = "%.2x%.2x%.2x%.2x%.2x%.2x"; | ||
3238 | if (!arg->field.field) { | ||
3239 | arg->field.field = | ||
3240 | pevent_find_any_field(event, arg->field.name); | ||
3241 | if (!arg->field.field) | ||
3242 | die("field %s not found", arg->field.name); | ||
3243 | } | ||
3244 | if (arg->field.field->size != 6) { | ||
3245 | trace_seq_printf(s, "INVALIDMAC"); | ||
3246 | break; | ||
3247 | } | ||
3248 | buf = data + arg->field.field->offset; | ||
3249 | trace_seq_printf(s, fmt, buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]); | ||
3250 | ptr++; | 3256 | ptr++; |
3251 | break; | 3257 | break; |
3252 | } | 3258 | } |