1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #! /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;
- }
|