X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=scripts%2Fkernel-doc;h=8be269ffbf9d4f8159ca7a49a589f879a3d38583;hp=df3b272f7ce6b1d47bc2014b9c5f18e9ec763d2b;hb=c51bd3d3d883d900efbeab3697ae182d60bdd217;hpb=bef986502fa398b1785a3979b1aa17cd902d3527
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index df3b272f7ce6..8be269ffbf9d 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -83,7 +83,7 @@ use strict;
# * my_function
# **/
#
-# If the Description: header tag is ommitted, then there must be a blank line
+# If the Description: header tag is omitted, then there must be a blank line
# after the last parameter specification.
# e.g.
# /**
@@ -265,7 +265,7 @@ my $doc_start = '^/\*\*\s*$'; # Allow whitespace at end of comment start.
my $doc_end = '\*/';
my $doc_com = '\s*\*\s*';
my $doc_decl = $doc_com.'(\w+)';
-my $doc_sect = $doc_com.'(['.$doc_special.']?[\w ]+):(.*)';
+my $doc_sect = $doc_com.'(['.$doc_special.']?[\w\s]+):(.*)';
my $doc_content = $doc_com.'(.*)';
my $doc_block = $doc_com.'DOC:\s*(.*)?';
@@ -365,7 +365,7 @@ sub dump_section {
# parameterlist => @list of parameters
# parameterdescs => %parameter descriptions
# sectionlist => @list of sections
-# sections => %descriont descriptions
+# sections => %section descriptions
#
sub output_highlight {
@@ -452,7 +452,7 @@ sub output_struct_html(%) {
my %args = %{$_[0]};
my ($parameter);
- print "
".$args{'type'}." ".$args{'struct'}."
\n";
+ print "".$args{'type'}." ".$args{'struct'}. " - " .$args{'purpose'}."
\n";
print "".$args{'type'}." ".$args{'struct'}." {
\n";
foreach $parameter (@{$args{'parameterlist'}}) {
if ($parameter =~ /^#/) {
@@ -498,8 +498,8 @@ sub output_function_html(%) {
my %args = %{$_[0]};
my ($parameter, $section);
my $count;
- print "Function
\n";
+ print "" .$args{'function'}." - ".$args{'purpose'}."
\n";
print "".$args{'functiontype'}."\n";
print "".$args{'function'}."\n";
print "(";
@@ -583,14 +583,14 @@ sub output_function_xml(%) {
$id = "API-".$args{'function'};
$id =~ s/[^A-Za-z0-9]/-/g;
- print "\n";
+ print "\n";
print "\n";
print " LINUX\n";
print " Kernel Hackers Manual\n";
print " $man_date\n";
print "\n";
print "\n";
- print " ".$args{'function'}."\n";
+ print " ".$args{'function'}."\n";
print " 9\n";
print "\n";
print "\n";
@@ -659,14 +659,14 @@ sub output_struct_xml(%) {
$id = "API-struct-".$args{'struct'};
$id =~ s/[^A-Za-z0-9]/-/g;
- print "\n";
+ print "\n";
print "\n";
print " LINUX\n";
print " Kernel Hackers Manual\n";
print " $man_date\n";
print "\n";
print "\n";
- print " ".$args{'type'}." ".$args{'struct'}."\n";
+ print " ".$args{'type'}." ".$args{'struct'}."\n";
print " 9\n";
print "\n";
print "\n";
@@ -743,14 +743,14 @@ sub output_enum_xml(%) {
$id = "API-enum-".$args{'enum'};
$id =~ s/[^A-Za-z0-9]/-/g;
- print "\n";
+ print "\n";
print "\n";
print " LINUX\n";
print " Kernel Hackers Manual\n";
print " $man_date\n";
print "\n";
print "\n";
- print " enum ".$args{'enum'}."\n";
+ print " enum ".$args{'enum'}."\n";
print " 9\n";
print "\n";
print "\n";
@@ -809,14 +809,14 @@ sub output_typedef_xml(%) {
$id = "API-typedef-".$args{'typedef'};
$id =~ s/[^A-Za-z0-9]/-/g;
- print "\n";
+ print "\n";
print "\n";
print " LINUX\n";
print " Kernel Hackers Manual\n";
print " $man_date\n";
print "\n";
print "\n";
- print " typedef ".$args{'typedef'}."\n";
+ print " typedef ".$args{'typedef'}."\n";
print " 9\n";
print "\n";
print "\n";
@@ -953,7 +953,11 @@ sub output_function_man(%) {
print $args{'function'}." \\- ".$args{'purpose'}."\n";
print ".SH SYNOPSIS\n";
- print ".B \"".$args{'functiontype'}."\" ".$args{'function'}."\n";
+ if ($args{'functiontype'} ne "") {
+ print ".B \"".$args{'functiontype'}."\" ".$args{'function'}."\n";
+ } else {
+ print ".B \"".$args{'function'}."\n";
+ }
$count = 0;
my $parenth = "(";
my $post = ",";
@@ -1118,13 +1122,19 @@ sub output_intro_man(%) {
sub output_function_text(%) {
my %args = %{$_[0]};
my ($parameter, $section);
+ my $start;
print "Name:\n\n";
print $args{'function'}." - ".$args{'purpose'}."\n";
print "\nSynopsis:\n\n";
- my $start=$args{'functiontype'}." ".$args{'function'}." (";
+ if ($args{'functiontype'} ne "") {
+ $start = $args{'functiontype'}." ".$args{'function'}." (";
+ } else {
+ $start = $args{'function'}." (";
+ }
print $start;
+
my $count = 0;
foreach my $parameter (@{$args{'parameterlist'}}) {
$type = $args{'parametertypes'}{$parameter};
@@ -1433,7 +1443,7 @@ sub create_parameterlist($$$) {
} elsif ($arg =~ m/\(.*\*/) {
# pointer-to-function
$arg =~ tr/#/,/;
- $arg =~ m/[^\(]+\(\*([^\)]+)\)/;
+ $arg =~ m/[^\(]+\(\*\s*([^\)]+)\)/;
$param = $1;
$type = $arg;
$type =~ s/([^\(]+\(\*)$param/$1/;
@@ -1469,6 +1479,7 @@ sub push_parameter($$$) {
my $param = shift;
my $type = shift;
my $file = shift;
+ my $anon = 0;
my $param_name = $param;
$param_name =~ s/\[.*//;
@@ -1484,9 +1495,20 @@ sub push_parameter($$$) {
$param="void";
$parameterdescs{void} = "no arguments";
}
+ elsif ($type eq "" && ($param eq "struct" or $param eq "union"))
+ # handle unnamed (anonymous) union or struct:
+ {
+ $type = $param;
+ $param = "{unnamed_" . $param. "}";
+ $parameterdescs{$param} = "anonymous\n";
+ $anon = 1;
+ }
+
# warn if parameter has no description
- # (but ignore ones starting with # as these are no parameters
- # but inline preprocessor statements
+ # (but ignore ones starting with # as these are not parameters
+ # but inline preprocessor statements);
+ # also ignore unnamed structs/unions;
+ if (!$anon) {
if (!defined $parameterdescs{$param_name} && $param_name !~ /^#/) {
$parameterdescs{$param_name} = $undescribed;
@@ -1500,6 +1522,7 @@ sub push_parameter($$$) {
" No description found for parameter '$param'\n";
++$warnings;
}
+ }
push @parameterlist, $param;
$parametertypes{$param} = $type;
@@ -1523,8 +1546,8 @@ sub dump_function($$) {
$prototype =~ s/^__always_inline +//;
$prototype =~ s/^noinline +//;
$prototype =~ s/__devinit +//;
- $prototype =~ s/^#define +//; #ak added
- $prototype =~ s/__attribute__ \(\([a-z,]*\)\)//;
+ $prototype =~ s/^#define\s+//; #ak added
+ $prototype =~ s/__attribute__\s*\(\([a-z,]*\)\)//;
# Yes, this truly is vile. We are looking for:
# 1. Return type (may be nothing if we're looking at a macro)
@@ -1557,7 +1580,8 @@ sub dump_function($$) {
$prototype =~ m/^(\w+\s+\w+\s+\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ ||
$prototype =~ m/^(\w+\s+\w+\s+\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ ||
$prototype =~ m/^(\w+\s+\w+\s+\w+\s+\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ ||
- $prototype =~ m/^(\w+\s+\w+\s+\w+\s+\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/) {
+ $prototype =~ m/^(\w+\s+\w+\s+\w+\s+\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ ||
+ $prototype =~ m/^(\w+\s+\w+\s*\*\s*\w+\s*\*\s*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/) {
$return_type = $1;
$declaration_name = $2;
my $args = $3;
@@ -1697,6 +1721,7 @@ sub process_file($) {
my $file;
my $identifier;
my $func;
+ my $descr;
my $initial_section_counter = $section_counter;
if (defined($ENV{'SRCTREE'})) {
@@ -1740,7 +1765,12 @@ sub process_file($) {
$state = 2;
if (/-(.*)/) {
- $declaration_purpose = xml_escape($1);
+ # strip leading/trailing/multiple spaces #RDD:T:
+ $descr= $1;
+ $descr =~ s/^\s*//;
+ $descr =~ s/\s*$//;
+ $descr =~ s/\s+/ /;
+ $declaration_purpose = xml_escape($descr);
} else {
$declaration_purpose = "";
}