mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 00:32:04 +02:00
bootstage: Allow marking a particular line of code
Add a function which allows a (file, function, line number) to be marked in bootstage. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Che-Liang Chiou <clchiou@chromium.org>
This commit is contained in:
@@ -30,6 +30,8 @@
|
||||
|
||||
#include <common.h>
|
||||
#include <libfdt.h>
|
||||
#include <malloc.h>
|
||||
#include <linux/compiler.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
@@ -117,6 +119,33 @@ ulong bootstage_mark_name(enum bootstage_id id, const char *name)
|
||||
return bootstage_add_record(id, name, flags, timer_get_boot_us());
|
||||
}
|
||||
|
||||
ulong bootstage_mark_code(const char *file, const char *func, int linenum)
|
||||
{
|
||||
char *str, *p;
|
||||
__maybe_unused char *end;
|
||||
int len = 0;
|
||||
|
||||
/* First work out the length we need to allocate */
|
||||
if (linenum != -1)
|
||||
len = 11;
|
||||
if (func)
|
||||
len += strlen(func);
|
||||
if (file)
|
||||
len += strlen(file);
|
||||
|
||||
str = malloc(len + 1);
|
||||
p = str;
|
||||
end = p + len;
|
||||
if (file)
|
||||
p += snprintf(p, end - p, "%s,", file);
|
||||
if (linenum != -1)
|
||||
p += snprintf(p, end - p, "%d", linenum);
|
||||
if (func)
|
||||
p += snprintf(p, end - p, ": %s", func);
|
||||
|
||||
return bootstage_mark_name(BOOTSTAGE_ID_ALLOC, str);
|
||||
}
|
||||
|
||||
uint32_t bootstage_start(enum bootstage_id id, const char *name)
|
||||
{
|
||||
struct bootstage_record *rec = &record[id];
|
||||
|
Reference in New Issue
Block a user