diff options
author | Simon Glass <sjg@chromium.org> | 2012-09-28 08:56:36 +0000 |
---|---|---|
committer | Anatolij Gustschin <agust@denx.de> | 2012-10-02 22:39:33 +0200 |
commit | 0e9967735869a4e2bbc92d5d0eea0e2136180d49 (patch) | |
tree | d5a702bad60fa293a9fe6275b75bed8147979263 /include | |
parent | 094e06a523ba040f81857609f9d889b4b57ee151 (diff) | |
download | u-boot-imx-0e9967735869a4e2bbc92d5d0eea0e2136180d49.zip u-boot-imx-0e9967735869a4e2bbc92d5d0eea0e2136180d49.tar.gz u-boot-imx-0e9967735869a4e2bbc92d5d0eea0e2136180d49.tar.bz2 |
bootstage: Add time accumulation feature
Sometimes we want to add up the amount of time spent in a particular
activity when it is happening in a number of discrete chunks.
Add bootstage_start() to mark the start of an acitivity and
bootstage_accum() to accumulate the time since the last start. Calling
these function in pairs results in the accumulated time being collected.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/bootstage.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/bootstage.h b/include/bootstage.h index 64b2ec6..127c94f 100644 --- a/include/bootstage.h +++ b/include/bootstage.h @@ -247,6 +247,33 @@ ulong bootstage_error(enum bootstage_id id); ulong bootstage_mark_name(enum bootstage_id id, const char *name); +/** + * Mark the start of a bootstage activity. The end will be marked later with + * bootstage_accum() and at that point we accumulate the time taken. Calling + * this function turns the given id into a accumulator rather than and + * absolute mark in time. Accumulators record the total amount of time spent + * in an activty during boot. + * + * @param id Bootstage id to record this timestamp against + * @param name Textual name to display for this id in the report (maybe NULL) + * @return start timestamp in microseconds + */ +uint32_t bootstage_start(enum bootstage_id id, const char *name); + +/** + * Mark the end of a bootstage activity + * + * After previously marking the start of an activity with bootstage_start(), + * call this function to mark the end. You can call these functions in pairs + * as many times as you like. + * + * @param id Bootstage id to record this timestamp against + * @return time spent in this iteration of the activity (i.e. the time now + * less the start time recorded in the last bootstage_start() call + * with this id. + */ +uint32_t bootstage_accum(enum bootstage_id id); + /* Print a report about boot time */ void bootstage_report(void); |