static enum print_line_t kmemtrace_print_alloc_user(struct trace_iterator *iter, int flags, struct trace_event *event) { struct trace_seq *s = &iter->seq; struct kmemtrace_alloc_entry *entry; struct kmemtrace_user_event *ev; struct kmemtrace_user_event_alloc *ev_alloc; trace_assign_type(entry, iter->ent); ev = trace_seq_reserve(s, sizeof(*ev)); if (!ev) return TRACE_TYPE_PARTIAL_LINE; ev->event_id = KMEMTRACE_USER_ALLOC; ev->type_id = entry->type_id; ev->event_size = sizeof(*ev) + sizeof(*ev_alloc); ev->cpu = iter->cpu; ev->timestamp = iter->ts; ev->call_site = entry->call_site; ev->ptr = (unsigned long)entry->ptr; ev_alloc = trace_seq_reserve(s, sizeof(*ev_alloc)); if (!ev_alloc) return TRACE_TYPE_PARTIAL_LINE; ev_alloc->bytes_req = entry->bytes_req; ev_alloc->bytes_alloc = entry->bytes_alloc; ev_alloc->gfp_flags = entry->gfp_flags; ev_alloc->node = entry->node; return TRACE_TYPE_HANDLED; }
static enum print_line_t kmemtrace_print_free_user(struct trace_iterator *iter, struct kmemtrace_free_entry *entry) { struct trace_seq *s = &iter->seq; struct kmemtrace_user_event *ev; ev = trace_seq_reserve(s, sizeof(*ev)); if (!ev) return TRACE_TYPE_PARTIAL_LINE; ev->event_id = KMEMTRACE_USER_FREE; ev->type_id = entry->type_id; ev->event_size = sizeof(*ev); ev->cpu = iter->cpu; ev->timestamp = iter->ts; ev->call_site = entry->call_site; ev->ptr = (unsigned long)entry->ptr; return TRACE_TYPE_HANDLED; }