Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 323731
b: refs/heads/master
c: 2f197b9
h: refs/heads/master
i:
  323729: 3665593
  323727: a36d1ef
v: v3
  • Loading branch information
Namhyung Kim authored and Arnaldo Carvalho de Melo committed Aug 22, 2012
1 parent 3c7beb3 commit 73ce7bf
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bffddffde7f9bd093909235a25dbb806fe639dde
refs/heads/master: 2f197b9d7eeaa723a80243610956fe4a17e7b5a4
43 changes: 43 additions & 0 deletions trunk/tools/lib/traceevent/event-parse.c
Original file line number Diff line number Diff line change
Expand Up @@ -4795,6 +4795,49 @@ enum pevent_errno pevent_parse_event(struct pevent *pevent, const char *buf,
return ret;
}

#undef _PE
#define _PE(code, str) str
static const char * const pevent_error_str[] = {
PEVENT_ERRORS
};
#undef _PE

int pevent_strerror(struct pevent *pevent, enum pevent_errno errnum,
char *buf, size_t buflen)
{
int idx;
const char *msg;

if (errnum >= 0) {
strerror_r(errnum, buf, buflen);
return 0;
}

if (errnum <= __PEVENT_ERRNO__START ||
errnum >= __PEVENT_ERRNO__END)
return -1;

idx = errnum - __PEVENT_ERRNO__START;
msg = pevent_error_str[idx];

switch (errnum) {
case PEVENT_ERRNO__MEM_ALLOC_FAILED:
case PEVENT_ERRNO__PARSE_EVENT_FAILED:
case PEVENT_ERRNO__READ_ID_FAILED:
case PEVENT_ERRNO__READ_FORMAT_FAILED:
case PEVENT_ERRNO__READ_PRINT_FAILED:
case PEVENT_ERRNO__OLD_FTRACE_ARG_FAILED:
snprintf(buf, buflen, "%s", msg);
break;

default:
/* cannot reach here */
break;
}

return 0;
}

int get_field_val(struct trace_seq *s, struct format_field *field,
const char *name, struct pevent_record *record,
unsigned long long *val, int err)
Expand Down
20 changes: 14 additions & 6 deletions trunk/tools/lib/traceevent/event-parse.h
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,16 @@ enum pevent_flag {
PEVENT_NSEC_OUTPUT = 1, /* output in NSECS */
};

#define PEVENT_ERRORS \
_PE(MEM_ALLOC_FAILED, "failed to allocate memory"), \
_PE(PARSE_EVENT_FAILED, "failed to parse event"), \
_PE(READ_ID_FAILED, "failed to read event id"), \
_PE(READ_FORMAT_FAILED, "failed to read event format"), \
_PE(READ_PRINT_FAILED, "failed to read event print fmt"), \
_PE(OLD_FTRACE_ARG_FAILED,"failed to allocate field name for ftrace")

#undef _PE
#define _PE(__code, __str) PEVENT_ERRNO__ ## __code
enum pevent_errno {
PEVENT_ERRNO__SUCCESS = 0,

Expand All @@ -357,15 +367,11 @@ enum pevent_errno {
*/
__PEVENT_ERRNO__START = -100000,

PEVENT_ERRNO__MEM_ALLOC_FAILED = __PEVENT_ERRNO__START,
PEVENT_ERRNO__PARSE_EVENT_FAILED,
PEVENT_ERRNO__READ_ID_FAILED,
PEVENT_ERRNO__READ_FORMAT_FAILED,
PEVENT_ERRNO__READ_PRINT_FAILED,
PEVENT_ERRNO__OLD_FTRACE_ARG_FAILED,
PEVENT_ERRORS,

__PEVENT_ERRNO__END,
};
#undef _PE

struct cmdline;
struct cmdline_list;
Expand Down Expand Up @@ -583,6 +589,8 @@ int pevent_data_pid(struct pevent *pevent, struct pevent_record *rec);
const char *pevent_data_comm_from_pid(struct pevent *pevent, int pid);
void pevent_event_info(struct trace_seq *s, struct event_format *event,
struct pevent_record *record);
int pevent_strerror(struct pevent *pevent, enum pevent_errno errnum,
char *buf, size_t buflen);

struct event_format **pevent_list_events(struct pevent *pevent, enum event_sort_type);
struct format_field **pevent_event_common_fields(struct event_format *event);
Expand Down

0 comments on commit 73ce7bf

Please sign in to comment.