aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/kernel-doc48
1 files changed, 32 insertions, 16 deletions
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index f50a70f550b3..c9b4d3631101 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -83,7 +83,7 @@ use strict;
83# * my_function 83# * my_function
84# **/ 84# **/
85# 85#
86# If the Description: header tag is ommitted, then there must be a blank line 86# If the Description: header tag is omitted, then there must be a blank line
87# after the last parameter specification. 87# after the last parameter specification.
88# e.g. 88# e.g.
89# /** 89# /**
@@ -265,7 +265,7 @@ my $doc_start = '^/\*\*\s*$'; # Allow whitespace at end of comment start.
265my $doc_end = '\*/'; 265my $doc_end = '\*/';
266my $doc_com = '\s*\*\s*'; 266my $doc_com = '\s*\*\s*';
267my $doc_decl = $doc_com.'(\w+)'; 267my $doc_decl = $doc_com.'(\w+)';
268my $doc_sect = $doc_com.'(['.$doc_special.']?[\w ]+):(.*)'; 268my $doc_sect = $doc_com.'(['.$doc_special.']?[\w\s]+):(.*)';
269my $doc_content = $doc_com.'(.*)'; 269my $doc_content = $doc_com.'(.*)';
270my $doc_block = $doc_com.'DOC:\s*(.*)?'; 270my $doc_block = $doc_com.'DOC:\s*(.*)?';
271 271
@@ -365,7 +365,7 @@ sub dump_section {
365# parameterlist => @list of parameters 365# parameterlist => @list of parameters
366# parameterdescs => %parameter descriptions 366# parameterdescs => %parameter descriptions
367# sectionlist => @list of sections 367# sectionlist => @list of sections
368# sections => %descriont descriptions 368# sections => %section descriptions
369# 369#
370 370
371sub output_highlight { 371sub output_highlight {
@@ -583,14 +583,14 @@ sub output_function_xml(%) {
583 $id = "API-".$args{'function'}; 583 $id = "API-".$args{'function'};
584 $id =~ s/[^A-Za-z0-9]/-/g; 584 $id =~ s/[^A-Za-z0-9]/-/g;
585 585
586 print "<refentry>\n"; 586 print "<refentry id=\"$id\">\n";
587 print "<refentryinfo>\n"; 587 print "<refentryinfo>\n";
588 print " <title>LINUX</title>\n"; 588 print " <title>LINUX</title>\n";
589 print " <productname>Kernel Hackers Manual</productname>\n"; 589 print " <productname>Kernel Hackers Manual</productname>\n";
590 print " <date>$man_date</date>\n"; 590 print " <date>$man_date</date>\n";
591 print "</refentryinfo>\n"; 591 print "</refentryinfo>\n";
592 print "<refmeta>\n"; 592 print "<refmeta>\n";
593 print " <refentrytitle><phrase id=\"$id\">".$args{'function'}."</phrase></refentrytitle>\n"; 593 print " <refentrytitle><phrase>".$args{'function'}."</phrase></refentrytitle>\n";
594 print " <manvolnum>9</manvolnum>\n"; 594 print " <manvolnum>9</manvolnum>\n";
595 print "</refmeta>\n"; 595 print "</refmeta>\n";
596 print "<refnamediv>\n"; 596 print "<refnamediv>\n";
@@ -659,14 +659,14 @@ sub output_struct_xml(%) {
659 $id = "API-struct-".$args{'struct'}; 659 $id = "API-struct-".$args{'struct'};
660 $id =~ s/[^A-Za-z0-9]/-/g; 660 $id =~ s/[^A-Za-z0-9]/-/g;
661 661
662 print "<refentry>\n"; 662 print "<refentry id=\"$id\">\n";
663 print "<refentryinfo>\n"; 663 print "<refentryinfo>\n";
664 print " <title>LINUX</title>\n"; 664 print " <title>LINUX</title>\n";
665 print " <productname>Kernel Hackers Manual</productname>\n"; 665 print " <productname>Kernel Hackers Manual</productname>\n";
666 print " <date>$man_date</date>\n"; 666 print " <date>$man_date</date>\n";
667 print "</refentryinfo>\n"; 667 print "</refentryinfo>\n";
668 print "<refmeta>\n"; 668 print "<refmeta>\n";
669 print " <refentrytitle><phrase id=\"$id\">".$args{'type'}." ".$args{'struct'}."</phrase></refentrytitle>\n"; 669 print " <refentrytitle><phrase>".$args{'type'}." ".$args{'struct'}."</phrase></refentrytitle>\n";
670 print " <manvolnum>9</manvolnum>\n"; 670 print " <manvolnum>9</manvolnum>\n";
671 print "</refmeta>\n"; 671 print "</refmeta>\n";
672 print "<refnamediv>\n"; 672 print "<refnamediv>\n";
@@ -743,14 +743,14 @@ sub output_enum_xml(%) {
743 $id = "API-enum-".$args{'enum'}; 743 $id = "API-enum-".$args{'enum'};
744 $id =~ s/[^A-Za-z0-9]/-/g; 744 $id =~ s/[^A-Za-z0-9]/-/g;
745 745
746 print "<refentry>\n"; 746 print "<refentry id=\"$id\">\n";
747 print "<refentryinfo>\n"; 747 print "<refentryinfo>\n";
748 print " <title>LINUX</title>\n"; 748 print " <title>LINUX</title>\n";
749 print " <productname>Kernel Hackers Manual</productname>\n"; 749 print " <productname>Kernel Hackers Manual</productname>\n";
750 print " <date>$man_date</date>\n"; 750 print " <date>$man_date</date>\n";
751 print "</refentryinfo>\n"; 751 print "</refentryinfo>\n";
752 print "<refmeta>\n"; 752 print "<refmeta>\n";
753 print " <refentrytitle><phrase id=\"$id\">enum ".$args{'enum'}."</phrase></refentrytitle>\n"; 753 print " <refentrytitle><phrase>enum ".$args{'enum'}."</phrase></refentrytitle>\n";
754 print " <manvolnum>9</manvolnum>\n"; 754 print " <manvolnum>9</manvolnum>\n";
755 print "</refmeta>\n"; 755 print "</refmeta>\n";
756 print "<refnamediv>\n"; 756 print "<refnamediv>\n";
@@ -809,14 +809,14 @@ sub output_typedef_xml(%) {
809 $id = "API-typedef-".$args{'typedef'}; 809 $id = "API-typedef-".$args{'typedef'};
810 $id =~ s/[^A-Za-z0-9]/-/g; 810 $id =~ s/[^A-Za-z0-9]/-/g;
811 811
812 print "<refentry>\n"; 812 print "<refentry id=\"$id\">\n";
813 print "<refentryinfo>\n"; 813 print "<refentryinfo>\n";
814 print " <title>LINUX</title>\n"; 814 print " <title>LINUX</title>\n";
815 print " <productname>Kernel Hackers Manual</productname>\n"; 815 print " <productname>Kernel Hackers Manual</productname>\n";
816 print " <date>$man_date</date>\n"; 816 print " <date>$man_date</date>\n";
817 print "</refentryinfo>\n"; 817 print "</refentryinfo>\n";
818 print "<refmeta>\n"; 818 print "<refmeta>\n";
819 print " <refentrytitle><phrase id=\"$id\">typedef ".$args{'typedef'}."</phrase></refentrytitle>\n"; 819 print " <refentrytitle><phrase>typedef ".$args{'typedef'}."</phrase></refentrytitle>\n";
820 print " <manvolnum>9</manvolnum>\n"; 820 print " <manvolnum>9</manvolnum>\n";
821 print "</refmeta>\n"; 821 print "</refmeta>\n";
822 print "<refnamediv>\n"; 822 print "<refnamediv>\n";
@@ -953,7 +953,11 @@ sub output_function_man(%) {
953 print $args{'function'}." \\- ".$args{'purpose'}."\n"; 953 print $args{'function'}." \\- ".$args{'purpose'}."\n";
954 954
955 print ".SH SYNOPSIS\n"; 955 print ".SH SYNOPSIS\n";
956 print ".B \"".$args{'functiontype'}."\" ".$args{'function'}."\n"; 956 if ($args{'functiontype'} ne "") {
957 print ".B \"".$args{'functiontype'}."\" ".$args{'function'}."\n";
958 } else {
959 print ".B \"".$args{'function'}."\n";
960 }
957 $count = 0; 961 $count = 0;
958 my $parenth = "("; 962 my $parenth = "(";
959 my $post = ","; 963 my $post = ",";
@@ -1118,13 +1122,19 @@ sub output_intro_man(%) {
1118sub output_function_text(%) { 1122sub output_function_text(%) {
1119 my %args = %{$_[0]}; 1123 my %args = %{$_[0]};
1120 my ($parameter, $section); 1124 my ($parameter, $section);
1125 my $start;
1121 1126
1122 print "Name:\n\n"; 1127 print "Name:\n\n";
1123 print $args{'function'}." - ".$args{'purpose'}."\n"; 1128 print $args{'function'}." - ".$args{'purpose'}."\n";
1124 1129
1125 print "\nSynopsis:\n\n"; 1130 print "\nSynopsis:\n\n";
1126 my $start=$args{'functiontype'}." ".$args{'function'}." ("; 1131 if ($args{'functiontype'} ne "") {
1132 $start = $args{'functiontype'}." ".$args{'function'}." (";
1133 } else {
1134 $start = $args{'function'}." (";
1135 }
1127 print $start; 1136 print $start;
1137
1128 my $count = 0; 1138 my $count = 0;
1129 foreach my $parameter (@{$args{'parameterlist'}}) { 1139 foreach my $parameter (@{$args{'parameterlist'}}) {
1130 $type = $args{'parametertypes'}{$parameter}; 1140 $type = $args{'parametertypes'}{$parameter};
@@ -1433,7 +1443,7 @@ sub create_parameterlist($$$) {
1433 } elsif ($arg =~ m/\(.*\*/) { 1443 } elsif ($arg =~ m/\(.*\*/) {
1434 # pointer-to-function 1444 # pointer-to-function
1435 $arg =~ tr/#/,/; 1445 $arg =~ tr/#/,/;
1436 $arg =~ m/[^\(]+\(\*([^\)]+)\)/; 1446 $arg =~ m/[^\(]+\(\*\s*([^\)]+)\)/;
1437 $param = $1; 1447 $param = $1;
1438 $type = $arg; 1448 $type = $arg;
1439 $type =~ s/([^\(]+\(\*)$param/$1/; 1449 $type =~ s/([^\(]+\(\*)$param/$1/;
@@ -1536,7 +1546,7 @@ sub dump_function($$) {
1536 $prototype =~ s/^__always_inline +//; 1546 $prototype =~ s/^__always_inline +//;
1537 $prototype =~ s/^noinline +//; 1547 $prototype =~ s/^noinline +//;
1538 $prototype =~ s/__devinit +//; 1548 $prototype =~ s/__devinit +//;
1539 $prototype =~ s/^#define +//; #ak added 1549 $prototype =~ s/^#define\s+//; #ak added
1540 $prototype =~ s/__attribute__ \(\([a-z,]*\)\)//; 1550 $prototype =~ s/__attribute__ \(\([a-z,]*\)\)//;
1541 1551
1542 # Yes, this truly is vile. We are looking for: 1552 # Yes, this truly is vile. We are looking for:
@@ -1710,6 +1720,7 @@ sub process_file($) {
1710 my $file; 1720 my $file;
1711 my $identifier; 1721 my $identifier;
1712 my $func; 1722 my $func;
1723 my $descr;
1713 my $initial_section_counter = $section_counter; 1724 my $initial_section_counter = $section_counter;
1714 1725
1715 if (defined($ENV{'SRCTREE'})) { 1726 if (defined($ENV{'SRCTREE'})) {
@@ -1753,7 +1764,12 @@ sub process_file($) {
1753 1764
1754 $state = 2; 1765 $state = 2;
1755 if (/-(.*)/) { 1766 if (/-(.*)/) {
1756 $declaration_purpose = xml_escape($1); 1767 # strip leading/trailing/multiple spaces #RDD:T:
1768 $descr= $1;
1769 $descr =~ s/^\s*//;
1770 $descr =~ s/\s*$//;
1771 $descr =~ s/\s+/ /;
1772 $declaration_purpose = xml_escape($descr);
1757 } else { 1773 } else {
1758 $declaration_purpose = ""; 1774 $declaration_purpose = "";
1759 } 1775 }