|
@@ -90,28 +90,28 @@ use strict;
|
|
# * my_function - does my stuff
|
|
# * my_function - does my stuff
|
|
# * @my_arg: its mine damnit
|
|
# * @my_arg: its mine damnit
|
|
# *
|
|
# *
|
|
-# * Does my stuff explained.
|
|
|
|
|
|
+# * Does my stuff explained.
|
|
# */
|
|
# */
|
|
#
|
|
#
|
|
# or, could also use:
|
|
# or, could also use:
|
|
# /**
|
|
# /**
|
|
# * my_function - does my stuff
|
|
# * my_function - does my stuff
|
|
# * @my_arg: its mine damnit
|
|
# * @my_arg: its mine damnit
|
|
-# * Description: Does my stuff explained.
|
|
|
|
|
|
+# * Description: Does my stuff explained.
|
|
# */
|
|
# */
|
|
# etc.
|
|
# etc.
|
|
#
|
|
#
|
|
-# Beside functions you can also write documentation for structs, unions,
|
|
|
|
-# enums and typedefs. Instead of the function name you must write the name
|
|
|
|
-# of the declaration; the struct/union/enum/typedef must always precede
|
|
|
|
-# the name. Nesting of declarations is not supported.
|
|
|
|
|
|
+# Beside functions you can also write documentation for structs, unions,
|
|
|
|
+# enums and typedefs. Instead of the function name you must write the name
|
|
|
|
+# of the declaration; the struct/union/enum/typedef must always precede
|
|
|
|
+# the name. Nesting of declarations is not supported.
|
|
# Use the argument mechanism to document members or constants.
|
|
# Use the argument mechanism to document members or constants.
|
|
# e.g.
|
|
# e.g.
|
|
# /**
|
|
# /**
|
|
# * struct my_struct - short description
|
|
# * struct my_struct - short description
|
|
# * @a: first member
|
|
# * @a: first member
|
|
# * @b: second member
|
|
# * @b: second member
|
|
-# *
|
|
|
|
|
|
+# *
|
|
# * Longer description
|
|
# * Longer description
|
|
# */
|
|
# */
|
|
# struct my_struct {
|
|
# struct my_struct {
|
|
@@ -122,12 +122,12 @@ use strict;
|
|
# };
|
|
# };
|
|
#
|
|
#
|
|
# All descriptions can be multiline, except the short function description.
|
|
# All descriptions can be multiline, except the short function description.
|
|
-#
|
|
|
|
-# You can also add additional sections. When documenting kernel functions you
|
|
|
|
-# should document the "Context:" of the function, e.g. whether the functions
|
|
|
|
|
|
+#
|
|
|
|
+# You can also add additional sections. When documenting kernel functions you
|
|
|
|
+# should document the "Context:" of the function, e.g. whether the functions
|
|
# can be called form interrupts. Unlike other sections you can end it with an
|
|
# can be called form interrupts. Unlike other sections you can end it with an
|
|
-# empty line.
|
|
|
|
-# Example-sections should contain the string EXAMPLE so that they are marked
|
|
|
|
|
|
+# empty line.
|
|
|
|
+# Example-sections should contain the string EXAMPLE so that they are marked
|
|
# appropriately in DocBook.
|
|
# appropriately in DocBook.
|
|
#
|
|
#
|
|
# Example:
|
|
# Example:
|
|
@@ -135,7 +135,7 @@ use strict;
|
|
# * user_function - function that can only be called in user context
|
|
# * user_function - function that can only be called in user context
|
|
# * @a: some argument
|
|
# * @a: some argument
|
|
# * Context: !in_interrupt()
|
|
# * Context: !in_interrupt()
|
|
-# *
|
|
|
|
|
|
+# *
|
|
# * Some description
|
|
# * Some description
|
|
# * Example:
|
|
# * Example:
|
|
# * user_function(22);
|
|
# * user_function(22);
|
|
@@ -223,9 +223,9 @@ my %highlights = %highlights_man;
|
|
my $blankline = $blankline_man;
|
|
my $blankline = $blankline_man;
|
|
my $modulename = "Kernel API";
|
|
my $modulename = "Kernel API";
|
|
my $function_only = 0;
|
|
my $function_only = 0;
|
|
-my $man_date = ('January', 'February', 'March', 'April', 'May', 'June',
|
|
|
|
- 'July', 'August', 'September', 'October',
|
|
|
|
- 'November', 'December')[(localtime)[4]] .
|
|
|
|
|
|
+my $man_date = ('January', 'February', 'March', 'April', 'May', 'June',
|
|
|
|
+ 'July', 'August', 'September', 'October',
|
|
|
|
+ 'November', 'December')[(localtime)[4]] .
|
|
" " . ((localtime)[5]+1900);
|
|
" " . ((localtime)[5]+1900);
|
|
|
|
|
|
# Essentially these are globals
|
|
# Essentially these are globals
|
|
@@ -236,7 +236,7 @@ my ($function, %function_table,%parametertypes,$declaration_purpose);
|
|
my ($type,$declaration_name,$return_type);
|
|
my ($type,$declaration_name,$return_type);
|
|
my ($newsection,$newcontents,$prototype,$filelist, $brcount, %source_map);
|
|
my ($newsection,$newcontents,$prototype,$filelist, $brcount, %source_map);
|
|
|
|
|
|
-# Generated docbook code is inserted in a template at a point where
|
|
|
|
|
|
+# Generated docbook code is inserted in a template at a point where
|
|
# docbook v3.1 requires a non-zero sequence of RefEntry's; see:
|
|
# docbook v3.1 requires a non-zero sequence of RefEntry's; see:
|
|
# http://www.oasis-open.org/docbook/documentation/reference/html/refentry.html
|
|
# http://www.oasis-open.org/docbook/documentation/reference/html/refentry.html
|
|
# We keep track of number of generated entries and generate a dummy
|
|
# We keep track of number of generated entries and generate a dummy
|
|
@@ -365,7 +365,7 @@ sub dump_section {
|
|
# parameterdescs => %parameter descriptions
|
|
# parameterdescs => %parameter descriptions
|
|
# sectionlist => @list of sections
|
|
# sectionlist => @list of sections
|
|
# sections => %descriont descriptions
|
|
# sections => %descriont descriptions
|
|
-#
|
|
|
|
|
|
+#
|
|
|
|
|
|
sub output_highlight {
|
|
sub output_highlight {
|
|
my $contents = join "\n",@_;
|
|
my $contents = join "\n",@_;
|
|
@@ -400,7 +400,7 @@ sub output_section_html(%) {
|
|
print "<blockquote>\n";
|
|
print "<blockquote>\n";
|
|
output_highlight($args{'sections'}{$section});
|
|
output_highlight($args{'sections'}{$section});
|
|
print "</blockquote>\n";
|
|
print "</blockquote>\n";
|
|
- }
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
# output enum in html
|
|
# output enum in html
|
|
@@ -551,7 +551,7 @@ sub output_intro_html(%) {
|
|
|
|
|
|
sub output_section_xml(%) {
|
|
sub output_section_xml(%) {
|
|
my %args = %{$_[0]};
|
|
my %args = %{$_[0]};
|
|
- my $section;
|
|
|
|
|
|
+ my $section;
|
|
# print out each section
|
|
# print out each section
|
|
$lineprefix=" ";
|
|
$lineprefix=" ";
|
|
foreach $section (@{$args{'sectionlist'}}) {
|
|
foreach $section (@{$args{'sectionlist'}}) {
|
|
@@ -778,7 +778,7 @@ sub output_enum_xml(%) {
|
|
print "</refsynopsisdiv>\n";
|
|
print "</refsynopsisdiv>\n";
|
|
|
|
|
|
print "<refsect1>\n";
|
|
print "<refsect1>\n";
|
|
- print " <title>Constants</title>\n";
|
|
|
|
|
|
+ print " <title>Constants</title>\n";
|
|
print " <variablelist>\n";
|
|
print " <variablelist>\n";
|
|
foreach $parameter (@{$args{'parameterlist'}}) {
|
|
foreach $parameter (@{$args{'parameterlist'}}) {
|
|
my $parameter_name = $parameter;
|
|
my $parameter_name = $parameter;
|
|
@@ -1157,7 +1157,7 @@ sub output_section_text(%) {
|
|
foreach $section (@{$args{'sectionlist'}}) {
|
|
foreach $section (@{$args{'sectionlist'}}) {
|
|
print "$section:\n\n";
|
|
print "$section:\n\n";
|
|
output_highlight($args{'sections'}{$section});
|
|
output_highlight($args{'sections'}{$section});
|
|
- }
|
|
|
|
|
|
+ }
|
|
print "\n\n";
|
|
print "\n\n";
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1262,8 +1262,8 @@ sub output_declaration {
|
|
my $name = shift;
|
|
my $name = shift;
|
|
my $functype = shift;
|
|
my $functype = shift;
|
|
my $func = "output_${functype}_$output_mode";
|
|
my $func = "output_${functype}_$output_mode";
|
|
- if (($function_only==0) ||
|
|
|
|
- ( $function_only == 1 && defined($function_table{$name})) ||
|
|
|
|
|
|
+ if (($function_only==0) ||
|
|
|
|
+ ( $function_only == 1 && defined($function_table{$name})) ||
|
|
( $function_only == 2 && !defined($function_table{$name})))
|
|
( $function_only == 2 && !defined($function_table{$name})))
|
|
{
|
|
{
|
|
&$func(@_);
|
|
&$func(@_);
|
|
@@ -1282,7 +1282,7 @@ sub output_intro {
|
|
}
|
|
}
|
|
|
|
|
|
##
|
|
##
|
|
-# takes a declaration (struct, union, enum, typedef) and
|
|
|
|
|
|
+# takes a declaration (struct, union, enum, typedef) and
|
|
# invokes the right handler. NOT called for functions.
|
|
# invokes the right handler. NOT called for functions.
|
|
sub dump_declaration($$) {
|
|
sub dump_declaration($$) {
|
|
no strict 'refs';
|
|
no strict 'refs';
|
|
@@ -1352,7 +1352,7 @@ sub dump_enum($$) {
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
output_declaration($declaration_name,
|
|
output_declaration($declaration_name,
|
|
'enum',
|
|
'enum',
|
|
{'enum' => $declaration_name,
|
|
{'enum' => $declaration_name,
|
|
@@ -1409,7 +1409,7 @@ sub create_parameterlist($$$) {
|
|
while ($args =~ /(\([^\),]+),/) {
|
|
while ($args =~ /(\([^\),]+),/) {
|
|
$args =~ s/(\([^\),]+),/$1#/g;
|
|
$args =~ s/(\([^\),]+),/$1#/g;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
foreach my $arg (split($splitter, $args)) {
|
|
foreach my $arg (split($splitter, $args)) {
|
|
# strip comments
|
|
# strip comments
|
|
$arg =~ s/\/\*.*\*\///;
|
|
$arg =~ s/\/\*.*\*\///;
|
|
@@ -1558,7 +1558,7 @@ sub dump_function($$) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- output_declaration($declaration_name,
|
|
|
|
|
|
+ output_declaration($declaration_name,
|
|
'function',
|
|
'function',
|
|
{'function' => $declaration_name,
|
|
{'function' => $declaration_name,
|
|
'module' => $modulename,
|
|
'module' => $modulename,
|
|
@@ -1617,11 +1617,11 @@ sub reset_state {
|
|
%sections = ();
|
|
%sections = ();
|
|
@sectionlist = ();
|
|
@sectionlist = ();
|
|
$prototype = "";
|
|
$prototype = "";
|
|
-
|
|
|
|
|
|
+
|
|
$state = 0;
|
|
$state = 0;
|
|
}
|
|
}
|
|
|
|
|
|
-sub process_state3_function($$) {
|
|
|
|
|
|
+sub process_state3_function($$) {
|
|
my $x = shift;
|
|
my $x = shift;
|
|
my $file = shift;
|
|
my $file = shift;
|
|
|
|
|
|
@@ -1640,7 +1640,7 @@ sub process_state3_function($$) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-sub process_state3_type($$) {
|
|
|
|
|
|
+sub process_state3_type($$) {
|
|
my $x = shift;
|
|
my $x = shift;
|
|
my $file = shift;
|
|
my $file = shift;
|
|
|
|
|
|
@@ -1780,7 +1780,7 @@ sub process_file($) {
|
|
} elsif (/$doc_content/) {
|
|
} elsif (/$doc_content/) {
|
|
# miguel-style comment kludge, look for blank lines after
|
|
# miguel-style comment kludge, look for blank lines after
|
|
# @parameter line to signify start of description
|
|
# @parameter line to signify start of description
|
|
- if ($1 eq "" &&
|
|
|
|
|
|
+ if ($1 eq "" &&
|
|
($section =~ m/^@/ || $section eq $section_context)) {
|
|
($section =~ m/^@/ || $section eq $section_context)) {
|
|
dump_section($section, xml_escape($contents));
|
|
dump_section($section, xml_escape($contents));
|
|
$section = $section_default;
|
|
$section = $section_default;
|
|
@@ -1790,7 +1790,7 @@ sub process_file($) {
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
# i dont know - bad line? ignore.
|
|
# i dont know - bad line? ignore.
|
|
- print STDERR "Warning(${file}:$.): bad line: $_";
|
|
|
|
|
|
+ print STDERR "Warning(${file}:$.): bad line: $_";
|
|
++$warnings;
|
|
++$warnings;
|
|
}
|
|
}
|
|
} elsif ($state == 3) { # scanning for function { (end of prototype)
|
|
} elsif ($state == 3) { # scanning for function { (end of prototype)
|
|
@@ -1845,7 +1845,7 @@ sub process_file($) {
|
|
else
|
|
else
|
|
{
|
|
{
|
|
$contents .= $1 . "\n";
|
|
$contents .= $1 . "\n";
|
|
- }
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|