Add generic poll infrastructure
Barebox does not have interrupt functionality. Nevertheless it's
sometimes useful to periodically call functions, like for example
a heartbeat LED or watchdog reset. Instead of cluttering the code
with calls to these functions this patch adds a generic polling
infrastructure. Code which might run for longer now can call
poller_call() periodically which in turn will call all registered
pollers.
This patch adds a call to poller_call in two generic pathes. First
of them is getc() which covers waiting for uart input. Second is
ctrlc() which should be called anyway from code which might run
for longer. So instead adding poller_call directly to your code,
consider checking ctrlc instead which also gives additional
convenience to the user.
The poller code is safe against reentrancy which means that it's
safe to call poller_call inside a poller.

Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
WIP_next-LS master next stable/v2013.05 stable/v2013.06 stable/v2013.07 stable/v2013.08 stable/v2013.10 stable/v2014.05 stable/v2014.06 stable/v2014.07 stable/v2014.08 stable/v2014.09 stable/v2014.10 stable/v2014.11 stable/v2014.12 stable/v2015.01 stable/v2015.02 stable/v2017.05 stable/v2017.06 stable/v2017.07 stable/v2017.11 stable/v2018.07 stable/v2018.09 stable/v2018.12 v2011.03-stable work/fit-support v2020.07.0 v2020.06.0 v2020.05.0 v2020.04.0 v2020.03.0 v2020.02.0 v2020.01.0 v2019.12.0 v2019.11.0 v2019.10.0 v2019.09.0 v2019.08.1 v2019.08.0 v2019.07.0 v2019.06.1 v2019.06.0 v2019.05.0 v2019.04.0 v2019.03.0 v2019.02.0 v2019.01.0 v2018.12.0 v2018.11.0 v2018.10.0 v2018.09.1 v2018.09.0 v2018.08.1 v2018.08.0 v2018.07.2 v2018.07.1 v2018.07.0 v2018.06.0 v2018.05.0 v2018.04.0 v2018.03.0 v2018.02.0 v2018.01.0 v2017.12.0 v2017.11.0 v2017.10.0 v2017.09.0 v2017.08.0 v2017.07.1 v2017.07.0 v2017.06.2 v2017.06.1 v2017.06.0 v2017.05.4 v2017.05.3 v2017.05.2 v2017.05.1 v2017.05.0 v2017.04.0 v2017.03.0 v2017.02.0 v2017.01.0 v2016.11.0 v2016.10.0 v2016.09.0 v2016.08.0 v2016.07.0 v2016.06.0 v2016.05.0 v2016.04.0 v2016.03.0 v2016.02.0 v2016.01.0 v2015.12.0 v2015.11.0 v2015.10.0 v2015.09.0 v2015.08.0 v2015.07.0 v2015.06.0 v2015.05.0 v2015.04.0 v2015.03.0 v2015.02.0 v2015.01.0 v2014.12.0 v2014.11.0 v2014.10.0 v2014.09.0 v2014.08.0 v2014.07.0 v2014.06.0 v2014.05.0 v2014.04.0 v2014.03.0 v2014.02.0 v2014.01.0 v2013.12.0 v2013.11.0 v2013.10.1 v2013.10.0 v2013.09.0 v2013.08.1 v2013.08.0 v2013.07.0 v2013.06.1 v2013.06.0 v2013.05.1 v2013.05.0 v2013.04.0 v2013.03.0 v2013.02.0 v2013.01.0 v2012.12.1 v2012.12.0 v2012.11.0 v2012.10.0 v2012.09.0 v2012.08.0 v2012.07.0 v2012.06.0 v2012.05.0 v2012.04.0 v2012.03.0 v2012.02.0 v2012.01.0 v2011.12.0 v2011.11.0 v2011.10.0 v2011.09.0 v2011.08.0 v2011.07.0 v2011.06.0 v2011.05.0 v2011.04.0-phytec-pcm049 v2011.04.0 v2011.03.1 v2011.03.0 v2011.02.0
1 parent f4b1ebd commit 0277a663bcbebe5be82dc88235fcd0a1465bd5e8
@Marc Kleine-Budde Marc Kleine-Budde authored on 18 Dec 2010
Sascha Hauer committed on 20 Dec 2010
Showing 5 changed files
View
common/Kconfig
View
common/Makefile
View
common/console.c
View
common/poller.c 0 → 100644
View
include/poller.h 0 → 100644