On Tue, Apr 13, 2021 at 12:34:49AM +0200, Ahmad Fatoum wrote: > Use case is e.g. board code that wants to register a client to light > status LEDs to indicate system state when no serial output is available. > This functionality doesn't increase code size due to linker GC when > CONFIG_PROGRESS_NOTIFIER is disabled. > > There is a generic progress notifier provided that just logs the > status. This could be shared with the booted kernel via pstore or > the log as a whole written to a system setup USB drive. > > Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> > --- > include/progress.h | 43 +++++++++++++++++++++++++++++++++++++++++++ > lib/Kconfig | 6 ++++++ > lib/show_progress.c | 28 ++++++++++++++++++++++++++++ > 3 files changed, 77 insertions(+) > > diff --git a/include/progress.h b/include/progress.h > index 50b15fb12b4c..7230bd3a9bd5 100644 > --- a/include/progress.h > +++ b/include/progress.h > @@ -3,6 +3,8 @@ > #define __PROGRSS_H > > #include <linux/types.h> > +#include <notifier.h> > +#include <errno.h> > > /* Initialize a progress bar. If max > 0 a one line progress > * bar is printed where 'max' corresponds to 100%. If max == 0 > @@ -15,4 +17,45 @@ void init_progression_bar(loff_t max); > */ > void show_progress(loff_t now); > > +extern struct notifier_head progress_notifier; > + > +enum progress_stage { > + PROGRESS_UNSPECIFIED = 0, > + PROGRESS_UPDATING, > + PROGRESS_UPDATE_SUCCESS, > + PROGRESS_UPDATE_FAIL, > +}; Neither the commit message nor the function names say it, but here it seems the progress is only used in context of a software update. Do you anticipate going other types of progress here as well? Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox