On 9/10/09, Andreas Robinson <[email protected]> wrote:
> 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);
This would be simpler using asprintf_nofail(). Also, you need to take
"modprobe -b /dir" and "modprobe -s kernel-version" into account.
> + 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';
filename2modname() ?
> + 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;
Thanks
Alan
--
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