From de34e4375565cbe1b60c2d99afddfb6c7c45b3ad Mon Sep 17 00:00:00 2001
From: Eric Andersen <andersen@codepoet.org>
Date: Sun, 10 Sep 2000 16:16:00 +0000
Subject: MAke lsmod act just like modutils lsmod, by printing which modules
 use other modules, and state info like (deleted) and such.  -Erik

---
 lsmod.c          | 20 ++++++++++++++++++++
 modutils/lsmod.c | 20 ++++++++++++++++++++
 2 files changed, 40 insertions(+)

diff --git a/lsmod.c b/lsmod.c
index 2a238cd23..945f420e0 100644
--- a/lsmod.c
+++ b/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)");
+		}
 	}
 
 
diff --git a/modutils/lsmod.c b/modutils/lsmod.c
index 2a238cd23..945f420e0 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)");
+		}
 	}
 
 
-- 
cgit v1.2.3