diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2013-07-26 10:57:01 +0200 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2013-07-26 10:57:01 +0200 |
commit | 4e7f3e77e28863f23c1b43f667aa236cbc474c07 (patch) | |
tree | 33ccdbb3842bfe03ff8b2470abc9370ef6e16151 /kmodloader.c | |
parent | 3637b9f8e7097d38a17d5b6ffa9a4d6eb1249eb3 (diff) | |
download | ubox-4e7f3e77e28863f23c1b43f667aa236cbc474c07.tar.gz |
kmodloader: support loading modules from a different prefix
Diffstat (limited to 'kmodloader.c')
-rw-r--r-- | kmodloader.c | 8 |
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, "*"); |