mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-08 19:11:53 +00:00
trace: Update the file header
It seems better to put the TEXT_BASE value in the file header rather than in an entry record. While it is true that there is a separate base for pre-relocation, this can be handled by using offsets in the file. It is useful to have a version number in case we need to change the trace format again. Update the header to make these changes. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
90ad4e28e8
commit
d9044e5363
2 changed files with 14 additions and 17 deletions
19
lib/trace.c
19
lib/trace.c
|
@ -118,18 +118,6 @@ static void notrace add_ftrace(void *func_ptr, void *caller, ulong flags)
|
|||
hdr->ftrace_count++;
|
||||
}
|
||||
|
||||
static void notrace add_textbase(void)
|
||||
{
|
||||
if (hdr->ftrace_count < hdr->ftrace_size) {
|
||||
struct trace_call *rec = &hdr->ftrace[hdr->ftrace_count];
|
||||
|
||||
rec->func = CONFIG_TEXT_BASE;
|
||||
rec->caller = 0;
|
||||
rec->flags = FUNCF_TEXTBASE;
|
||||
}
|
||||
hdr->ftrace_count++;
|
||||
}
|
||||
|
||||
/**
|
||||
* __cyg_profile_func_enter() - record function entry
|
||||
*
|
||||
|
@ -278,8 +266,11 @@ int trace_list_calls(void *buff, size_t buff_size, size_t *needed)
|
|||
|
||||
/* Update the header */
|
||||
if (output_hdr) {
|
||||
memset(output_hdr, '\0', sizeof(*output_hdr));
|
||||
output_hdr->rec_count = upto;
|
||||
output_hdr->type = TRACE_CHUNK_CALLS;
|
||||
output_hdr->version = TRACE_VERSION;
|
||||
output_hdr->text_base = CONFIG_TEXT_BASE;
|
||||
}
|
||||
|
||||
/* Work out how must of the buffer we used */
|
||||
|
@ -385,10 +376,9 @@ int notrace trace_init(void *buff, size_t buff_size)
|
|||
/* Use any remaining space for the timed function trace */
|
||||
hdr->ftrace = (struct trace_call *)(buff + needed);
|
||||
hdr->ftrace_size = (buff_size - needed) / sizeof(*hdr->ftrace);
|
||||
add_textbase();
|
||||
hdr->depth_limit = CONFIG_TRACE_CALL_DEPTH_LIMIT;
|
||||
|
||||
puts("trace: enabled\n");
|
||||
hdr->depth_limit = CONFIG_TRACE_CALL_DEPTH_LIMIT;
|
||||
trace_enabled = 1;
|
||||
trace_inited = 1;
|
||||
|
||||
|
@ -426,7 +416,6 @@ int notrace trace_early_init(void)
|
|||
/* Use any remaining space for the timed function trace */
|
||||
hdr->ftrace = (struct trace_call *)((char *)hdr + needed);
|
||||
hdr->ftrace_size = (buff_size - needed) / sizeof(*hdr->ftrace);
|
||||
add_textbase();
|
||||
hdr->depth_limit = CONFIG_TRACE_EARLY_CALL_DEPTH_LIMIT;
|
||||
printf("trace: early enable at %08x\n", CONFIG_TRACE_EARLY_ADDR);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue