blob: 5432ea762d041cbdec3c0fb18cc8b1e0b2646533 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
package modparm; # $Id$
use diagnostics;
use strict;
use modules;
#-######################################################################################
#- misc imports
#-######################################################################################
use common;
use log;
sub get_options_result($@) {
my ($module, @value) = @_;
mapn {
my ($a, $b) = @_;
$b =~ s/^(\w+).*/$1/;
$a ? "$b=$a" : ();
} \@value, [get_options_name($module)];
}
sub get_options_name($) {
my ($module) = @_;
my @names;
$modinfo = $::isStandalone ? '/sbin/modinfo' : '/usr/bin/modinfo';
-e $modinfo or die _('modinfo is not available');
my @line;
if ($::isStandalone) {
@line = `$modinfo -p $module`;
} else {
modules::extract_modules('/tmp', $module);
@line = `$modinfo -p /tmp/$module.o`;
}
foreach (@line) {
chomp;
s/int/: (integer/;
s/string/: (string/;
my ($f, $g) = /array \(min = (\d+), max = (\d+)\)/;
my $c;
if ($f == 1 && $g == 1) {
$c = _('1 character)');
} else {
$c = sprintf("$f-$g %s)", _('characters'));
}
s/array \(min = \d+, max = \d+\)/$c/;
if (/parm:\s+(.+)/) {
local $_ = $1;
s/\s+/ /;
s/, description /TOOLTIP=>/;
push @names, $_;
}
}
@names;
}
1;
|