From: Lucas De Marchi Date: Thu, 9 Oct 2014 03:43:01 +0000 (-0300) Subject: Move alias_normalize() to shared X-Git-Tag: v19~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2b0104fe3c47a9746b6296ed5646cd39e2ae010d;p=thirdparty%2Fkmod.git Move alias_normalize() to shared --- diff --git a/libkmod/libkmod-util.c b/libkmod/libkmod-util.c index 0a904b18..ec6ee40f 100644 --- a/libkmod/libkmod-util.c +++ b/libkmod/libkmod-util.c @@ -47,45 +47,6 @@ static const struct kmod_ext { { } }; -inline int alias_normalize(const char *alias, char buf[PATH_MAX], size_t *len) -{ - size_t s; - - for (s = 0; s < PATH_MAX - 1; s++) { - const char c = alias[s]; - switch (c) { - case '-': - buf[s] = '_'; - break; - case ']': - return -EINVAL; - case '[': - while (alias[s] != ']' && alias[s] != '\0') { - buf[s] = alias[s]; - s++; - } - - if (alias[s] != ']') - return -EINVAL; - - buf[s] = alias[s]; - break; - case '\0': - goto finish; - default: - buf[s] = c; - } - } - -finish: - buf[s] = '\0'; - - if (len) - *len = s; - - return 0; -} - inline char *modname_normalize(const char *modname, char buf[PATH_MAX], size_t *len) { diff --git a/libkmod/libkmod-util.h b/libkmod/libkmod-util.h index 36684374..46db70d8 100644 --- a/libkmod/libkmod-util.h +++ b/libkmod/libkmod-util.h @@ -8,7 +8,6 @@ #define KMOD_EXTENSION_UNCOMPRESSED ".ko" -int alias_normalize(const char *alias, char buf[PATH_MAX], size_t *len) _must_check_ __attribute__((nonnull(1,2))); char *modname_normalize(const char *modname, char buf[PATH_MAX], size_t *len) __attribute__((nonnull(1, 2))); char *path_to_modname(const char *path, char buf[PATH_MAX], size_t *len) __attribute__((nonnull(2))); bool path_ends_with_kmod_ext(const char *path, size_t len) __attribute__((nonnull(1))); diff --git a/shared/util.c b/shared/util.c index 8491b18c..f6ce61d1 100644 --- a/shared/util.c +++ b/shared/util.c @@ -60,6 +60,46 @@ char *strchr_replace(char *s, int c, char r) return s; } +/* module-related functions */ +/* ************************************************************************ */ +int alias_normalize(const char *alias, char buf[static PATH_MAX], size_t *len) +{ + size_t i; + + for (i = 0; i < PATH_MAX - 1; i++) { + const char c = alias[i]; + switch (c) { + case '-': + buf[i] = '_'; + break; + case ']': + return -EINVAL; + case '[': + while (alias[i] != ']' && alias[i] != '\0') { + buf[i] = alias[i]; + i++; + } + + if (alias[i] != ']') + return -EINVAL; + + buf[i] = alias[i]; + break; + case '\0': + goto finish; + default: + buf[i] = c; + } + } + +finish: + buf[i] = '\0'; + if (len) + *len = i; + + return 0; +} + /* read-like and fread-like functions */ /* ************************************************************************ */ ssize_t read_str_safe(int fd, char *buf, size_t buflen) diff --git a/shared/util.h b/shared/util.h index 7fcb242e..53a2d295 100644 --- a/shared/util.h +++ b/shared/util.h @@ -16,6 +16,10 @@ char *strchr_replace(char *s, int c, char r); void *memdup(const void *p, size_t n) __attribute__((nonnull(1))); +/* module-related functions */ +/* ************************************************************************ */ +int alias_normalize(const char *alias, char buf[static PATH_MAX], size_t *len) _must_check_ __attribute__((nonnull(1,2))); + /* read-like and fread-like functions */ /* ************************************************************************ */ ssize_t read_str_safe(int fd, char *buf, size_t buflen) _must_check_ __attribute__((nonnull(2))); diff --git a/testsuite/test-util.c b/testsuite/test-util.c index 30032b7c..e45cac7c 100644 --- a/testsuite/test-util.c +++ b/testsuite/test-util.c @@ -23,9 +23,6 @@ #include -#include -#include - #include "testsuite.h" static int alias_1(const struct test *t)