[U-Boot] [PATCH 1/6] bootstage: Export bootstage_add_record() function

Simon Glass sjg at chromium.org
Fri Sep 28 20:56:35 CEST 2012


This function is not static, but not exported either. Add a prototype
in the header file and move the required enum to the header also.

Signed-off-by: Simon Glass <sjg at chromium.org>
---
 common/bootstage.c  |   16 ++++++----------
 include/bootstage.h |   17 +++++++++++++++++
 2 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/common/bootstage.c b/common/bootstage.c
index 4e01d92..3275499 100644
--- a/common/bootstage.c
+++ b/common/bootstage.c
@@ -33,13 +33,9 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-enum bootstage_flags {
-	BOOTSTAGEF_ERROR	= 1 << 0,	/* Error record */
-	BOOTSTAGEF_ALLOC	= 1 << 1,	/* Allocate an id */
-};
-
 struct bootstage_record {
 	ulong time_us;
+	uint32_t start_us;
 	const char *name;
 	int flags;		/* see enum bootstage_flags */
 	enum bootstage_id id;
@@ -49,10 +45,9 @@ static struct bootstage_record record[BOOTSTAGE_ID_COUNT] = { {1} };
 static int next_id = BOOTSTAGE_ID_USER;
 
 ulong bootstage_add_record(enum bootstage_id id, const char *name,
-			   int flags)
+			   int flags, ulong mark)
 {
 	struct bootstage_record *rec;
-	ulong mark = timer_get_boot_us();
 
 	if (flags & BOOTSTAGEF_ALLOC)
 		id = next_id++;
@@ -77,12 +72,13 @@ ulong bootstage_add_record(enum bootstage_id id, const char *name,
 
 ulong bootstage_mark(enum bootstage_id id)
 {
-	return bootstage_add_record(id, NULL, 0);
+	return bootstage_add_record(id, NULL, 0, timer_get_boot_us());
 }
 
 ulong bootstage_error(enum bootstage_id id)
 {
-	return bootstage_add_record(id, NULL, BOOTSTAGEF_ERROR);
+	return bootstage_add_record(id, NULL, BOOTSTAGEF_ERROR,
+				    timer_get_boot_us());
 }
 
 ulong bootstage_mark_name(enum bootstage_id id, const char *name)
@@ -91,7 +87,7 @@ ulong bootstage_mark_name(enum bootstage_id id, const char *name)
 
 	if (id == BOOTSTAGE_ID_ALLOC)
 		flags = BOOTSTAGEF_ALLOC;
-	return bootstage_add_record(id, name, flags);
+	return bootstage_add_record(id, name, flags, timer_get_boot_us());
 }
 
 static void print_time(unsigned long us_time)
diff --git a/include/bootstage.h b/include/bootstage.h
index a000538..64b2ec6 100644
--- a/include/bootstage.h
+++ b/include/bootstage.h
@@ -31,6 +31,12 @@
 #define CONFIG_BOOTSTAGE_USER_COUNT	20
 #endif
 
+/* Flags for each bootstage record */
+enum bootstage_flags {
+	BOOTSTAGEF_ERROR	= 1 << 0,	/* Error record */
+	BOOTSTAGEF_ALLOC	= 1 << 1,	/* Allocate an id */
+};
+
 /*
  * A list of boot stages that we know about. Each of these indicates the
  * state that we are at, and the action that we are about to perform. For
@@ -221,6 +227,17 @@ void show_boot_progress(int val);
 #ifdef CONFIG_BOOTSTAGE
 /* This is the full bootstage implementation */
 
+/**
+ * Add a new bootstage record
+ *
+ * @param id	Bootstage ID to use (ignored if flags & BOOTSTAGEF_ALLOC)
+ * @param name	Name of record, or NULL for none
+ * @param flags	Flags (BOOTSTAGEF_...)
+ * @param mark	Time to record in this record, in microseconds
+ */
+ulong bootstage_add_record(enum bootstage_id id, const char *name,
+			   int flags, ulong mark);
+
 /*
  * Mark a time stamp for the current boot stage.
  */
-- 
1.7.7.3



More information about the U-Boot mailing list