41 lines
982 B
Plaintext
41 lines
982 B
Plaintext
|
#! /usr/bin/perl -w
|
||
|
use strict;
|
||
|
#
|
||
|
# Extract parameter documentation from *.ko files.
|
||
|
# Assumes that parameter description include the default
|
||
|
# value in the format we use in our DEF_PARM() macro
|
||
|
#
|
||
|
|
||
|
@ARGV || die "Usage: $0 module.ko....\n";
|
||
|
|
||
|
my $modinfo = '/sbin/modinfo';
|
||
|
my @mod_params;
|
||
|
|
||
|
foreach my $file (glob "@ARGV") {
|
||
|
undef @mod_params;
|
||
|
print "$file:\n";
|
||
|
open(F, "$modinfo '$file' |") || die;
|
||
|
while(<F>) {
|
||
|
chomp;
|
||
|
next unless s/^parm:\s*//;
|
||
|
my ($name, $description) = split(/:/, $_, 2);
|
||
|
# Extract type
|
||
|
$description =~ s/\s*\(([^)]+)\)$//;
|
||
|
my $type = $1;
|
||
|
# Extract default value
|
||
|
$description =~ s/\s*\[default\s+([^]]+)\]$//;
|
||
|
my $default = $1;
|
||
|
push(@mod_params, {
|
||
|
NAME => $name,
|
||
|
TYPE => $type,
|
||
|
DEFVAL => $default,
|
||
|
DESC => $description,
|
||
|
});
|
||
|
}
|
||
|
# Print sorted list
|
||
|
foreach my $p (sort { $a->{NAME} cmp $b->{NAME} } @mod_params) {
|
||
|
printf "\t%-8s %-22s = %-20s %s\n", $p->{TYPE}, $p->{NAME}, $p->{DEFVAL}, $p->{DESC};
|
||
|
}
|
||
|
close F || die;
|
||
|
}
|