aboutsummaryrefslogtreecommitdiff
path: root/modutils
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2016-12-23 15:12:27 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2016-12-23 15:13:16 +0100
commita1cd0d9849946e0627484ec6b6435837c853a113 (patch)
tree23c7c643bd0af2859beff3876bdbaa20953bdb5f /modutils
parentce3a98a222a2191ef4a22e90c49a51dfa7279e07 (diff)
downloadbusybox-a1cd0d9849946e0627484ec6b6435837c853a113.tar.gz
modprobe-small: make applets individually selectable
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'modutils')
-rw-r--r--modutils/depmod.c7
-rw-r--r--modutils/insmod.c5
-rw-r--r--modutils/lsmod.c11
-rw-r--r--modutils/modprobe-small.c24
-rw-r--r--modutils/modprobe.c11
-rw-r--r--modutils/rmmod.c5
6 files changed, 34 insertions, 29 deletions
diff --git a/modutils/depmod.c b/modutils/depmod.c
index b9347027e..cfa9abb1a 100644
--- a/modutils/depmod.c
+++ b/modutils/depmod.c
@@ -9,15 +9,16 @@
*/
//config:config DEPMOD
//config: bool "depmod"
-//config: default n
-//config: depends on !MODPROBE_SMALL
+//config: default y
//config: select PLATFORM_LINUX
//config: help
//config: depmod generates modules.dep (and potentially modules.alias
//config: and modules.symbols) that contain dependency information
//config: for modprobe.
-//applet:IF_DEPMOD(APPLET(depmod, BB_DIR_SBIN, BB_SUID_DROP))
+//kbuild:ifneq ($(CONFIG_MODPROBE_SMALL),y)
+//applet:IF_DEPMOD(IF_NOT_MODPROBE_SMALL(APPLET(depmod, BB_DIR_SBIN, BB_SUID_DROP)))
+//kbuild:endif
//kbuild:lib-$(CONFIG_DEPMOD) += depmod.o modutils.o
diff --git a/modutils/insmod.c b/modutils/insmod.c
index 2ebf4beb9..5949fe551 100644
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
@@ -9,14 +9,15 @@
//config:config INSMOD
//config: bool "insmod"
//config: default n
-//config: depends on !MODPROBE_SMALL
//config: select PLATFORM_LINUX
//config: help
//config: insmod is used to load specified modules in the running kernel.
-//applet:IF_INSMOD(APPLET(insmod, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_INSMOD(IF_NOT_MODPROBE_SMALL(APPLET(insmod, BB_DIR_SBIN, BB_SUID_DROP)))
+//kbuild:ifneq ($(CONFIG_MODPROBE_SMALL),y)
//kbuild:lib-$(CONFIG_INSMOD) += insmod.o modutils.o
+//kbuild:endif
#include "libbb.h"
#include "modutils.h"
diff --git a/modutils/lsmod.c b/modutils/lsmod.c
index ee85fb0fb..24589420a 100644
--- a/modutils/lsmod.c
+++ b/modutils/lsmod.c
@@ -9,25 +9,26 @@
*/
//config:config LSMOD
//config: bool "lsmod"
-//config: default n
-//config: depends on !MODPROBE_SMALL
+//config: default y
//config: select PLATFORM_LINUX
//config: help
//config: lsmod is used to display a list of loaded modules.
//config:
//config:config FEATURE_LSMOD_PRETTY_2_6_OUTPUT
//config: bool "Pretty output"
-//config: default n
-//config: depends on LSMOD
+//config: default y
+//config: depends on LSMOD && !MODPROBE_SMALL
//config: select PLATFORM_LINUX
//config: help
//config: This option makes output format of lsmod adjusted to
//config: the format of module-init-tools for Linux kernel 2.6.
//config: Increases size somewhat.
-//applet:IF_LSMOD(APPLET(lsmod, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_LSMOD(IF_NOT_MODPROBE_SMALL(APPLET(lsmod, BB_DIR_SBIN, BB_SUID_DROP)))
+//kbuild:ifneq ($(CONFIG_MODPROBE_SMALL),y)
//kbuild:lib-$(CONFIG_LSMOD) += lsmod.o modutils.o
+//kbuild:endif
//usage:#if !ENABLE_MODPROBE_SMALL
//usage:#define lsmod_trivial_usage
diff --git a/modutils/modprobe-small.c b/modutils/modprobe-small.c
index e3a349b4e..652ff4dfa 100644
--- a/modutils/modprobe-small.c
+++ b/modutils/modprobe-small.c
@@ -25,11 +25,11 @@
//config: help
//config: Check if the module is already loaded.
-//applet:IF_MODPROBE_SMALL(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP))
-//applet:IF_MODPROBE_SMALL(APPLET_ODDNAME(depmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, depmod))
-//applet:IF_MODPROBE_SMALL(APPLET_ODDNAME(insmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, insmod))
-//applet:IF_MODPROBE_SMALL(APPLET_ODDNAME(lsmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, lsmod))
-//applet:IF_MODPROBE_SMALL(APPLET_ODDNAME(rmmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, rmmod))
+//applet:IF_MODPROBE(IF_MODPROBE_SMALL(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP)))
+//applet:IF_DEPMOD(IF_MODPROBE_SMALL(APPLET_ODDNAME(depmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, depmod)))
+//applet:IF_INSMOD(IF_MODPROBE_SMALL(APPLET_ODDNAME(insmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, insmod)))
+//applet:IF_LSMOD(IF_MODPROBE_SMALL(APPLET_ODDNAME(lsmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, lsmod)))
+//applet:IF_RMMOD(IF_MODPROBE_SMALL(APPLET_ODDNAME(rmmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, rmmod)))
//kbuild:lib-$(CONFIG_MODPROBE_SMALL) += modprobe-small.o
@@ -930,7 +930,7 @@ int modprobe_main(int argc UNUSED_PARAM, char **argv)
IF_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE(char *options;)
/* are we lsmod? -> just dump /proc/modules */
- if ('l' == applet0) {
+ if (ENABLE_LSMOD && 'l' == applet0) {
xprint_and_close_file(xfopen_for_read("/proc/modules"));
return EXIT_SUCCESS;
}
@@ -940,14 +940,14 @@ int modprobe_main(int argc UNUSED_PARAM, char **argv)
/* Prevent ugly corner cases with no modules at all */
modinfo = xzalloc(sizeof(modinfo[0]));
- if ('i' != applet0) { /* not insmod */
+ if (!ENABLE_INSMOD || 'i' != applet0) { /* not insmod */
/* Goto modules directory */
xchdir(CONFIG_DEFAULT_MODULES_DIR);
}
uname(&uts); /* never fails */
/* depmod? */
- if ('d' == applet0) {
+ if (ENABLE_DEPMOD && 'd' == applet0) {
/* Supported:
* -n: print result to stdout
* -a: process all modules (default)
@@ -986,11 +986,11 @@ int modprobe_main(int argc UNUSED_PARAM, char **argv)
argv += optind;
/* are we rmmod? -> simulate modprobe -r */
- if ('r' == applet0) {
+ if (ENABLE_RMMOD && 'r' == applet0) {
option_mask32 |= OPT_r;
}
- if ('i' != applet0) { /* not insmod */
+ if (!ENABLE_INSMOD || 'i' != applet0) { /* not insmod */
/* Goto $VERSION directory */
xchdir(uts.release);
}
@@ -1014,7 +1014,7 @@ int modprobe_main(int argc UNUSED_PARAM, char **argv)
argv[1] = NULL;
#endif
- if ('i' == applet0) { /* insmod */
+ if (ENABLE_INSMOD && 'i' == applet0) { /* insmod */
size_t len;
void *map;
@@ -1034,7 +1034,7 @@ int modprobe_main(int argc UNUSED_PARAM, char **argv)
}
/* Try to load modprobe.dep.bb */
- if ('r' != applet0) { /* not rmmod */
+ if (!ENABLE_RMMOD || 'r' != applet0) { /* not rmmod */
load_dep_bb();
}
diff --git a/modutils/modprobe.c b/modutils/modprobe.c
index d404ef92f..09e3de6c3 100644
--- a/modutils/modprobe.c
+++ b/modutils/modprobe.c
@@ -9,8 +9,7 @@
*/
//config:config MODPROBE
//config: bool "modprobe"
-//config: default n
-//config: depends on !MODPROBE_SMALL
+//config: default y
//config: select PLATFORM_LINUX
//config: help
//config: Handle the loading of modules, and their dependencies on a high
@@ -18,8 +17,8 @@
//config:
//config:config FEATURE_MODPROBE_BLACKLIST
//config: bool "Blacklist support"
-//config: default n
-//config: depends on MODPROBE
+//config: default y
+//config: depends on MODPROBE && !MODPROBE_SMALL
//config: select PLATFORM_LINUX
//config: help
//config: Say 'y' here to enable support for the 'blacklist' command in
@@ -28,9 +27,11 @@
//config: hardware autodetection scripts to load modules like evdev, frame
//config: buffer drivers etc.
-//applet:IF_MODPROBE(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_MODPROBE(IF_NOT_MODPROBE_SMALL(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP)))
+//kbuild:ifneq ($(CONFIG_MODPROBE_SMALL),y)
//kbuild:lib-$(CONFIG_MODPROBE) += modprobe.o modutils.o
+//kbuild:endif
#include "libbb.h"
#include "modutils.h"
diff --git a/modutils/rmmod.c b/modutils/rmmod.c
index e0358838a..4c4d50885 100644
--- a/modutils/rmmod.c
+++ b/modutils/rmmod.c
@@ -10,14 +10,15 @@
//config:config RMMOD
//config: bool "rmmod"
//config: default n
-//config: depends on !MODPROBE_SMALL
//config: select PLATFORM_LINUX
//config: help
//config: rmmod is used to unload specified modules from the kernel.
-//applet:IF_RMMOD(APPLET(rmmod, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_RMMOD(IF_NOT_MODPROBE_SMALL(APPLET(rmmod, BB_DIR_SBIN, BB_SUID_DROP)))
+//kbuild:ifneq ($(CONFIG_MODPROBE_SMALL),y)
//kbuild:lib-$(CONFIG_RMMOD) += rmmod.o modutils.o
+//kbuild:endif
//usage:#if !ENABLE_MODPROBE_SMALL
//usage:#define rmmod_trivial_usage