summaryrefslogtreecommitdiffstats
path: root/tools/genmodparm
diff options
context:
space:
mode:
Diffstat (limited to 'tools/genmodparm')
-rwxr-xr-xtools/genmodparm145
1 files changed, 0 insertions, 145 deletions
diff --git a/tools/genmodparm b/tools/genmodparm
deleted file mode 100755
index d122193a2..000000000
--- a/tools/genmodparm
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/usr/bin/perl
-
-# Mandrake Graphic Install
-# Copyright (C) 1999 MandrakeSoft (fpons@linux-mandrake.com)
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-$srctop = $ARGV[0];
-
-unless (-d $srctop) {
- print STDERR "usage: $0 <linux_src_top>\n";
- print STDERR " <linux_src_top> is the linux source top directory,\n";
- print STDERR " for example /usr/src/linux\n";
- exit 1;
-}
-
-open (FILE_LIST, "find $srctop/ -name \"*.c\" |");
-
-while (<FILE_LIST>) {
- chomp;
-
- my $file = $_;
- my $dir = $file;
- my $module = $file;
- my $incfile;
- my @incfiles;
- my %parms;
- my $oldline;
- my $descline;
- my $default;
- my %substvars;
-
- # get mormalized directory name.
- $dir =~ s/^(.*)\/[^\/]*$/$1/;
-
- # get mormalized module name.
- $module =~ s/^.*\/([^\/]*)\.c$/$1/;
-
- # search for recogniwed special keywords.
- open (F, $file);
- while (<F>) {
- # track for include files.
- if (/^\#\s*include\s+[\<\"]([\w-\.\/]*)[\"\>]/) {
- # search from /usr/src/linux/include directory.
- push @incfiles, "/usr/src/linux/include/$1";
-
- # search from current working directory.
- push @incfiles, "$dir/$1";
- }
-
- if (/^\s*MODULE_PARM\s*\((\w*)\s*,\s*\"/) {
- $parms{$1}{type} = '?';
- }
- if (/^\s*MODULE_PARM\s*\((\w*)\s*,\s*\"([^\"]*)\"\s*\)/) {
- $parms{$1}{type} = $2;
- }
- if (/^\s*MODULE_PARM_DESC\s*\((\w*)\s*,\s*\"([^\"]*)\"\s*\)/) {
- $parms{$1}{desc} = $2;
- }
- }
- close F;
-
- # parse associated include file if exist.
- foreach $incfile (@incfiles) {
- if (-r $incfile) {
- open (F, $incfile);
- while (<F>) {
- s/^(.*)\/\*.*$/$1/g;
- if (/^\#\s*define\s*(\w*)\s*(.*)$/) {
- $substvars{$1}=$2;
- }
- }
- close F;
- }
- }
-
- # search for comments about each module parameter.
- open (F, $file);
- while (<F>) {
- my $line = $_;
-
- # manage simple preprocessor.
- s/^(.*)\/\*.*$/$1/g;
- if (/^\#\s*define\s*(\w*)\s*(.*)$/) {
- $substvars{$1}=$2;
- }
-
- # parse for parameters definition.
- foreach $parm (keys %parms) {
- if ($line =~ /^\s*(static\s+)?((short|long|signed|unsigned)\s+)?\w+(\s*\**\s+|\s+\**\s*)$parm(\s*\[.*\]\s*)?\s*=\s*([^\;]*)\;/) {
- $default = $descline = $6;
- $default =~ s/^(.*)\/\*.*$/$1/g;
-
- # remove hypothetic couple of { }.
- $default =~ s/^(\s*\{\s*)(.*)(\s*\}\s*)$/$2/;
-
- # subsitute variable.
- foreach $substvar (keys %substvars) {
- $default =~ s/$substvar/$substvars{$substvar}/g;
- }
- $default =~ s/NULL/0/g;
- $default =~ s/^\s*(.*?)\s*$/$1/;
- $default = '' if $default =~ /\(\s*\(\s*void*\s*\*\)\s*0\s*\)\s*,?/;
-
- # store value.
- $parms{$parm}{default} = $default;
-
- # try to search a comment on the previous line.
- if (!defined($parms{$parm}{desc})) {
- if ($oldline =~ /^\s*\/\*\s*(.*)\s*\*\/\s*$/ || /\/\*\s*(.*)\s*\*\/\s*$/) {
- $parms{$parm}{desc} = $1;
- }
- }
-
- # try to search a comment on the line (multiline not supported).
- if (!defined($parms{$parm}{desc})) {
- if ($descline =~ /^.*\/\*\s*(.*)\s*\*\/\s*$/) {
- $parms{$parm}{desc} = $1;
- }
- }
- }
- }
- $oldline = $_;
- }
- close F;
-
- # dump all result to stdout associated to current module.
- foreach $parm (keys %parms) {
- print "$module:$parm:$parms{$parm}{type}:$parms{$parm}{default}:$parms{$parm}{desc}\n";
- }
-}
-
-close FILE_LIST;