On Thu, 2009-09-10 at 09:21 -0400, Jon Masters wrote:
> On Thu, 2009-09-10 at 14:19 +0200, Kay Sievers wrote:
> > On Thu, Sep 10, 2009 at 14:11, Michal Marek <[email protected]> wrote:
> > > Andreas Robinson napsal(a):
> 
> > > My current /lib/modules/`uname -r`/modules.builtin is 129 lines, I'm not
> > > sure I want to see additional 129 lines each time I run lsmod. What
> > > about some 'lsmod --show-builtin' ?
> > 
> > Oh well, before we moved all to built-in in the kernel the list was
> > that long as well. I think "grep is your friend" and we should not
> > care and just print it. The less difference between built-in and
> > module the better.
> 
> I concur. I think you can grep or pass through a pager easy enough.
> 
> Jon.
> 
> 

A compromise? List the builtins first?

>From bf7242f46c54f2db32fded00af098ec6d872d7d0 Mon Sep 17 00:00:00 2001
From: Andreas Robinson <[email protected]>
Date: Thu, 10 Sep 2009 15:13:20 +0200
Subject: [PATCH] lsmod: print built-in modules


Signed-off-by: Andreas Robinson <[email protected]>
---
 lsmod.c |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/lsmod.c b/lsmod.c
index 1fd2ec4..80401b4 100644
--- a/lsmod.c
+++ b/lsmod.c
@@ -26,6 +26,8 @@
 #include <errno.h>
 #include <ctype.h>
 #include <asm/unistd.h>
+#include <limits.h>
+#include <sys/utsname.h>
 
 #include "testing.h"
 
@@ -37,19 +39,40 @@ static void print_usage(const char *progname)
 
 int main(int argc, char *argv[])
 {
+       char fname[PATH_MAX];
        char line[4096];
        FILE *file;
+       struct utsname buf;
 
        if (argc != 1)
                print_usage("lsmod");
 
+       printf("Module                  Size  Used by\n");
+
+       uname(&buf);
+       snprintf(fname, sizeof(fname), "/lib/modules/%s/modules.builtin",
+               buf.release);
+       file = fopen(fname, "r");
+       while (file && fgets(line, sizeof(line), file)) {
+               char *modname, *ext;
+
+               modname = strrchr(line, '/');
+               if (modname) {
+                       ext = strrchr(modname, '.');
+                       if (ext)
+                               *ext = '\0';
+                       printf("%-19s        -  - [builtin]\n", modname+1);
+               }
+       }
+       if (file)
+               fclose(file);
+
        file = fopen("/proc/modules", "r");
        if (!file) {
                perror("Opening /proc/modules");
                exit(1);
        }
 
-       printf("Module                  Size  Used by\n");
        while (fgets(line, sizeof(line), file)) {
                char *tok;
 
-- 
1.6.0.4


--
To unsubscribe from this list: send the line "unsubscribe linux-modules" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to