summaryrefslogtreecommitdiff
path: root/kmodloader.c
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2013-07-26 10:57:01 +0200
committerJo-Philipp Wich <jow@openwrt.org>2013-07-26 10:57:01 +0200
commit4e7f3e77e28863f23c1b43f667aa236cbc474c07 (patch)
tree33ccdbb3842bfe03ff8b2470abc9370ef6e16151 /kmodloader.c
parent3637b9f8e7097d38a17d5b6ffa9a4d6eb1249eb3 (diff)
downloadubox-4e7f3e77e28863f23c1b43f667aa236cbc474c07.tar.gz
kmodloader: support loading modules from a different prefix
Diffstat (limited to 'kmodloader.c')
-rw-r--r--kmodloader.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/kmodloader.c b/kmodloader.c
index 049a868..49899b3 100644
--- a/kmodloader.c
+++ b/kmodloader.c
@@ -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, "*");