summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Pargmann <mpa@pengutronix.de>2016-02-17 12:28:18 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2016-02-18 16:10:11 +0100
commit7290110f1a6f4643beb7695ba7d26e472f8290c6 (patch)
treebc8c2452d1959fb9ff4557c981eaacdec2622b1a
parent473da9de5b9b5e0266767c1bdf5fc8882fb43a16 (diff)
downloadbarebox-7290110f1a6f4643beb7695ba7d26e472f8290c6.tar.gz
barebox-7290110f1a6f4643beb7695ba7d26e472f8290c6.tar.xz
bbu: Add function to check if an update handler exists
This adds a function to check for the existence of an update handler based on the supplied bbu_data. Signed-off-by: Markus Pargmann <mpa@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--common/bbu.c14
-rw-r--r--include/bbu.h2
2 files changed, 16 insertions, 0 deletions
diff --git a/common/bbu.c b/common/bbu.c
index bf3790d13f..a7f6b4b851 100644
--- a/common/bbu.c
+++ b/common/bbu.c
@@ -111,6 +111,20 @@ static struct bbu_handler *bbu_find_handler_by_device(const char *devicepath)
return NULL;
}
+bool barebox_update_handler_exists(struct bbu_data *data)
+{
+ struct bbu_handler *handler;
+
+ handler = bbu_find_handler_by_device(data->devicefile);
+ if (handler)
+ return true;
+
+ if (!data->handler_name)
+ return false;
+
+ return !bbu_find_handler(data->handler_name);
+}
+
/*
* do a barebox update with data from *data
*/
diff --git a/include/bbu.h b/include/bbu.h
index 7277911718..0fe7a1a9bc 100644
--- a/include/bbu.h
+++ b/include/bbu.h
@@ -36,6 +36,8 @@ int bbu_confirm(struct bbu_data *);
int barebox_update(struct bbu_data *);
+bool barebox_update_handler_exists(struct bbu_data *);
+
void bbu_handlers_list(void);
#ifdef CONFIG_BAREBOX_UPDATE