summaryrefslogtreecommitdiff
path: root/src/udev/udev-builtin.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2018-10-14 03:09:13 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2018-10-23 18:28:38 +0900
commitc45b369dd18b57afacd98e92007d76533d2fb474 (patch)
treea51897f306c27ae103b6a6f37581bb7da288dcab /src/udev/udev-builtin.c
parentd277e339163120b1b0d222e346a7d460695005a6 (diff)
downloadsystemd-c45b369dd18b57afacd98e92007d76533d2fb474.tar.gz
udev-builtin: modernize code a bit
- introduce _UDEV_BUILTIN_INVALID, - use _UDEV_BUILTIN_MAX where applicable, - add several assertions.
Diffstat (limited to 'src/udev/udev-builtin.c')
-rw-r--r--src/udev/udev-builtin.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c
index ef844a2d17..53f70dbfb4 100644
--- a/src/udev/udev-builtin.c
+++ b/src/udev/udev-builtin.c
@@ -11,7 +11,7 @@
static bool initialized;
-static const struct udev_builtin *builtins[] = {
+static const struct udev_builtin *builtins[_UDEV_BUILTIN_MAX] = {
#if HAVE_BLKID
[UDEV_BUILTIN_BLKID] = &udev_builtin_blkid,
#endif
@@ -37,7 +37,7 @@ void udev_builtin_init(void) {
if (initialized)
return;
- for (i = 0; i < ELEMENTSOF(builtins); i++)
+ for (i = 0; i < _UDEV_BUILTIN_MAX; i++)
if (builtins[i] && builtins[i]->init)
builtins[i]->init();
@@ -50,7 +50,7 @@ void udev_builtin_exit(void) {
if (!initialized)
return;
- for (i = 0; i < ELEMENTSOF(builtins); i++)
+ for (i = 0; i < _UDEV_BUILTIN_MAX; i++)
if (builtins[i] && builtins[i]->exit)
builtins[i]->exit();
@@ -60,7 +60,7 @@ void udev_builtin_exit(void) {
bool udev_builtin_validate(void) {
unsigned i;
- for (i = 0; i < ELEMENTSOF(builtins); i++)
+ for (i = 0; i < _UDEV_BUILTIN_MAX; i++)
if (builtins[i] && builtins[i]->validate && builtins[i]->validate())
return true;
return false;
@@ -69,12 +69,14 @@ bool udev_builtin_validate(void) {
void udev_builtin_list(void) {
unsigned i;
- for (i = 0; i < ELEMENTSOF(builtins); i++)
+ for (i = 0; i < _UDEV_BUILTIN_MAX; i++)
if (builtins[i])
fprintf(stderr, " %-14s %s\n", builtins[i]->name, builtins[i]->help);
}
const char *udev_builtin_name(enum udev_builtin_cmd cmd) {
+ assert(cmd >= 0 && cmd < _UDEV_BUILTIN_MAX);
+
if (!builtins[cmd])
return NULL;
@@ -82,6 +84,8 @@ const char *udev_builtin_name(enum udev_builtin_cmd cmd) {
}
bool udev_builtin_run_once(enum udev_builtin_cmd cmd) {
+ assert(cmd >= 0 && cmd < _UDEV_BUILTIN_MAX);
+
if (!builtins[cmd])
return false;
@@ -96,15 +100,20 @@ enum udev_builtin_cmd udev_builtin_lookup(const char *command) {
command += strspn(command, WHITESPACE);
n = strcspn(command, WHITESPACE);
- for (i = 0; i < ELEMENTSOF(builtins); i++)
+ for (i = 0; i < _UDEV_BUILTIN_MAX; i++)
if (builtins[i] && strneq(builtins[i]->name, command, n))
return i;
- return UDEV_BUILTIN_MAX;
+
+ return _UDEV_BUILTIN_INVALID;
}
int udev_builtin_run(sd_device *dev, enum udev_builtin_cmd cmd, const char *command, bool test) {
_cleanup_strv_free_ char **argv = NULL;
+ assert(dev);
+ assert(cmd >= 0 && cmd < _UDEV_BUILTIN_MAX);
+ assert(command);
+
if (!builtins[cmd])
return -EOPNOTSUPP;
@@ -120,6 +129,9 @@ int udev_builtin_run(sd_device *dev, enum udev_builtin_cmd cmd, const char *comm
int udev_builtin_add_property(sd_device *dev, bool test, const char *key, const char *val) {
int r;
+ assert(dev);
+ assert(key);
+
r = device_add_property(dev, key, val);
if (r < 0)
return r;