|
@@ -155,6 +155,8 @@ use strict;
|
|
# '@parameter' - name of a parameter
|
|
# '@parameter' - name of a parameter
|
|
# '%CONST' - name of a constant.
|
|
# '%CONST' - name of a constant.
|
|
|
|
|
|
|
|
+## init lots of data
|
|
|
|
+
|
|
my $errors = 0;
|
|
my $errors = 0;
|
|
my $warnings = 0;
|
|
my $warnings = 0;
|
|
my $anon_struct_union = 0;
|
|
my $anon_struct_union = 0;
|
|
@@ -218,21 +220,14 @@ my %highlights_list = ( $type_constant, "\$1",
|
|
$type_param, "\$1" );
|
|
$type_param, "\$1" );
|
|
my $blankline_list = "";
|
|
my $blankline_list = "";
|
|
|
|
|
|
-sub usage {
|
|
|
|
- print "Usage: $0 [ -v ] [ -docbook | -html | -text | -man | -list ]\n";
|
|
|
|
- print " [ -no-doc-sections ]\n";
|
|
|
|
- print " [ -function funcname [ -function funcname ...] ]\n";
|
|
|
|
- print " [ -nofunction funcname [ -nofunction funcname ...] ]\n";
|
|
|
|
- print " c source file(s) > outputfile\n";
|
|
|
|
- print " -v : verbose output, more warnings & other info listed\n";
|
|
|
|
- exit 1;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
# read arguments
|
|
# read arguments
|
|
if ($#ARGV == -1) {
|
|
if ($#ARGV == -1) {
|
|
usage();
|
|
usage();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+my $kernelversion;
|
|
|
|
+my $dohighlight = "";
|
|
|
|
+
|
|
my $verbose = 0;
|
|
my $verbose = 0;
|
|
my $output_mode = "man";
|
|
my $output_mode = "man";
|
|
my $no_doc_sections = 0;
|
|
my $no_doc_sections = 0;
|
|
@@ -245,7 +240,7 @@ my $man_date = ('January', 'February', 'March', 'April', 'May', 'June',
|
|
'November', 'December')[(localtime)[4]] .
|
|
'November', 'December')[(localtime)[4]] .
|
|
" " . ((localtime)[5]+1900);
|
|
" " . ((localtime)[5]+1900);
|
|
|
|
|
|
-# Essentially these are globals
|
|
|
|
|
|
+# Essentially these are globals.
|
|
# They probably want to be tidied up, made more localised or something.
|
|
# They probably want to be tidied up, made more localised or something.
|
|
# CAVEAT EMPTOR! Some of the others I localised may not want to be, which
|
|
# CAVEAT EMPTOR! Some of the others I localised may not want to be, which
|
|
# could cause "use of undefined value" or other bugs.
|
|
# could cause "use of undefined value" or other bugs.
|
|
@@ -353,6 +348,18 @@ while ($ARGV[0] =~ m/^-(.*)/) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+# continue execution near EOF;
|
|
|
|
+
|
|
|
|
+sub usage {
|
|
|
|
+ print "Usage: $0 [ -v ] [ -docbook | -html | -text | -man | -list ]\n";
|
|
|
|
+ print " [ -no-doc-sections ]\n";
|
|
|
|
+ print " [ -function funcname [ -function funcname ...] ]\n";
|
|
|
|
+ print " [ -nofunction funcname [ -nofunction funcname ...] ]\n";
|
|
|
|
+ print " c source file(s) > outputfile\n";
|
|
|
|
+ print " -v : verbose output, more warnings & other info listed\n";
|
|
|
|
+ exit 1;
|
|
|
|
+}
|
|
|
|
+
|
|
# get kernel version from env
|
|
# get kernel version from env
|
|
sub get_kernel_version() {
|
|
sub get_kernel_version() {
|
|
my $version = 'unknown kernel version';
|
|
my $version = 'unknown kernel version';
|
|
@@ -362,15 +369,6 @@ sub get_kernel_version() {
|
|
}
|
|
}
|
|
return $version;
|
|
return $version;
|
|
}
|
|
}
|
|
-my $kernelversion = get_kernel_version();
|
|
|
|
-
|
|
|
|
-# generate a sequence of code that will splice in highlighting information
|
|
|
|
-# using the s// operator.
|
|
|
|
-my $dohighlight = "";
|
|
|
|
-foreach my $pattern (keys %highlights) {
|
|
|
|
-# print STDERR "scanning pattern:$pattern, highlight:($highlights{$pattern})\n";
|
|
|
|
- $dohighlight .= "\$contents =~ s:$pattern:$highlights{$pattern}:gs;\n";
|
|
|
|
-}
|
|
|
|
|
|
|
|
##
|
|
##
|
|
# dumps section contents to arrays/hashes intended for that purpose.
|
|
# dumps section contents to arrays/hashes intended for that purpose.
|
|
@@ -1851,34 +1849,6 @@ sub dump_function($$) {
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
-sub process_file($);
|
|
|
|
-
|
|
|
|
-# Read the file that maps relative names to absolute names for
|
|
|
|
-# separate source and object directories and for shadow trees.
|
|
|
|
-if (open(SOURCE_MAP, "<.tmp_filelist.txt")) {
|
|
|
|
- my ($relname, $absname);
|
|
|
|
- while(<SOURCE_MAP>) {
|
|
|
|
- chop();
|
|
|
|
- ($relname, $absname) = (split())[0..1];
|
|
|
|
- $relname =~ s:^/+::;
|
|
|
|
- $source_map{$relname} = $absname;
|
|
|
|
- }
|
|
|
|
- close(SOURCE_MAP);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-foreach (@ARGV) {
|
|
|
|
- chomp;
|
|
|
|
- process_file($_);
|
|
|
|
-}
|
|
|
|
-if ($verbose && $errors) {
|
|
|
|
- print STDERR "$errors errors\n";
|
|
|
|
-}
|
|
|
|
-if ($verbose && $warnings) {
|
|
|
|
- print STDERR "$warnings warnings\n";
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-exit($errors);
|
|
|
|
-
|
|
|
|
sub reset_state {
|
|
sub reset_state {
|
|
$function = "";
|
|
$function = "";
|
|
%constants = ();
|
|
%constants = ();
|
|
@@ -2285,3 +2255,39 @@ sub process_file($) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+$kernelversion = get_kernel_version();
|
|
|
|
+
|
|
|
|
+# generate a sequence of code that will splice in highlighting information
|
|
|
|
+# using the s// operator.
|
|
|
|
+foreach my $pattern (keys %highlights) {
|
|
|
|
+# print STDERR "scanning pattern:$pattern, highlight:($highlights{$pattern})\n";
|
|
|
|
+ $dohighlight .= "\$contents =~ s:$pattern:$highlights{$pattern}:gs;\n";
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+# Read the file that maps relative names to absolute names for
|
|
|
|
+# separate source and object directories and for shadow trees.
|
|
|
|
+if (open(SOURCE_MAP, "<.tmp_filelist.txt")) {
|
|
|
|
+ my ($relname, $absname);
|
|
|
|
+ while(<SOURCE_MAP>) {
|
|
|
|
+ chop();
|
|
|
|
+ ($relname, $absname) = (split())[0..1];
|
|
|
|
+ $relname =~ s:^/+::;
|
|
|
|
+ $source_map{$relname} = $absname;
|
|
|
|
+ }
|
|
|
|
+ close(SOURCE_MAP);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+foreach (@ARGV) {
|
|
|
|
+ chomp;
|
|
|
|
+ process_file($_);
|
|
|
|
+}
|
|
|
|
+if ($verbose && $errors) {
|
|
|
|
+ print STDERR "$errors errors\n";
|
|
|
|
+}
|
|
|
|
+if ($verbose && $warnings) {
|
|
|
|
+ print STDERR "$warnings warnings\n";
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+exit($errors);
|