diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-10-14 03:09:13 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-10-23 18:28:38 +0900 |
commit | c45b369dd18b57afacd98e92007d76533d2fb474 (patch) | |
tree | a51897f306c27ae103b6a6f37581bb7da288dcab /src/udev/udev-builtin.c | |
parent | d277e339163120b1b0d222e346a7d460695005a6 (diff) | |
download | systemd-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.c | 26 |
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; |