summaryrefslogtreecommitdiff
path: root/modutils
diff options
context:
space:
mode:
authorEric Andersen2000-09-10 16:16:00 +0000
committerEric Andersen2000-09-10 16:16:00 +0000
commitde34e4375565cbe1b60c2d99afddfb6c7c45b3ad (patch)
tree428572d075b1b06dbe7ebe1f48f64becdc380a7c /modutils
parentcbb61c78ae97e5e205cb4403f4f458a36ffec582 (diff)
downloadbusybox-de34e4375565cbe1b60c2d99afddfb6c7c45b3ad.zip
busybox-de34e4375565cbe1b60c2d99afddfb6c7c45b3ad.tar.gz
MAke lsmod act just like modutils lsmod, by printing which modules use
other modules, and state info like (deleted) and such. -Erik
Diffstat (limited to 'modutils')
-rw-r--r--modutils/lsmod.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/modutils/lsmod.c b/modutils/lsmod.c
index 2a238cd..945f420 100644
--- a/modutils/lsmod.c
+++ b/modutils/lsmod.c
@@ -54,6 +54,13 @@ int query_module(const char *name, int which, void *buf, size_t bufsize,
#define QM_SYMBOLS 4
#define QM_INFO 5
+/* Bits of module.flags. */
+#define NEW_MOD_RUNNING 1
+#define NEW_MOD_DELETED 2
+#define NEW_MOD_AUTOCLEAN 4
+#define NEW_MOD_VISITED 8
+#define NEW_MOD_USED_ONCE 16
+#define NEW_MOD_INITIALIZING 64
extern int lsmod_main(int argc, char **argv)
@@ -95,6 +102,19 @@ extern int lsmod_main(int argc, char **argv)
}
if (count) printf("]");
printf("\n");
+
+ if (info.flags & NEW_MOD_DELETED)
+ printf(" (deleted)");
+ else if (info.flags & NEW_MOD_INITIALIZING)
+ printf(" (initializing)");
+ else if (!(info.flags & NEW_MOD_RUNNING))
+ printf(" (uninitialized)");
+ else {
+ if (info.flags & NEW_MOD_AUTOCLEAN)
+ printf(" (autoclean)");
+ if (!(info.flags & NEW_MOD_USED_ONCE))
+ printf(" (unused)");
+ }
}