summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2014-01-30 16:32:21 +0800
committerJeremy Kerr <jk@ozlabs.org>2014-01-30 21:59:10 +0800
commit95a566908a5e02c51bd2af6b468df3fb9ad1bf75 (patch)
treeb1152eaef4af8aa874da0e3389d03b89602453c5
parentaa530148044a7c6d7ec7b6a32672cc69d53979b2 (diff)
downloadpetitboot-95a566908a5e02c51bd2af6b468df3fb9ad1bf75.zip
petitboot-95a566908a5e02c51bd2af6b468df3fb9ad1bf75.tar.gz
discover: Add DEVICE_TYPE_ANY for matching any device
Currently, If we want disable all but a specific device type from default boot, we need to add a negative priority for all other devices. This change adds a DEVICE_TYPE_ANY definition, to allow a simpler way to express "only boot a specific type" by default behaviour. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
-rw-r--r--discover/device-handler.c3
-rw-r--r--lib/types/types.h1
-rw-r--r--ui/test/discover-test.c2
3 files changed, 5 insertions, 1 deletions
diff --git a/discover/device-handler.c b/discover/device-handler.c
index a271390..b083af4 100644
--- a/discover/device-handler.c
+++ b/discover/device-handler.c
@@ -372,7 +372,8 @@ static int default_timeout(void *arg)
static bool priority_match(struct boot_priority *prio,
struct discover_boot_option *opt)
{
- return prio->type == opt->device->device->type;
+ return prio->type == opt->device->device->type ||
+ prio->type == DEVICE_TYPE_ANY;
}
static int default_option_priority(struct discover_boot_option *opt)
diff --git a/lib/types/types.h b/lib/types/types.h
index a1065ee..1293193 100644
--- a/lib/types/types.h
+++ b/lib/types/types.h
@@ -9,6 +9,7 @@ enum device_type {
DEVICE_TYPE_NETWORK,
DEVICE_TYPE_DISK,
DEVICE_TYPE_OPTICAL,
+ DEVICE_TYPE_ANY,
DEVICE_TYPE_UNKNOWN,
};
diff --git a/ui/test/discover-test.c b/ui/test/discover-test.c
index 576f293..363a289 100644
--- a/ui/test/discover-test.c
+++ b/ui/test/discover-test.c
@@ -12,6 +12,8 @@ static const char *device_type_string(enum device_type type)
return "network";
case DEVICE_TYPE_OPTICAL:
return "optical";
+ case DEVICE_TYPE_ANY:
+ return "any";
case DEVICE_TYPE_UNKNOWN:
return "unknown";
}
OpenPOWER on IntegriCloud