kmodloader: support loading modules from a different prefix
authorJo-Philipp Wich <jow@openwrt.org>
Fri, 26 Jul 2013 08:57:01 +0000 (10:57 +0200)
committerJo-Philipp Wich <jow@openwrt.org>
Fri, 26 Jul 2013 08:57:01 +0000 (10:57 +0200)
kmodloader.c

index 049a868dca7ca6d5603dd10b33ae42f27eb106ff..49899b3ade0ef5b418e60005135d107a6dd09266 100644 (file)
@@ -56,6 +56,7 @@ struct module {
 };
 
 static struct avl_tree modules;
+static char *prefix = "";
 
 static struct module *find_module(const char *name)
 {
@@ -82,7 +83,7 @@ static char* get_module_path(char *name)
                return name;
 
        uname(&ver);
-       snprintf(path, 256, DEF_MOD_PATH "%s.ko", ver.release, name);
+       snprintf(path, 256, "%s" DEF_MOD_PATH "%s.ko", prefix, ver.release, name);
 
        if (!stat(path, &s))
                return path;
@@ -94,7 +95,7 @@ static char* get_module_path(char *name)
                t++;
        }
 
-       snprintf(path, 256, DEF_MOD_PATH "%s.ko", ver.release, name);
+       snprintf(path, 256, "%s" DEF_MOD_PATH "%s.ko", prefix, ver.release, name);
 
        if (!stat(path, &s))
                return path;
@@ -610,6 +611,9 @@ static int main_loader(int argc, char **argv)
        if (argc > 1)
                dir = argv[1];
 
+       if (argc > 2)
+               prefix = argv[2];
+
        path = malloc(strlen(dir) + 2);
        strcpy(path, dir);
        strcat(path, "*");