source: trunk/mindi/get-modules.pl @ 900

Last change on this file since 900 was 900, checked in by Bruno Cornec, 14 years ago

Huge patch to introduce low level functions that will bw used everywhere (mr_free, mr_asprintf, ...)
Nearly linking now due to that.

  • Property svn:executable set to *
File size: 838 bytes
Line 
1#!/usr/bin/perl -w
2
3use strict;
4use POSIX "uname";
5
6my ($sysname, $nodename, $release, $version, $machine ) = uname;
7my $ver = "";
8my $module = ""; 
9my %modlist;
10my $void = "";
11my $allmodules = "";
12
13
14if (not (defined $ARGV[0])) {
15        $ver = $release;
16} else {
17        $ver = $ARGV[0];
18}
19open(LSMOD, "/sbin/lsmod |") or die "Unable to launch lsmod";
20open(DEPMOD, "/sbin/depmod -n $ver |") or die "Unable to launch depmod";
21
22while (<DEPMOD>) {
23    ($module, $modlist{$module}) = split(/:/);
24    last if ($module =~ /^#/);
25    #print "Analyzing $module\n";
26}
27while (<LSMOD>) {
28    next if (/^Module/);
29    ($module, $void) = split(/ /);
30    #print "Analyzing $module\n";
31    $module = `/sbin/modinfo -n $module`;
32    chomp($module);
33    $allmodules .= $modlist{$module};
34}
35close(LSMOD);
36close(DEPMOD);
37$allmodules =~ s/\n/ /g;
38$allmodules =~ s/  */ /g;
39print "$allmodules\n";
Note: See TracBrowser for help on using the repository browser.