From 5e64fa9c441ff273f39527f4014d3c3e724d321a Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 19 May 2016 20:32:48 +0300 Subject: kernel-doc/rst: fix use of uninitialized value I'm not quite sure why the errors below are happening, but this fixes them. Use of uninitialized value in string ne at ./scripts/kernel-doc line 1819, line 6494. Use of uninitialized value $_[0] in join or string at ./scripts/kernel-doc line 1759, line 6494. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 2fc8fad5195e..babb374c043d 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -1803,7 +1803,8 @@ sub output_function_rst(%) { } else { print " ``$parameter``\n"; } - if ($args{'parameterdescs'}{$parameter_name} ne $undescribed) { + if (defined($args{'parameterdescs'}{$parameter_name}) && + $args{'parameterdescs'}{$parameter_name} ne $undescribed) { my $oldprefix = $lineprefix; $lineprefix = " "; output_highlight_rst($args{'parameterdescs'}{$parameter_name}); -- cgit v1.2.3-71-gd317 From 86ae2e38d40ed6bf7c907d126053e6f4b1dc5b6e Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 21 Jan 2016 13:05:22 +0200 Subject: kernel-doc: support printing exported and non-exported symbols Currently we use docproc to figure out which symbols are exported, and then docproc calls kernel-doc on specific functions, to get documentation on exported functions. According to git blame and docproc comments, this is due to historical reasons, as functions and their corresponding EXPORT_SYMBOL* may have been in different files. However for more than ten years the recommendation in CodingStyle has been to place the EXPORT_SYMBOL* immediately after the closing function brace line. Additionally, the kernel-doc comments for functions are generally placed above the function definition in the .c files (i.e. where the EXPORT_SYMBOL* is) rather than above the declaration in the .h files. There are some exceptions to this, but AFAICT none of these are included in DocBook documentation using the "!E" docproc directive. Therefore, assuming the EXPORT_SYMBOL* and kernel-doc are with the function definition, kernel-doc can extract the exported vs. not information by making two passes on the input file. Add support for that via the new -export and -internal parameters. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index babb374c043d..3ad54abe0989 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -59,6 +59,12 @@ Output format selection (mutually exclusive): -text Output plain text format. Output selection (mutually exclusive): + -export Only output documentation for symbols that have been + exported using EXPORT_SYMBOL() or EXPORT_SYMBOL_GPL() + in the same FILE. + -internal Only output documentation for symbols that have NOT been + exported using EXPORT_SYMBOL() or EXPORT_SYMBOL_GPL() + in the same FILE. -function NAME Only output documentation for the given function(s) or DOC: section title(s). All other functions and DOC: sections are ignored. May be specified multiple times. @@ -380,6 +386,7 @@ my $doc_block = $doc_com . 'DOC:\s*(.*)?'; my $doc_split_start = '^\s*/\*\*\s*$'; my $doc_split_sect = '\s*\*\s*(@[\w\s]+):(.*)'; my $doc_split_end = '^\s*\*/\s*$'; +my $export_symbol = '^\s*EXPORT_SYMBOL(_GPL)?\s*\(\s*(\w+)\s*\)\s*;'; my %constants; my %parameterdescs; @@ -444,6 +451,12 @@ while ($ARGV[0] =~ m/^-(.*)/) { $function_only = 2; $function = shift @ARGV; $function_table{$function} = 1; + } elsif ($cmd eq "-export") { # only exported symbols + $function_only = 3; + %function_table = () + } elsif ($cmd eq "-internal") { # only non-exported symbols + $function_only = 4; + %function_table = () } elsif ($cmd eq "-v") { $verbose = 1; } elsif (($cmd eq "-h") || ($cmd eq "--help")) { @@ -1971,8 +1984,10 @@ sub output_declaration { my $functype = shift; my $func = "output_${functype}_$output_mode"; if (($function_only==0) || - ( $function_only == 1 && defined($function_table{$name})) || - ( $function_only == 2 && !($functype eq "function" && defined($function_table{$name})))) + ( ($function_only == 1 || $function_only == 3) && + defined($function_table{$name})) || + ( ($function_only == 2 || $function_only == 4) && + !($functype eq "function" && defined($function_table{$name})))) { &$func(@_); $section_counter++; @@ -2675,6 +2690,16 @@ sub process_file($) { return; } + # two passes for -export and -internal + if ($function_only == 3 || $function_only == 4) { + while () { + if (/$export_symbol/o) { + $function_table{$2} = 1; + } + } + seek(IN, 0, 0); + } + $. = 1; $section_counter = 0; -- cgit v1.2.3-71-gd317 From 48af606ad8912f90e1539621a26e86672976d8ae Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 26 May 2016 14:56:05 +0300 Subject: kernel-doc: add names for states and substates Make the state machine a bit more readable by adding constants for parser states and inline member documentation parser substates. While at it, rename the "split" documentation to "inline" documentation. No functional changes. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 91 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 48 insertions(+), 43 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 3ad54abe0989..cb5fd248ac57 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -350,24 +350,29 @@ my $section_counter = 0; my $lineprefix=""; -# states -# 0 - normal code -# 1 - looking for function name -# 2 - scanning field start. -# 3 - scanning prototype. -# 4 - documentation block -# 5 - gathering documentation outside main block +# Parser states +use constant { + STATE_NORMAL => 0, # normal code + STATE_NAME => 1, # looking for function name + STATE_FIELD => 2, # scanning field start + STATE_PROTO => 3, # scanning prototype + STATE_DOCBLOCK => 4, # documentation block + STATE_INLINE => 5, # gathering documentation outside main block +}; my $state; my $in_doc_sect; -# Split Doc State -# 0 - Invalid (Before start or after finish) -# 1 - Is started (the /** was found inside a struct) -# 2 - The @parameter header was found, start accepting multi paragraph text. -# 3 - Finished (the */ was found) -# 4 - Error - Comment without header was found. Spit a warning as it's not -# proper kernel-doc and ignore the rest. -my $split_doc_state; +# Inline documentation state +use constant { + STATE_INLINE_NA => 0, # not applicable ($state != STATE_INLINE) + STATE_INLINE_NAME => 1, # looking for member name (@foo:) + STATE_INLINE_TEXT => 2, # looking for member documentation + STATE_INLINE_END => 3, # done + STATE_INLINE_ERROR => 4, # error - Comment without header was found. + # Spit a warning as it's not + # proper kernel-doc and ignore the rest. +}; +my $inline_doc_state; #declaration types: can be # 'function', 'struct', 'union', 'enum', 'typedef' @@ -383,9 +388,9 @@ my $doc_decl = $doc_com . '(\w+)'; my $doc_sect = $doc_com . '([' . $doc_special . ']?[\w\s]+):(.*)'; my $doc_content = $doc_com_body . '(.*)'; my $doc_block = $doc_com . 'DOC:\s*(.*)?'; -my $doc_split_start = '^\s*/\*\*\s*$'; -my $doc_split_sect = '\s*\*\s*(@[\w\s]+):(.*)'; -my $doc_split_end = '^\s*\*/\s*$'; +my $doc_inline_start = '^\s*/\*\*\s*$'; +my $doc_inline_sect = '\s*\*\s*(@[\w\s]+):(.*)'; +my $doc_inline_end = '^\s*\*/\s*$'; my $export_symbol = '^\s*EXPORT_SYMBOL(_GPL)?\s*\(\s*(\w+)\s*\)\s*;'; my %constants; @@ -2497,8 +2502,8 @@ sub reset_state { $struct_actual = ""; $prototype = ""; - $state = 0; - $split_doc_state = 0; + $state = STATE_NORMAL; + $inline_doc_state = STATE_INLINE_NA; } sub tracepoint_munge($) { @@ -2707,14 +2712,14 @@ sub process_file($) { while (s/\\\s*$//) { $_ .= ; } - if ($state == 0) { + if ($state == STATE_NORMAL) { if (/$doc_start/o) { - $state = 1; # next line is always the function name + $state = STATE_NAME; # next line is always the function name $in_doc_sect = 0; } - } elsif ($state == 1) { # this line is the function name (always) + } elsif ($state == STATE_NAME) {# this line is the function name (always) if (/$doc_block/o) { - $state = 4; + $state = STATE_DOCBLOCK; $contents = ""; if ( $1 eq "" ) { $section = $section_intro; @@ -2728,7 +2733,7 @@ sub process_file($) { $identifier = $1; } - $state = 2; + $state = STATE_FIELD; if (/-(.*)/) { # strip leading/trailing/multiple spaces $descr= $1; @@ -2766,9 +2771,9 @@ sub process_file($) { print STDERR "${file}:$.: warning: Cannot understand $_ on line $.", " - I thought it was a doc line\n"; ++$warnings; - $state = 0; + $state = STATE_NORMAL; } - } elsif ($state == 2) { # look for head: lines, and include content + } elsif ($state == STATE_FIELD) { # look for head: lines, and include content if (/$doc_sect/o) { $newsection = $1; $newcontents = $2; @@ -2806,7 +2811,7 @@ sub process_file($) { } $prototype = ""; - $state = 3; + $state = STATE_PROTO; $brcount = 0; # print STDERR "end of doc comment, looking for prototype\n"; } elsif (/$doc_content/) { @@ -2834,9 +2839,9 @@ sub process_file($) { print STDERR "${file}:$.: warning: bad line: $_"; ++$warnings; } - } elsif ($state == 5) { # scanning for split parameters + } elsif ($state == STATE_INLINE) { # scanning for inline parameters # First line (state 1) needs to be a @parameter - if ($split_doc_state == 1 && /$doc_split_sect/o) { + if ($inline_doc_state == STATE_INLINE_NAME && /$doc_inline_sect/o) { $section = $1; $contents = $2; if ($contents ne "") { @@ -2846,37 +2851,37 @@ sub process_file($) { } $contents .= "\n"; } - $split_doc_state = 2; + $inline_doc_state = STATE_INLINE_TEXT; # Documentation block end */ - } elsif (/$doc_split_end/) { + } elsif (/$doc_inline_end/) { if (($contents ne "") && ($contents ne "\n")) { dump_section($file, $section, xml_escape($contents)); $section = $section_default; $contents = ""; } - $state = 3; - $split_doc_state = 0; + $state = STATE_PROTO; + $inline_doc_state = STATE_INLINE_NA; # Regular text } elsif (/$doc_content/) { - if ($split_doc_state == 2) { + if ($inline_doc_state == STATE_INLINE_TEXT) { $contents .= $1 . "\n"; - } elsif ($split_doc_state == 1) { - $split_doc_state = 4; + } elsif ($inline_doc_state == STATE_INLINE_NAME) { + $inline_doc_state = STATE_INLINE_ERROR; print STDERR "Warning(${file}:$.): "; print STDERR "Incorrect use of kernel-doc format: $_"; ++$warnings; } } - } elsif ($state == 3) { # scanning for function '{' (end of prototype) - if (/$doc_split_start/) { - $state = 5; - $split_doc_state = 1; + } elsif ($state == STATE_PROTO) { # scanning for function '{' (end of prototype) + if (/$doc_inline_start/) { + $state = STATE_INLINE; + $inline_doc_state = STATE_INLINE_NAME; } elsif ($decl_type eq 'function') { process_state3_function($_, $file); } else { process_state3_type($_, $file); } - } elsif ($state == 4) { + } elsif ($state == STATE_DOCBLOCK) { # Documentation block if (/$doc_block/) { dump_doc_section($file, $section, xml_escape($contents)); @@ -2907,7 +2912,7 @@ sub process_file($) { %sections = (); @sectionlist = (); $prototype = ""; - $state = 0; + $state = STATE_NORMAL; } elsif (/$doc_content/) { -- cgit v1.2.3-71-gd317 From b6c3f456cfed53e9f06f431270c9dcd52010785e Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sun, 29 May 2016 22:19:35 +0300 Subject: kernel-doc: add names for output selection Make the output selection a bit more readable by adding constants for the various types of output selection. While at it, actually call the variable for choosing what to output $output_selection. No functional changes. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 47 ++++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 17 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index cb5fd248ac57..dd08944b0a6f 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -312,7 +312,15 @@ my $no_doc_sections = 0; my @highlights = @highlights_man; my $blankline = $blankline_man; my $modulename = "Kernel API"; -my $function_only = 0; + +use constant { + OUTPUT_ALL => 0, # output all symbols and doc sections + OUTPUT_INCLUDE => 1, # output only specified symbols + OUTPUT_EXCLUDE => 2, # output everything except specified symbols + OUTPUT_EXPORTED => 3, # output exported symbols + OUTPUT_INTERNAL => 4, # output non-exported symbols +}; +my $output_selection = OUTPUT_ALL; my $show_not_found = 0; my @build_time; @@ -449,18 +457,18 @@ while ($ARGV[0] =~ m/^-(.*)/) { } elsif ($cmd eq "-module") { # not needed for XML, inherits from calling document $modulename = shift @ARGV; } elsif ($cmd eq "-function") { # to only output specific functions - $function_only = 1; + $output_selection = OUTPUT_INCLUDE; $function = shift @ARGV; $function_table{$function} = 1; - } elsif ($cmd eq "-nofunction") { # to only output specific functions - $function_only = 2; + } elsif ($cmd eq "-nofunction") { # output all except specific functions + $output_selection = OUTPUT_EXCLUDE; $function = shift @ARGV; $function_table{$function} = 1; } elsif ($cmd eq "-export") { # only exported symbols - $function_only = 3; + $output_selection = OUTPUT_EXPORTED; %function_table = () } elsif ($cmd eq "-internal") { # only non-exported symbols - $function_only = 4; + $output_selection = OUTPUT_INTERNAL; %function_table = () } elsif ($cmd eq "-v") { $verbose = 1; @@ -530,15 +538,17 @@ sub dump_doc_section { return; } - if (($function_only == 0) || - ( $function_only == 1 && defined($function_table{$name})) || - ( $function_only == 2 && !defined($function_table{$name}))) + if (($output_selection == OUTPUT_ALL) || + ($output_selection == OUTPUT_INCLUDE && + defined($function_table{$name})) || + ($output_selection == OUTPUT_EXCLUDE && + !defined($function_table{$name}))) { dump_section($file, $name, $contents); output_blockhead({'sectionlist' => \@sectionlist, 'sections' => \%sections, 'module' => $modulename, - 'content-only' => ($function_only != 0), }); + 'content-only' => ($output_selection != OUTPUT_ALL), }); } } @@ -1988,11 +1998,13 @@ sub output_declaration { my $name = shift; my $functype = shift; my $func = "output_${functype}_$output_mode"; - if (($function_only==0) || - ( ($function_only == 1 || $function_only == 3) && - defined($function_table{$name})) || - ( ($function_only == 2 || $function_only == 4) && - !($functype eq "function" && defined($function_table{$name})))) + if (($output_selection == OUTPUT_ALL) || + (($output_selection == OUTPUT_INCLUDE || + $output_selection == OUTPUT_EXPORTED) && + defined($function_table{$name})) || + (($output_selection == OUTPUT_EXCLUDE || + $output_selection == OUTPUT_INTERNAL) && + !($functype eq "function" && defined($function_table{$name})))) { &$func(@_); $section_counter++; @@ -2696,7 +2708,8 @@ sub process_file($) { } # two passes for -export and -internal - if ($function_only == 3 || $function_only == 4) { + if ($output_selection == OUTPUT_EXPORTED || + $output_selection == OUTPUT_INTERNAL) { while () { if (/$export_symbol/o) { $function_table{$2} = 1; @@ -2929,7 +2942,7 @@ sub process_file($) { } if ($initial_section_counter == $section_counter) { print STDERR "${file}:1: warning: no structured comments found\n"; - if (($function_only == 1) && ($show_not_found == 1)) { + if (($output_selection == OUTPUT_INCLUDE) && ($show_not_found == 1)) { print STDERR " Was looking for '$_'.\n" for keys %function_table; } if ($output_mode eq "xml") { -- cgit v1.2.3-71-gd317 From 9e72184b55df2b5b8ebdcf0470bd43ef32dc518f Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sun, 29 May 2016 22:27:35 +0300 Subject: kernel-doc/rst: do not output DOC: section titles for requested ones If the user requests a specific DOC: section by name, do not output its section title. In these cases, the surrounding context already has a heading, and the DOC: section title is only used as an identifier and a heading for clarity in the source file. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index dd08944b0a6f..659d529b99d8 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -1764,7 +1764,9 @@ sub output_blockhead_rst(%) { my ($parameter, $section); foreach $section (@{$args{'sectionlist'}}) { - print "**$section**\n\n"; + if ($output_selection != OUTPUT_INCLUDE) { + print "**$section**\n\n"; + } output_highlight_rst($args{'sections'}{$section}); print "\n"; } -- cgit v1.2.3-71-gd317 From a19bce6433c2566dd210f4245525c297ca952574 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 26 May 2016 11:28:16 +0300 Subject: kernel-doc/rst: reference functions according to C domain spec The Sphinx C domain spec says function references should include the parens (). Signed-off-by: Jani Nikula --- scripts/kernel-doc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 659d529b99d8..e8651d7cf1cd 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -280,7 +280,7 @@ my $blankline_text = ""; # rst-mode my @highlights_rst = ( [$type_constant, "``\$1``"], - [$type_func, "\\:c\\:func\\:`\$1`"], + [$type_func, "\\:c\\:func\\:`\$1()`"], [$type_struct_full, "\\:c\\:type\\:`\$1 \$2 <\$2>`"], [$type_enum_full, "\\:c\\:type\\:`\$1 \$2 <\$2>`"], [$type_struct, "\\:c\\:type\\:`struct \$1 <\$1>`"], -- cgit v1.2.3-71-gd317 From a7291e7e03f8b45a4b028a410063dc94f9bff8c0 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 26 May 2016 13:57:06 +0300 Subject: kernel-doc/rst: &foo references are more universal than structs It's possible to use &foo to reference structs, enums, typedefs, etc. in the Sphinx C domain. Thus do not prefix the links with "struct". Signed-off-by: Jani Nikula --- scripts/kernel-doc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index e8651d7cf1cd..e7aa792e7f1b 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -283,7 +283,8 @@ my @highlights_rst = ( [$type_func, "\\:c\\:func\\:`\$1()`"], [$type_struct_full, "\\:c\\:type\\:`\$1 \$2 <\$2>`"], [$type_enum_full, "\\:c\\:type\\:`\$1 \$2 <\$2>`"], - [$type_struct, "\\:c\\:type\\:`struct \$1 <\$1>`"], + # in rst this can refer to any type + [$type_struct, "\\:c\\:type\\:`\$1`"], [$type_param, "**\$1**"] ); my $blankline_rst = "\n"; -- cgit v1.2.3-71-gd317 From 47ae7aed34ee9017e9eeb2ad066786239456a90f Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 26 May 2016 13:57:18 +0300 Subject: kernel-doc/rst: add support for &union foo and &typedef foo references Let the user use "&union foo" and "&typedef foo" to reference foo. The difference to using "union &foo", "typedef &foo", or just "&foo" (which are valid too) is that "union" and "typedef" become part of the link text. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index e7aa792e7f1b..446c0912395e 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -212,6 +212,8 @@ my $type_struct_xml = '\\&((struct\s*)*[_\w]+)'; my $type_env = '(\$\w+)'; my $type_enum_full = '\&(enum)\s*([_\w]+)'; my $type_struct_full = '\&(struct)\s*([_\w]+)'; +my $type_typedef_full = '\&(typedef)\s*([_\w]+)'; +my $type_union_full = '\&(union)\s*([_\w]+)'; # Output conversion substitutions. # One for each output format @@ -283,6 +285,8 @@ my @highlights_rst = ( [$type_func, "\\:c\\:func\\:`\$1()`"], [$type_struct_full, "\\:c\\:type\\:`\$1 \$2 <\$2>`"], [$type_enum_full, "\\:c\\:type\\:`\$1 \$2 <\$2>`"], + [$type_typedef_full, "\\:c\\:type\\:`\$1 \$2 <\$2>`"], + [$type_union_full, "\\:c\\:type\\:`\$1 \$2 <\$2>`"], # in rst this can refer to any type [$type_struct, "\\:c\\:type\\:`\$1`"], [$type_param, "**\$1**"] -- cgit v1.2.3-71-gd317 From f3341dcf3bdcd1209b2911f35e4e970b789c4744 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 26 May 2016 16:35:02 +0300 Subject: kernel-doc/rst: add support for struct/union/enum member references Link "&foo->bar", "&foo->bar()", "&foo.bar", and "&foo.bar()" to the struct/union/enum foo definition. The members themselves do not currently have anchors to link to, but this is better than nothing, and promotes a universal notation. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 446c0912395e..e0fd14f6d711 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -214,6 +214,8 @@ my $type_enum_full = '\&(enum)\s*([_\w]+)'; my $type_struct_full = '\&(struct)\s*([_\w]+)'; my $type_typedef_full = '\&(typedef)\s*([_\w]+)'; my $type_union_full = '\&(union)\s*([_\w]+)'; +my $type_member = '\&([_\w]+)((\.|->)[_\w]+)'; +my $type_member_func = $type_member . '\(\)'; # Output conversion substitutions. # One for each output format @@ -282,6 +284,9 @@ my $blankline_text = ""; # rst-mode my @highlights_rst = ( [$type_constant, "``\$1``"], + # Note: need to escape () to avoid func matching later + [$type_member_func, "\\:c\\:type\\:`\$1\$2\\\\(\\\\) <\$1>`"], + [$type_member, "\\:c\\:type\\:`\$1\$2 <\$1>`"], [$type_func, "\\:c\\:func\\:`\$1()`"], [$type_struct_full, "\\:c\\:type\\:`\$1 \$2 <\$2>`"], [$type_enum_full, "\\:c\\:type\\:`\$1 \$2 <\$2>`"], -- cgit v1.2.3-71-gd317 From 9c9193c49c1f1662b00476b3d0697a1be37c6b08 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 26 May 2016 16:56:27 +0300 Subject: kernel-doc/rst: drop redundant unescape in highlighting This bit is already done by xml_unescape() above. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 1 - 1 file changed, 1 deletion(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index e0fd14f6d711..8f9eac509377 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -1796,7 +1796,6 @@ sub output_highlight_rst { if ($line eq "") { print $lineprefix, $blankline; } else { - $line =~ s/\\\\\\/\&/g; print $lineprefix, $line; } print "\n"; -- cgit v1.2.3-71-gd317 From c099ff6989baf286da8eaed5c7b3d18ae60ea2e7 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 26 May 2016 17:18:17 +0300 Subject: kernel-doc/rst: highlight function/struct/enum purpose lines too Let the user use @foo, &bar, %baz, etc. in the first kernel-doc purpose line too. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 8f9eac509377..76bad55c031e 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -1805,6 +1805,7 @@ sub output_highlight_rst { sub output_function_rst(%) { my %args = %{$_[0]}; my ($parameter, $section); + my $oldprefix = $lineprefix; my $start; print ".. c:function:: "; @@ -1829,9 +1830,13 @@ sub output_function_rst(%) { print $type . " " . $parameter; } } - print ")\n\n " . $args{'purpose'} . "\n\n"; + print ")\n\n"; + $lineprefix = " "; + output_highlight_rst($args{'purpose'}); + print "\n"; print ":Parameters:\n\n"; + $lineprefix = " "; foreach $parameter (@{$args{'parameterlist'}}) { my $parameter_name = $parameter; #$parameter_name =~ s/\[.*//; @@ -1844,15 +1849,14 @@ sub output_function_rst(%) { } if (defined($args{'parameterdescs'}{$parameter_name}) && $args{'parameterdescs'}{$parameter_name} ne $undescribed) { - my $oldprefix = $lineprefix; - $lineprefix = " "; output_highlight_rst($args{'parameterdescs'}{$parameter_name}); - $lineprefix = $oldprefix; } else { print "\n _undescribed_\n"; } print "\n"; } + + $lineprefix = $oldprefix; output_section_rst(@_); } @@ -1874,14 +1878,16 @@ sub output_section_rst(%) { sub output_enum_rst(%) { my %args = %{$_[0]}; my ($parameter); + my $oldprefix = $lineprefix; my $count; my $name = "enum " . $args{'enum'}; print "\n\n.. c:type:: " . $name . "\n\n"; - print " " . $args{'purpose'} . "\n\n"; + $lineprefix = " "; + output_highlight_rst($args{'purpose'}); + print "\n"; print "..\n\n:Constants:\n\n"; - my $oldprefix = $lineprefix; $lineprefix = " "; foreach $parameter (@{$args{'parameterlist'}}) { print " `$parameter`\n"; @@ -1892,6 +1898,7 @@ sub output_enum_rst(%) { } print "\n"; } + $lineprefix = $oldprefix; output_section_rst(@_); } @@ -1899,23 +1906,29 @@ sub output_enum_rst(%) { sub output_typedef_rst(%) { my %args = %{$_[0]}; my ($parameter); - my $count; + my $oldprefix = $lineprefix; my $name = "typedef " . $args{'typedef'}; ### FIXME: should the name below contain "typedef" or not? print "\n\n.. c:type:: " . $name . "\n\n"; - print " " . $args{'purpose'} . "\n\n"; + $lineprefix = " "; + output_highlight_rst($args{'purpose'}); + print "\n"; + $lineprefix = $oldprefix; output_section_rst(@_); } sub output_struct_rst(%) { my %args = %{$_[0]}; my ($parameter); + my $oldprefix = $lineprefix; my $name = $args{'type'} . " " . $args{'struct'}; print "\n\n.. c:type:: " . $name . "\n\n"; - print " " . $args{'purpose'} . "\n\n"; + $lineprefix = " "; + output_highlight_rst($args{'purpose'}); + print "\n"; print ":Definition:\n\n"; print " ::\n\n"; @@ -1944,6 +1957,7 @@ sub output_struct_rst(%) { print " };\n\n"; print ":Members:\n\n"; + $lineprefix = " "; foreach $parameter (@{$args{'parameterlist'}}) { ($parameter =~ /^#/) && next; @@ -1953,13 +1967,12 @@ sub output_struct_rst(%) { ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next; $type = $args{'parametertypes'}{$parameter}; print " `$type $parameter`" . "\n"; - my $oldprefix = $lineprefix; - $lineprefix = " "; output_highlight_rst($args{'parameterdescs'}{$parameter_name}); - $lineprefix = $oldprefix; print "\n"; } print "\n"; + + $lineprefix = $oldprefix; output_section_rst(@_); } -- cgit v1.2.3-71-gd317 From 13901ef27c354e1bab49a30184ae3b96d96e521a Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 26 May 2016 08:57:29 +0300 Subject: kernel-doc: do not regard $, %, or & prefixes as special in section names The use of these is confusing in the script, and per this grep, they're not used anywhere anyway: $ git grep " \* [%$&][a-zA-Z0-9_]*:" -- *.[ch] | grep -v "\$\(Id\|Revision\|Date\)" While at it, throw out the constants array, nothing is ever put there again. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 76bad55c031e..f795660dfc7b 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -396,14 +396,12 @@ my $inline_doc_state; # 'function', 'struct', 'union', 'enum', 'typedef' my $decl_type; -my $doc_special = "\@\%\$\&"; - my $doc_start = '^/\*\*\s*$'; # Allow whitespace at end of comment start. my $doc_end = '\*/'; my $doc_com = '\s*\*\s*'; my $doc_com_body = '\s*\* ?'; my $doc_decl = $doc_com . '(\w+)'; -my $doc_sect = $doc_com . '([' . $doc_special . ']?[\w\s]+):(.*)'; +my $doc_sect = $doc_com . '(\@?[\w\s]+):(.*)'; my $doc_content = $doc_com_body . '(.*)'; my $doc_block = $doc_com . 'DOC:\s*(.*)?'; my $doc_inline_start = '^\s*/\*\*\s*$'; @@ -411,7 +409,6 @@ my $doc_inline_sect = '\s*\*\s*(@[\w\s]+):(.*)'; my $doc_inline_end = '^\s*\*/\s*$'; my $export_symbol = '^\s*EXPORT_SYMBOL(_GPL)?\s*\(\s*(\w+)\s*\)\s*;'; -my %constants; my %parameterdescs; my @parameterlist; my %sections; @@ -511,11 +508,7 @@ sub dump_section { my $name = shift; my $contents = join "\n", @_; - if ($name =~ m/$type_constant/) { - $name = $1; -# print STDERR "constant section '$1' = '$contents'\n"; - $constants{$name} = $contents; - } elsif ($name =~ m/$type_param/) { + if ($name =~ m/$type_param/) { # print STDERR "parameter def '$1' = '$contents'\n"; $name = $1; $parameterdescs{$name} = $contents; @@ -2528,7 +2521,6 @@ sub dump_function($$) { sub reset_state { $function = ""; - %constants = (); %parameterdescs = (); %parametertypes = (); @parameterlist = (); @@ -2924,7 +2916,6 @@ sub process_file($) { dump_doc_section($file, $section, xml_escape($contents)); $contents = ""; $function = ""; - %constants = (); %parameterdescs = (); %parametertypes = (); @parameterlist = (); @@ -2942,7 +2933,6 @@ sub process_file($) { dump_doc_section($file, $section, xml_escape($contents)); $contents = ""; $function = ""; - %constants = (); %parameterdescs = (); %parametertypes = (); @parameterlist = (); -- cgit v1.2.3-71-gd317 From a0b96c2dbdb2c2511af407a2657d580f16c3b6f1 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 26 May 2016 22:04:06 +0300 Subject: kernel-doc: fix wrong code indentation No functional changes. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index f795660dfc7b..c154c3205df1 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -2878,7 +2878,7 @@ sub process_file($) { substr($contents, 0, 1) eq "\t") { $contents = substr($contents, 1); } - $contents .= "\n"; + $contents .= "\n"; } $inline_doc_state = STATE_INLINE_TEXT; # Documentation block end */ -- cgit v1.2.3-71-gd317 From 830066a7a317e3e8872cb2d21dd24af0815f51f9 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 26 May 2016 22:04:33 +0300 Subject: kernel-doc/rst: blank lines in output are not needed Current approach leads to two blank lines, while one is enough. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index c154c3205df1..a89ff3ca366c 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -1786,12 +1786,7 @@ sub output_highlight_rst { die $@ if $@; foreach $line (split "\n", $contents) { - if ($line eq "") { - print $lineprefix, $blankline; - } else { - print $lineprefix, $line; - } - print "\n"; + print $lineprefix . $line . "\n"; } } -- cgit v1.2.3-71-gd317 From 6450c8957ee3a8f58191c2ed6c5b71c7b7d1b310 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 26 May 2016 22:04:42 +0300 Subject: kernel-doc: strip leading blank lines from inline doc comments The inline member markup allows whitespace lines before the actual documentation starts. Strip the leading blank lines. This improves the rst output. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index a89ff3ca366c..e8ea295567a3 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -2889,6 +2889,10 @@ sub process_file($) { } elsif (/$doc_content/) { if ($inline_doc_state == STATE_INLINE_TEXT) { $contents .= $1 . "\n"; + # nuke leading blank lines + if ($contents =~ /^\s*$/) { + $contents = ""; + } } elsif ($inline_doc_state == STATE_INLINE_NAME) { $inline_doc_state = STATE_INLINE_ERROR; print STDERR "Warning(${file}:$.): "; -- cgit v1.2.3-71-gd317 From ecbcfba126e857de8dd4996fe31fad782dd6bae0 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Thu, 26 May 2016 18:30:27 +0300 Subject: kernel-doc/rst: change the output layout Move away from field lists, and simply use **strong emphasis** for section headings on lines of their own. Do not use rst section headings, because their nesting depth depends on the surrounding context, which kernel-doc has no knowledge of. Also, they do not need to end up in any table of contexts or indexes. There are two related immediate benefits. Field lists are typically rendered in two columns, while the new style uses the horizontal width better. With no extra indent on the left, there's no need to be as fussy about it. Field lists are more susceptible to indentation problems than the new style. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index e8ea295567a3..4f559de8b173 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -1823,23 +1823,23 @@ sub output_function_rst(%) { output_highlight_rst($args{'purpose'}); print "\n"; - print ":Parameters:\n\n"; - $lineprefix = " "; + print "**Parameters**\n\n"; + $lineprefix = " "; foreach $parameter (@{$args{'parameterlist'}}) { my $parameter_name = $parameter; #$parameter_name =~ s/\[.*//; $type = $args{'parametertypes'}{$parameter}; if ($type ne "") { - print " ``$type $parameter``\n"; + print "``$type $parameter``\n"; } else { - print " ``$parameter``\n"; + print "``$parameter``\n"; } if (defined($args{'parameterdescs'}{$parameter_name}) && $args{'parameterdescs'}{$parameter_name} ne $undescribed) { output_highlight_rst($args{'parameterdescs'}{$parameter_name}); } else { - print "\n _undescribed_\n"; + print " _undescribed_\n"; } print "\n"; } @@ -1852,10 +1852,10 @@ sub output_section_rst(%) { my %args = %{$_[0]}; my $section; my $oldprefix = $lineprefix; - $lineprefix = " "; + $lineprefix = ""; foreach $section (@{$args{'sectionlist'}}) { - print ":$section:\n\n"; + print "**$section**\n\n"; output_highlight_rst($args{'sections'}{$section}); print "\n"; } @@ -1875,14 +1875,14 @@ sub output_enum_rst(%) { output_highlight_rst($args{'purpose'}); print "\n"; - print "..\n\n:Constants:\n\n"; - $lineprefix = " "; + print "**Constants**\n\n"; + $lineprefix = " "; foreach $parameter (@{$args{'parameterlist'}}) { - print " `$parameter`\n"; + print "``$parameter``\n"; if ($args{'parameterdescs'}{$parameter} ne $undescribed) { output_highlight_rst($args{'parameterdescs'}{$parameter}); } else { - print " undescribed\n"; + print " _undescribed_\n"; } print "\n"; } @@ -1918,12 +1918,12 @@ sub output_struct_rst(%) { output_highlight_rst($args{'purpose'}); print "\n"; - print ":Definition:\n\n"; - print " ::\n\n"; + print "**Definition**\n\n"; + print "::\n\n"; print " " . $args{'type'} . " " . $args{'struct'} . " {\n"; foreach $parameter (@{$args{'parameterlist'}}) { if ($parameter =~ /^#/) { - print " " . "$parameter\n"; + print " " . "$parameter\n"; next; } @@ -1944,8 +1944,8 @@ sub output_struct_rst(%) { } print " };\n\n"; - print ":Members:\n\n"; - $lineprefix = " "; + print "**Members**\n\n"; + $lineprefix = " "; foreach $parameter (@{$args{'parameterlist'}}) { ($parameter =~ /^#/) && next; @@ -1954,7 +1954,7 @@ sub output_struct_rst(%) { ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next; $type = $args{'parametertypes'}{$parameter}; - print " `$type $parameter`" . "\n"; + print "``$type $parameter``\n"; output_highlight_rst($args{'parameterdescs'}{$parameter_name}); print "\n"; } -- cgit v1.2.3-71-gd317 From 0a7263014b3a0e05b52ccef314e2ccf6f4550a8b Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sat, 28 May 2016 14:50:20 +0300 Subject: kernel-doc: improve handling of whitespace on the first line param description Handle whitespace on the first line of param text as if it was the empty string. There is no need to add the newline in this case. This improves the rst output in particular, where blank lines may be problematic in parameter lists. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 4f559de8b173..e93e796b17ce 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -2814,11 +2814,11 @@ sub process_file($) { $in_doc_sect = 1; $in_purpose = 0; $contents = $newcontents; + while ((substr($contents, 0, 1) eq " ") || + substr($contents, 0, 1) eq "\t") { + $contents = substr($contents, 1); + } if ($contents ne "") { - while ((substr($contents, 0, 1) eq " ") || - substr($contents, 0, 1) eq "\t") { - $contents = substr($contents, 1); - } $contents .= "\n"; } $section = $newsection; -- cgit v1.2.3-71-gd317 From b7886de43c9f8a19685cd6e81135de63b9529911 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sat, 28 May 2016 00:41:50 +0300 Subject: kernel-doc: strip leading whitespace from continued param descs If a param description spans multiple lines, check any leading whitespace in the first continuation line, and remove same amount of whitespace from following lines. This allows indentation in the multi-line parameter descriptions for aesthetical reasons while not causing accidentally significant indentation in the rst output. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index e93e796b17ce..f6f37e71dc08 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -2701,6 +2701,7 @@ sub process_file($) { my $in_purpose = 0; my $initial_section_counter = $section_counter; my ($orig_file) = @_; + my $leading_space; if (defined($ENV{'SRCTREE'})) { $file = "$ENV{'SRCTREE'}" . "/" . $orig_file; @@ -2822,6 +2823,7 @@ sub process_file($) { $contents .= "\n"; } $section = $newsection; + $leading_space = undef; } elsif (/$doc_end/) { if (($contents ne "") && ($contents ne "\n")) { dump_section($file, $section, xml_escape($contents)); @@ -2856,7 +2858,19 @@ sub process_file($) { $declaration_purpose .= " " . xml_escape($1); $declaration_purpose =~ s/\s+/ /g; } else { - $contents .= $1 . "\n"; + my $cont = $1; + if ($section =~ m/^@/ || $section eq $section_context) { + if (!defined $leading_space) { + if ($cont =~ m/^(\s+)/) { + $leading_space = $1; + } else { + $leading_space = ""; + } + } + + $cont =~ s/^$leading_space//; + } + $contents .= $cont . "\n"; } } else { # i dont know - bad line? ignore. -- cgit v1.2.3-71-gd317 From d4b08e0cd2d74eb652d580607982d5054dc42991 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sat, 28 May 2016 00:48:17 +0300 Subject: kernel-doc/rst: use *undescribed* instead of _undescribed_ The latter isn't special to rst. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index f6f37e71dc08..19cee0cd53a3 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -1839,7 +1839,7 @@ sub output_function_rst(%) { $args{'parameterdescs'}{$parameter_name} ne $undescribed) { output_highlight_rst($args{'parameterdescs'}{$parameter_name}); } else { - print " _undescribed_\n"; + print " *undescribed*\n"; } print "\n"; } @@ -1882,7 +1882,7 @@ sub output_enum_rst(%) { if ($args{'parameterdescs'}{$parameter} ne $undescribed) { output_highlight_rst($args{'parameterdescs'}{$parameter}); } else { - print " _undescribed_\n"; + print " *undescribed*\n"; } print "\n"; } -- cgit v1.2.3-71-gd317 From cddfe325afedb67a15fbe1a91e82ffed40236413 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sat, 28 May 2016 10:48:37 +0300 Subject: kernel-doc/rst: remove fixme comment Yes, for our purposes the type should contain typedef. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 1 - 1 file changed, 1 deletion(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 19cee0cd53a3..425a94be04f6 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -1897,7 +1897,6 @@ sub output_typedef_rst(%) { my $oldprefix = $lineprefix; my $name = "typedef " . $args{'typedef'}; - ### FIXME: should the name below contain "typedef" or not? print "\n\n.. c:type:: " . $name . "\n\n"; $lineprefix = " "; output_highlight_rst($args{'purpose'}); -- cgit v1.2.3-71-gd317 From f624adef3d0b9975076c1ba7549b81ed19e34437 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sun, 29 May 2016 11:35:28 +0300 Subject: kernel-doc: limit the "section header:" detection to a select few kernel-doc currently identifies anything matching "section header:" (specifically a string of word characters and spaces followed by a colon) as a new section in the documentation comment, and renders the section header accordingly. Unfortunately, this turns all uses of colon into sections, mostly unintentionally. Considering the output, erroneously creating sections when not intended is always worse than erroneously not creating sections when intended. For example, a line with "http://example.com" turns into a "http" heading followed by "//example.com" in normal text style, which is quite ugly. OTOH, "WARNING: Beware of the Leopard" is just fine even if "WARNING" does not turn into a heading. It is virtually impossible to change all the kernel-doc comments, either way. The compromise is to pick the most commonly used and depended on section headers (with variants) and accept them as section headers. The accepted section headers are, case insensitive: * description: * context: * return: * returns: Additionally, case sensitive: * @return: All of the above are commonly used in the kernel-doc comments, and will result in worse output if not identified as section headers. Also, kernel-doc already has some special handling for all of them, so there's nothing particularly controversial in adding more special treatment for them. While at it, improve the whitespace handling surrounding section names. Do not consider the whitespace as part of the name. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 425a94be04f6..20136564f264 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -401,7 +401,8 @@ my $doc_end = '\*/'; my $doc_com = '\s*\*\s*'; my $doc_com_body = '\s*\* ?'; my $doc_decl = $doc_com . '(\w+)'; -my $doc_sect = $doc_com . '(\@?[\w\s]+):(.*)'; +# @params and a strictly limited set of supported section names +my $doc_sect = $doc_com . '\s*(\@\w+|description|context|returns?)\s*:(.*)'; my $doc_content = $doc_com_body . '(.*)'; my $doc_block = $doc_com . 'DOC:\s*(.*)?'; my $doc_inline_start = '^\s*/\*\*\s*$'; @@ -417,6 +418,8 @@ my $sectcheck; my $struct_actual; my $contents = ""; + +# the canonical section names. see also $doc_sect above. my $section_default = "Description"; # default section my $section_intro = "Introduction"; my $section = $section_default; @@ -2798,10 +2801,22 @@ sub process_file($) { $state = STATE_NORMAL; } } elsif ($state == STATE_FIELD) { # look for head: lines, and include content - if (/$doc_sect/o) { + if (/$doc_sect/i) { # case insensitive for supported section names $newsection = $1; $newcontents = $2; + # map the supported section names to the canonical names + if ($newsection =~ m/^description$/i) { + $newsection = $section_default; + } elsif ($newsection =~ m/^context$/i) { + $newsection = $section_context; + } elsif ($newsection =~ m/^returns?$/i) { + $newsection = $section_return; + } elsif ($newsection =~ m/^\@return$/) { + # special: @return is a section, not a param description + $newsection = $section_return; + } + if (($contents ne "") && ($contents ne "\n")) { if (!$in_doc_sect && $verbose) { print STDERR "${file}:$.: warning: contents before sections\n"; -- cgit v1.2.3-71-gd317 From 32217761ee9db0215350dfe1ca4e66f312fb8c54 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sun, 29 May 2016 09:40:44 +0300 Subject: kernel-doc: concatenate contents of colliding sections If there are multiple sections with the same section name, the current implementation results in several sections by the same heading, with the content duplicated from the last section to all. Even if there's the error message, a more graceful approach is to combine all the identically named sections into one, with concatenated contents. With the supported sections already limited to select few, there are massively fewer collisions than there used to be, but this is still useful for e.g. when function parameters are documented in the middle of a documentation comment, with description spread out above and below. (This is not a recommended documentation style, but used in the kernel nonetheless.) We can now also demote the error to a warning. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 20136564f264..3ac4b57ed76a 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -524,11 +524,13 @@ sub dump_section { } else { # print STDERR "other section '$name' = '$contents'\n"; if (defined($sections{$name}) && ($sections{$name} ne "")) { - print STDERR "${file}:$.: error: duplicate section name '$name'\n"; - ++$errors; + print STDERR "${file}:$.: warning: duplicate section name '$name'\n"; + ++$warnings; + $sections{$name} .= $contents; + } else { + $sections{$name} = $contents; + push @sectionlist, $name; } - $sections{$name} = $contents; - push @sectionlist, $name; } } -- cgit v1.2.3-71-gd317 From 2f4ad40a05265827848200689094348363027069 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Mon, 30 May 2016 11:21:06 +0300 Subject: kernel-doc: reset contents and section harder If the documentation comment does not have params or sections, the section heading may leak from the previous documentation comment. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 3 +++ 1 file changed, 3 insertions(+) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 3ac4b57ed76a..0eb2e7b5bf10 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -2763,6 +2763,8 @@ sub process_file($) { } $state = STATE_FIELD; + $contents = ""; + $section = $section_default; if (/-(.*)/) { # strip leading/trailing/multiple spaces $descr= $1; @@ -2960,6 +2962,7 @@ sub process_file($) { elsif (/$doc_end/) { dump_doc_section($file, $section, xml_escape($contents)); + $section = $section_default; $contents = ""; $function = ""; %parameterdescs = (); -- cgit v1.2.3-71-gd317 From ebff7f929b2a72fa614f5e95fd34c56c82ac9c36 Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Wed, 1 Jun 2016 23:46:23 +0200 Subject: scripts/kernel-doc: Remove duplicated DOC: start handling Further up in the state machinery we switch from STATE_NAME to STATE_DOCBLOCK when we match /$doc_block/. Which means this block of code here is entirely unreachable, unless there are multiple DOC: sections within a single kernel-doc comment. Getting a list of all the files with more than one DOC: section using $ git grep -c " * DOC:" | grep -v ":1$" and then doing a full audit of them reveals there are no such comment blocks in the kernel. Supporting multiple DOC: sections in a single kernel-doc comment does not seem like a recommended way of doing things anyway, so nuke the code for simplicity. Cc: Jani Nikula Cc: linux-doc@vger.kernel.org Cc: Jonathan Corbet Signed-off-by: Daniel Vetter [Jani: amended the commit message] Signed-off-by: Jani Nikula --- scripts/kernel-doc | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 0eb2e7b5bf10..9fb26d142a56 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -2942,24 +2942,7 @@ sub process_file($) { process_state3_type($_, $file); } } elsif ($state == STATE_DOCBLOCK) { - # Documentation block - if (/$doc_block/) { - dump_doc_section($file, $section, xml_escape($contents)); - $contents = ""; - $function = ""; - %parameterdescs = (); - %parametertypes = (); - @parameterlist = (); - %sections = (); - @sectionlist = (); - $prototype = ""; - if ( $1 eq "" ) { - $section = $section_intro; - } else { - $section = $1; - } - } - elsif (/$doc_end/) + if (/$doc_end/) { dump_doc_section($file, $section, xml_escape($contents)); $section = $section_default; -- cgit v1.2.3-71-gd317 From b7afa92b55043b71a37a2f658553d3e260859859 Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Wed, 1 Jun 2016 23:46:24 +0200 Subject: scripts/kernel-doc: Also give functions symbolic names state3 = prototype parsing, so name them accordingly. Cc: Jani Nikula Cc: linux-doc@vger.kernel.org Cc: Jonathan Corbet Signed-off-by: Daniel Vetter Signed-off-by: Jani Nikula --- scripts/kernel-doc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 9fb26d142a56..4da6f952d18b 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -2593,7 +2593,7 @@ sub syscall_munge() { } } -sub process_state3_function($$) { +sub process_proto_function($$) { my $x = shift; my $file = shift; @@ -2623,7 +2623,7 @@ sub process_state3_function($$) { } } -sub process_state3_type($$) { +sub process_proto_type($$) { my $x = shift; my $file = shift; @@ -2937,9 +2937,9 @@ sub process_file($) { $state = STATE_INLINE; $inline_doc_state = STATE_INLINE_NAME; } elsif ($decl_type eq 'function') { - process_state3_function($_, $file); + process_proto_function($_, $file); } else { - process_state3_type($_, $file); + process_proto_type($_, $file); } } elsif ($state == STATE_DOCBLOCK) { if (/$doc_end/) -- cgit v1.2.3-71-gd317 From 0b0f5f29b282b18d26ce698e1aab0267234f77bf Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Fri, 3 Jun 2016 22:21:34 +0200 Subject: scripts/kernel-doc: Add option to inject line numbers Opt-in since this wreaks the rst output and must be removed by consumers again. This is useful to adjust the linenumbers for included kernel-doc snippets in shinx. With that sphinx error message will be accurate when there's issues with the rst-ness of the kernel-doc comments. Especially when transitioning a new docbook .tmpl to .rst this is extremely useful, since you can just use your editors compilation quickfix list to accurately jump from error to error. v2: - Also make sure that we filter the LINENO for purpose/at declaration start so it only shows for selected blocks, not all of them (Jani). While at it make it a notch more accurate. - Avoid undefined $lineno issues. I tried filtering these out at the callsite, but Jani spotted more when linting the entire kernel. Unamed unions and similar things aren't stored consistently and end up with an undefined line number (but also no kernel-doc text, just the parameter type). Simplify things and filter undefined line numbers in print_lineno() to catch them all. v3: Fix LINENO 0 issue for kernel-doc comments without @param: lines or any other special sections that directly jump to the description after the "name - purpose" line. Only really possible for functions without parameters. Noticed by Jani. Cc: Jani Nikula Cc: linux-doc@vger.kernel.org Cc: Jonathan Corbet Signed-off-by: Daniel Vetter Signed-off-by: Jani Nikula --- scripts/kernel-doc | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 4da6f952d18b..5192213c5005 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -74,6 +74,8 @@ Output selection (mutually exclusive): Output selection modifiers: -no-doc-sections Do not output DOC: sections. + -enable-lineno Enable output of #define LINENO lines. Only works with + reStructuredText format. Other parameters: -v Verbose output, more warnings and other information. @@ -319,6 +321,7 @@ my $verbose = 0; my $output_mode = "man"; my $output_preformatted = 0; my $no_doc_sections = 0; +my $enable_lineno = 0; my @highlights = @highlights_man; my $blankline = $blankline_man; my $modulename = "Kernel API"; @@ -351,6 +354,7 @@ my $man_date = ('January', 'February', 'March', 'April', 'May', 'June', # CAVEAT EMPTOR! Some of the others I localised may not want to be, which # could cause "use of undefined value" or other bugs. my ($function, %function_table, %parametertypes, $declaration_purpose); +my $declaration_start_line; my ($type, $declaration_name, $return_type); my ($newsection, $newcontents, $prototype, $brcount, %source_map); @@ -411,13 +415,16 @@ my $doc_inline_end = '^\s*\*/\s*$'; my $export_symbol = '^\s*EXPORT_SYMBOL(_GPL)?\s*\(\s*(\w+)\s*\)\s*;'; my %parameterdescs; +my %parameterdesc_start_lines; my @parameterlist; my %sections; my @sectionlist; +my %section_start_lines; my $sectcheck; my $struct_actual; my $contents = ""; +my $new_start_line = 0; # the canonical section names. see also $doc_sect above. my $section_default = "Description"; # default section @@ -486,6 +493,8 @@ while ($ARGV[0] =~ m/^-(.*)/) { usage(); } elsif ($cmd eq '-no-doc-sections') { $no_doc_sections = 1; + } elsif ($cmd eq '-enable-lineno') { + $enable_lineno = 1; } elsif ($cmd eq '-show-not-found') { $show_not_found = 1; } @@ -503,6 +512,13 @@ sub get_kernel_version() { return $version; } +# +sub print_lineno { + my $lineno = shift; + if ($enable_lineno && defined($lineno)) { + print "#define LINENO " . $lineno . "\n"; + } +} ## # dumps section contents to arrays/hashes intended for that purpose. # @@ -516,11 +532,15 @@ sub dump_section { $name = $1; $parameterdescs{$name} = $contents; $sectcheck = $sectcheck . $name . " "; + $parameterdesc_start_lines{$name} = $new_start_line; + $new_start_line = 0; } elsif ($name eq "@\.\.\.") { # print STDERR "parameter def '...' = '$contents'\n"; $name = "..."; $parameterdescs{$name} = $contents; $sectcheck = $sectcheck . $name . " "; + $parameterdesc_start_lines{$name} = $new_start_line; + $new_start_line = 0; } else { # print STDERR "other section '$name' = '$contents'\n"; if (defined($sections{$name}) && ($sections{$name} ne "")) { @@ -530,6 +550,8 @@ sub dump_section { } else { $sections{$name} = $contents; push @sectionlist, $name; + $section_start_lines{$name} = $new_start_line; + $new_start_line = 0; } } } @@ -1775,6 +1797,7 @@ sub output_blockhead_rst(%) { if ($output_selection != OUTPUT_INCLUDE) { print "**$section**\n\n"; } + print_lineno($section_start_lines{$section}); output_highlight_rst($args{'sections'}{$section}); print "\n"; } @@ -1824,6 +1847,7 @@ sub output_function_rst(%) { } } print ")\n\n"; + print_lineno($declaration_start_line); $lineprefix = " "; output_highlight_rst($args{'purpose'}); print "\n"; @@ -1840,6 +1864,9 @@ sub output_function_rst(%) { } else { print "``$parameter``\n"; } + + print_lineno($parameterdesc_start_lines{$parameter_name}); + if (defined($args{'parameterdescs'}{$parameter_name}) && $args{'parameterdescs'}{$parameter_name} ne $undescribed) { output_highlight_rst($args{'parameterdescs'}{$parameter_name}); @@ -1861,6 +1888,7 @@ sub output_section_rst(%) { foreach $section (@{$args{'sectionlist'}}) { print "**$section**\n\n"; + print_lineno($section_start_lines{$section}); output_highlight_rst($args{'sections'}{$section}); print "\n"; } @@ -1876,6 +1904,7 @@ sub output_enum_rst(%) { my $name = "enum " . $args{'enum'}; print "\n\n.. c:type:: " . $name . "\n\n"; + print_lineno($declaration_start_line); $lineprefix = " "; output_highlight_rst($args{'purpose'}); print "\n"; @@ -1903,6 +1932,7 @@ sub output_typedef_rst(%) { my $name = "typedef " . $args{'typedef'}; print "\n\n.. c:type:: " . $name . "\n\n"; + print_lineno($declaration_start_line); $lineprefix = " "; output_highlight_rst($args{'purpose'}); print "\n"; @@ -1918,6 +1948,7 @@ sub output_struct_rst(%) { my $name = $args{'type'} . " " . $args{'struct'}; print "\n\n.. c:type:: " . $name . "\n\n"; + print_lineno($declaration_start_line); $lineprefix = " "; output_highlight_rst($args{'purpose'}); print "\n"; @@ -1958,6 +1989,7 @@ sub output_struct_rst(%) { ($args{'parameterdescs'}{$parameter_name} ne $undescribed) || next; $type = $args{'parametertypes'}{$parameter}; + print_lineno($parameterdesc_start_lines{$parameter_name}); print "``$type $parameter``\n"; output_highlight_rst($args{'parameterdescs'}{$parameter_name}); print "\n"; @@ -2745,11 +2777,14 @@ sub process_file($) { if (/$doc_start/o) { $state = STATE_NAME; # next line is always the function name $in_doc_sect = 0; + $declaration_start_line = $. + 1; } } elsif ($state == STATE_NAME) {# this line is the function name (always) if (/$doc_block/o) { $state = STATE_DOCBLOCK; $contents = ""; + $new_start_line = $. + 1; + if ( $1 eq "" ) { $section = $section_intro; } else { @@ -2763,8 +2798,11 @@ sub process_file($) { } $state = STATE_FIELD; + # if there's no @param blocks need to set up default section + # here $contents = ""; $section = $section_default; + $new_start_line = $. + 1; if (/-(.*)/) { # strip leading/trailing/multiple spaces $descr= $1; @@ -2833,6 +2871,7 @@ sub process_file($) { $in_doc_sect = 1; $in_purpose = 0; $contents = $newcontents; + $new_start_line = $.; while ((substr($contents, 0, 1) eq " ") || substr($contents, 0, 1) eq "\t") { $contents = substr($contents, 1); @@ -2866,6 +2905,7 @@ sub process_file($) { dump_section($file, $section, xml_escape($contents)); $section = $section_default; $contents = ""; + $new_start_line = $.; } else { $contents .= "\n"; } @@ -2900,6 +2940,7 @@ sub process_file($) { if ($inline_doc_state == STATE_INLINE_NAME && /$doc_inline_sect/o) { $section = $1; $contents = $2; + $new_start_line = $.; if ($contents ne "") { while ((substr($contents, 0, 1) eq " ") || substr($contents, 0, 1) eq "\t") { -- cgit v1.2.3-71-gd317 From 24403874316a7180d367e51d7f7e25d5de1f78dd Mon Sep 17 00:00:00 2001 From: Emese Revfy Date: Tue, 24 May 2016 00:08:25 +0200 Subject: Shared library support Infrastructure for building independent shared library targets. Based on work created by the PaX Team. Signed-off-by: Emese Revfy Acked-by: Kees Cook Signed-off-by: Michal Marek --- scripts/Makefile.build | 2 +- scripts/Makefile.clean | 4 +++- scripts/Makefile.host | 55 +++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 58 insertions(+), 3 deletions(-) (limited to 'scripts') diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 0d1ca5bf42fb..11602e5efb3b 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -60,7 +60,7 @@ endif endif # Do not include host rules unless needed -ifneq ($(hostprogs-y)$(hostprogs-m),) +ifneq ($(hostprogs-y)$(hostprogs-m)$(hostlibs-y)$(hostlibs-m)$(hostcxxlibs-y)$(hostcxxlibs-m),) include scripts/Makefile.host endif diff --git a/scripts/Makefile.clean b/scripts/Makefile.clean index 55c96cb8070f..50616ea25131 100644 --- a/scripts/Makefile.clean +++ b/scripts/Makefile.clean @@ -38,7 +38,9 @@ subdir-ymn := $(addprefix $(obj)/,$(subdir-ymn)) __clean-files := $(extra-y) $(extra-m) $(extra-) \ $(always) $(targets) $(clean-files) \ $(host-progs) \ - $(hostprogs-y) $(hostprogs-m) $(hostprogs-) + $(hostprogs-y) $(hostprogs-m) $(hostprogs-) \ + $(hostlibs-y) $(hostlibs-m) $(hostlibs-) \ + $(hostcxxlibs-y) $(hostcxxlibs-m) __clean-files := $(filter-out $(no-clean-files), $(__clean-files)) diff --git a/scripts/Makefile.host b/scripts/Makefile.host index 133edfae5b8a..45b5b1aaedbd 100644 --- a/scripts/Makefile.host +++ b/scripts/Makefile.host @@ -20,7 +20,15 @@ # Will compile qconf as a C++ program, and menu as a C program. # They are linked as C++ code to the executable qconf +# hostcc-option +# Usage: cflags-y += $(call hostcc-option,-march=winchip-c6,-march=i586) + +hostcc-option = $(call try-run,\ + $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2)) + __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m)) +host-cshlib := $(sort $(hostlibs-y) $(hostlibs-m)) +host-cxxshlib := $(sort $(hostcxxlibs-y) $(hostcxxlibs-m)) # C code # Executables compiled from a single .c file @@ -42,6 +50,10 @@ host-cxxmulti := $(foreach m,$(__hostprogs),$(if $($(m)-cxxobjs),$(m))) # C++ Object (.o) files compiled from .cc files host-cxxobjs := $(sort $(foreach m,$(host-cxxmulti),$($(m)-cxxobjs))) +# Object (.o) files used by the shared libaries +host-cshobjs := $(sort $(foreach m,$(host-cshlib),$($(m:.so=-objs)))) +host-cxxshobjs := $(sort $(foreach m,$(host-cxxshlib),$($(m:.so=-objs)))) + # output directory for programs/.o files # hostprogs-y := tools/build may have been specified. # Retrieve also directory of .o files from prog-objs or prog-cxxobjs notation @@ -56,6 +68,10 @@ host-cmulti := $(addprefix $(obj)/,$(host-cmulti)) host-cobjs := $(addprefix $(obj)/,$(host-cobjs)) host-cxxmulti := $(addprefix $(obj)/,$(host-cxxmulti)) host-cxxobjs := $(addprefix $(obj)/,$(host-cxxobjs)) +host-cshlib := $(addprefix $(obj)/,$(host-cshlib)) +host-cxxshlib := $(addprefix $(obj)/,$(host-cxxshlib)) +host-cshobjs := $(addprefix $(obj)/,$(host-cshobjs)) +host-cxxshobjs := $(addprefix $(obj)/,$(host-cxxshobjs)) host-objdirs := $(addprefix $(obj)/,$(host-objdirs)) obj-dirs += $(host-objdirs) @@ -124,5 +140,42 @@ quiet_cmd_host-cxxobjs = HOSTCXX $@ $(host-cxxobjs): $(obj)/%.o: $(src)/%.cc FORCE $(call if_changed_dep,host-cxxobjs) +# Compile .c file, create position independent .o file +# host-cshobjs -> .o +quiet_cmd_host-cshobjs = HOSTCC -fPIC $@ + cmd_host-cshobjs = $(HOSTCC) $(hostc_flags) -fPIC -c -o $@ $< +$(host-cshobjs): $(obj)/%.o: $(src)/%.c FORCE + $(call if_changed_dep,host-cshobjs) + +# Compile .c file, create position independent .o file +# Note that plugin capable gcc versions can be either C or C++ based +# therefore plugin source files have to be compilable in both C and C++ mode. +# This is why a C++ compiler is invoked on a .c file. +# host-cxxshobjs -> .o +quiet_cmd_host-cxxshobjs = HOSTCXX -fPIC $@ + cmd_host-cxxshobjs = $(HOSTCXX) $(hostcxx_flags) -fPIC -c -o $@ $< +$(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE + $(call if_changed_dep,host-cxxshobjs) + +# Link a shared library, based on position independent .o files +# *.o -> .so shared library (host-cshlib) +quiet_cmd_host-cshlib = HOSTLLD -shared $@ + cmd_host-cshlib = $(HOSTCC) $(HOSTLDFLAGS) -shared -o $@ \ + $(addprefix $(obj)/,$($(@F:.so=-objs))) \ + $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F)) +$(host-cshlib): FORCE + $(call if_changed,host-cshlib) +$(call multi_depend, $(host-cshlib), .so, -objs) + +# Link a shared library, based on position independent .o files +# *.o -> .so shared library (host-cxxshlib) +quiet_cmd_host-cxxshlib = HOSTLLD -shared $@ + cmd_host-cxxshlib = $(HOSTCXX) $(HOSTLDFLAGS) -shared -o $@ \ + $(addprefix $(obj)/,$($(@F:.so=-objs))) \ + $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F)) +$(host-cxxshlib): FORCE + $(call if_changed,host-cxxshlib) +$(call multi_depend, $(host-cxxshlib), .so, -objs) + targets += $(host-csingle) $(host-cmulti) $(host-cobjs)\ - $(host-cxxmulti) $(host-cxxobjs) + $(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs) $(host-cxxshlib) $(host-cxxshobjs) -- cgit v1.2.3-71-gd317 From 6b90bd4ba40b38dc13c2782469c1c77e4ed79915 Mon Sep 17 00:00:00 2001 From: Emese Revfy Date: Tue, 24 May 2016 00:09:38 +0200 Subject: GCC plugin infrastructure This patch allows to build the whole kernel with GCC plugins. It was ported from grsecurity/PaX. The infrastructure supports building out-of-tree modules and building in a separate directory. Cross-compilation is supported too. Currently the x86, arm, arm64 and uml architectures enable plugins. The directory of the gcc plugins is scripts/gcc-plugins. You can use a file or a directory there. The plugins compile with these options: * -fno-rtti: gcc is compiled with this option so the plugins must use it too * -fno-exceptions: this is inherited from gcc too * -fasynchronous-unwind-tables: this is inherited from gcc too * -ggdb: it is useful for debugging a plugin (better backtrace on internal errors) * -Wno-narrowing: to suppress warnings from gcc headers (ipa-utils.h) * -Wno-unused-variable: to suppress warnings from gcc headers (gcc_version variable, plugin-version.h) The infrastructure introduces a new Makefile target called gcc-plugins. It supports all gcc versions from 4.5 to 6.0. The scripts/gcc-plugin.sh script chooses the proper host compiler (gcc-4.7 can be built by either gcc or g++). This script also checks the availability of the included headers in scripts/gcc-plugins/gcc-common.h. The gcc-common.h header contains frequently included headers for GCC plugins and it has a compatibility layer for the supported gcc versions. The gcc-generate-*-pass.h headers automatically generate the registration structures for GIMPLE, SIMPLE_IPA, IPA and RTL passes. Note that 'make clean' keeps the *.so files (only the distclean or mrproper targets clean all) because they are needed for out-of-tree modules. Based on work created by the PaX Team. Signed-off-by: Emese Revfy Acked-by: Kees Cook Signed-off-by: Michal Marek --- .gitignore | 1 + Documentation/dontdiff | 1 + Documentation/gcc-plugins.txt | 87 +++ MAINTAINERS | 9 + Makefile | 14 +- arch/Kconfig | 15 + arch/arm/Kconfig | 1 + arch/arm64/Kconfig | 1 + arch/um/Kconfig.common | 1 + arch/x86/Kconfig | 1 + arch/x86/entry/vdso/Makefile | 3 +- scripts/Makefile | 2 +- scripts/Makefile.gcc-plugins | 23 + scripts/gcc-plugin.sh | 51 ++ scripts/gcc-plugins/Makefile | 20 + scripts/gcc-plugins/gcc-common.h | 830 +++++++++++++++++++++ scripts/gcc-plugins/gcc-generate-gimple-pass.h | 175 +++++ scripts/gcc-plugins/gcc-generate-ipa-pass.h | 289 +++++++ scripts/gcc-plugins/gcc-generate-rtl-pass.h | 175 +++++ scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h | 175 +++++ scripts/link-vmlinux.sh | 2 +- scripts/package/builddeb | 1 + 22 files changed, 1872 insertions(+), 5 deletions(-) create mode 100644 Documentation/gcc-plugins.txt create mode 100644 scripts/Makefile.gcc-plugins create mode 100755 scripts/gcc-plugin.sh create mode 100644 scripts/gcc-plugins/Makefile create mode 100644 scripts/gcc-plugins/gcc-common.h create mode 100644 scripts/gcc-plugins/gcc-generate-gimple-pass.h create mode 100644 scripts/gcc-plugins/gcc-generate-ipa-pass.h create mode 100644 scripts/gcc-plugins/gcc-generate-rtl-pass.h create mode 100644 scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h (limited to 'scripts') diff --git a/.gitignore b/.gitignore index 0c320bf02586..2be25f771bd8 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,7 @@ modules.builtin Module.symvers *.dwo *.su +*.c.[012]*.* # # Top-level generic files diff --git a/Documentation/dontdiff b/Documentation/dontdiff index 8ea834f6b289..5385cba941d2 100644 --- a/Documentation/dontdiff +++ b/Documentation/dontdiff @@ -3,6 +3,7 @@ *.bc *.bin *.bz2 +*.c.[012]*.* *.cis *.cpio *.csp diff --git a/Documentation/gcc-plugins.txt b/Documentation/gcc-plugins.txt new file mode 100644 index 000000000000..891c69464434 --- /dev/null +++ b/Documentation/gcc-plugins.txt @@ -0,0 +1,87 @@ +GCC plugin infrastructure +========================= + + +1. Introduction +=============== + +GCC plugins are loadable modules that provide extra features to the +compiler [1]. They are useful for runtime instrumentation and static analysis. +We can analyse, change and add further code during compilation via +callbacks [2], GIMPLE [3], IPA [4] and RTL passes [5]. + +The GCC plugin infrastructure of the kernel supports all gcc versions from +4.5 to 6.0, building out-of-tree modules, cross-compilation and building in a +separate directory. +Plugin source files have to be compilable by both a C and a C++ compiler as well +because gcc versions 4.5 and 4.6 are compiled by a C compiler, +gcc-4.7 can be compiled by a C or a C++ compiler, +and versions 4.8+ can only be compiled by a C++ compiler. + +Currently the GCC plugin infrastructure supports only the x86, arm and arm64 +architectures. + +This infrastructure was ported from grsecurity [6] and PaX [7]. + +-- +[1] https://gcc.gnu.org/onlinedocs/gccint/Plugins.html +[2] https://gcc.gnu.org/onlinedocs/gccint/Plugin-API.html#Plugin-API +[3] https://gcc.gnu.org/onlinedocs/gccint/GIMPLE.html +[4] https://gcc.gnu.org/onlinedocs/gccint/IPA.html +[5] https://gcc.gnu.org/onlinedocs/gccint/RTL.html +[6] https://grsecurity.net/ +[7] https://pax.grsecurity.net/ + + +2. Files +======== + +$(src)/scripts/gcc-plugins + This is the directory of the GCC plugins. + +$(src)/scripts/gcc-plugins/gcc-common.h + This is a compatibility header for GCC plugins. + It should be always included instead of individual gcc headers. + +$(src)/scripts/gcc-plugin.sh + This script checks the availability of the included headers in + gcc-common.h and chooses the proper host compiler to build the plugins + (gcc-4.7 can be built by either gcc or g++). + +$(src)/scripts/gcc-plugins/gcc-generate-gimple-pass.h +$(src)/scripts/gcc-plugins/gcc-generate-ipa-pass.h +$(src)/scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h +$(src)/scripts/gcc-plugins/gcc-generate-rtl-pass.h + These headers automatically generate the registration structures for + GIMPLE, SIMPLE_IPA, IPA and RTL passes. They support all gcc versions + from 4.5 to 6.0. + They should be preferred to creating the structures by hand. + + +3. Usage +======== + +You must install the gcc plugin headers for your gcc version, +e.g., on Ubuntu for gcc-4.9: + + apt-get install gcc-4.9-plugin-dev + +Enable a GCC plugin based feature in the kernel config: + + CONFIG_GCC_PLUGIN_CYC_COMPLEXITY = y + +To compile only the plugin(s): + + make gcc-plugins + +or just run the kernel make and compile the whole kernel with +the cyclomatic complexity GCC plugin. + + +4. How to add a new GCC plugin +============================== + +The GCC plugins are in $(src)/scripts/gcc-plugins/. You can use a file or a directory +here. It must be added to $(src)/scripts/gcc-plugins/Makefile, +$(src)/scripts/Makefile.gcc-plugins and $(src)/arch/Kconfig. +See the cyc_complexity_plugin.c (CONFIG_GCC_PLUGIN_CYC_COMPLEXITY) GCC plugin. diff --git a/MAINTAINERS b/MAINTAINERS index 7304d2e37a98..94a19add522d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4979,6 +4979,15 @@ L: linux-scsi@vger.kernel.org S: Odd Fixes (e.g., new signatures) F: drivers/scsi/fdomain.* +GCC PLUGINS +M: Kees Cook +R: Emese Revfy +L: kernel-hardening@lists.openwall.com +S: Maintained +F: scripts/gcc-plugins/ +F: scripts/gcc-plugin.sh +F: Documentation/gcc-plugins.txt + GCOV BASED KERNEL PROFILING M: Peter Oberparleiter S: Maintained diff --git a/Makefile b/Makefile index 0f70de63cfdb..20fcf4b26fbc 100644 --- a/Makefile +++ b/Makefile @@ -552,7 +552,7 @@ ifeq ($(KBUILD_EXTMOD),) # in parallel PHONY += scripts scripts: scripts_basic include/config/auto.conf include/config/tristate.conf \ - asm-generic + asm-generic gcc-plugins $(Q)$(MAKE) $(build)=$(@) # Objects we will link into vmlinux / subdirs we need to visit @@ -631,6 +631,15 @@ endif # Tell gcc to never replace conditional load with a non-conditional one KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0) +PHONY += gcc-plugins +gcc-plugins: scripts_basic +ifdef CONFIG_GCC_PLUGINS + $(Q)$(MAKE) $(build)=scripts/gcc-plugins +endif + @: + +include scripts/Makefile.gcc-plugins + ifdef CONFIG_READABLE_ASM # Disable optimizations that make assembler listings hard to read. # reorder blocks reorders the control in the function @@ -1026,7 +1035,7 @@ prepare1: prepare2 $(version_h) include/generated/utsrelease.h \ archprepare: archheaders archscripts prepare1 scripts_basic -prepare0: archprepare +prepare0: archprepare gcc-plugins $(Q)$(MAKE) $(build)=. # All the preparing.. @@ -1507,6 +1516,7 @@ clean: $(clean-dirs) -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \ -o -name '*.symtypes' -o -name 'modules.order' \ -o -name modules.builtin -o -name '.tmp_*.o.*' \ + -o -name '*.c.[012]*.*' \ -o -name '*.gcno' \) -type f -print | xargs rm -f # Generate tags for editors diff --git a/arch/Kconfig b/arch/Kconfig index d794384a0404..1b93632198fa 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -357,6 +357,21 @@ config SECCOMP_FILTER See Documentation/prctl/seccomp_filter.txt for details. +config HAVE_GCC_PLUGINS + bool + help + An arch should select this symbol if it supports building with + GCC plugins. + +menuconfig GCC_PLUGINS + bool "GCC plugins" + depends on HAVE_GCC_PLUGINS + help + GCC plugins are loadable modules that provide extra features to the + compiler. They are useful for runtime instrumentation and static analysis. + + See Documentation/gcc-plugins.txt for details. + config HAVE_CC_STACKPROTECTOR bool help diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 90542db1220d..ce590468ffa2 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -54,6 +54,7 @@ config ARM select HAVE_FTRACE_MCOUNT_RECORD if (!XIP_KERNEL) select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL) select HAVE_FUNCTION_TRACER if (!XIP_KERNEL) + select HAVE_GCC_PLUGINS select HAVE_GENERIC_DMA_COHERENT select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)) select HAVE_IDE if PCI || ISA || PCMCIA diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 76747d92bc72..24e7bd6778ea 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -76,6 +76,7 @@ config ARM64 select HAVE_FTRACE_MCOUNT_RECORD select HAVE_FUNCTION_TRACER select HAVE_FUNCTION_GRAPH_TRACER + select HAVE_GCC_PLUGINS select HAVE_GENERIC_DMA_COHERENT select HAVE_HW_BREAKPOINT if PERF_EVENTS select HAVE_IRQ_TIME_ACCOUNTING diff --git a/arch/um/Kconfig.common b/arch/um/Kconfig.common index cc0013475444..58650d098fb4 100644 --- a/arch/um/Kconfig.common +++ b/arch/um/Kconfig.common @@ -9,6 +9,7 @@ config UML select GENERIC_CPU_DEVICES select GENERIC_IO select GENERIC_CLOCKEVENTS + select HAVE_GCC_PLUGINS select TTY # Needed for line.c config MMU diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 0a7b885964ba..65e7701bd429 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -111,6 +111,7 @@ config X86 select HAVE_FUNCTION_GRAPH_FP_TEST select HAVE_FUNCTION_GRAPH_TRACER select HAVE_FUNCTION_TRACER + select HAVE_GCC_PLUGINS select HAVE_GENERIC_DMA_COHERENT if X86_32 select HAVE_HW_BREAKPOINT select HAVE_IDE diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile index 253b72eaade6..f9123163a850 100644 --- a/arch/x86/entry/vdso/Makefile +++ b/arch/x86/entry/vdso/Makefile @@ -75,7 +75,7 @@ CFL := $(PROFILING) -mcmodel=small -fPIC -O2 -fasynchronous-unwind-tables -m64 \ -fno-omit-frame-pointer -foptimize-sibling-calls \ -DDISABLE_BRANCH_PROFILING -DBUILD_VDSO -$(vobjs): KBUILD_CFLAGS += $(CFL) +$(vobjs): KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS)) $(CFL) # # vDSO code runs in userspace and -pg doesn't help with profiling anyway. @@ -145,6 +145,7 @@ KBUILD_CFLAGS_32 := $(filter-out -m64,$(KBUILD_CFLAGS)) KBUILD_CFLAGS_32 := $(filter-out -mcmodel=kernel,$(KBUILD_CFLAGS_32)) KBUILD_CFLAGS_32 := $(filter-out -fno-pic,$(KBUILD_CFLAGS_32)) KBUILD_CFLAGS_32 := $(filter-out -mfentry,$(KBUILD_CFLAGS_32)) +KBUILD_CFLAGS_32 := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS_32)) KBUILD_CFLAGS_32 += -m32 -msoft-float -mregparm=0 -fpic KBUILD_CFLAGS_32 += $(call cc-option, -fno-stack-protector) KBUILD_CFLAGS_32 += $(call cc-option, -foptimize-sibling-calls) diff --git a/scripts/Makefile b/scripts/Makefile index 822ab4a6a4aa..1d80897a9644 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -47,4 +47,4 @@ subdir-$(CONFIG_DTC) += dtc subdir-$(CONFIG_GDB_SCRIPTS) += gdb # Let clean descend into subdirs -subdir- += basic kconfig package +subdir- += basic kconfig package gcc-plugins diff --git a/scripts/Makefile.gcc-plugins b/scripts/Makefile.gcc-plugins new file mode 100644 index 000000000000..bcc373dcb3b5 --- /dev/null +++ b/scripts/Makefile.gcc-plugins @@ -0,0 +1,23 @@ +ifdef CONFIG_GCC_PLUGINS + __PLUGINCC := $(call cc-ifversion, -ge, 0408, $(HOSTCXX), $(HOSTCC)) + PLUGINCC := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-plugin.sh "$(__PLUGINCC)" "$(HOSTCXX)" "$(CC)") + + GCC_PLUGINS_CFLAGS := $(addprefix -fplugin=$(objtree)/scripts/gcc-plugins/, $(gcc-plugin-y)) + + export PLUGINCC GCC_PLUGINS_CFLAGS GCC_PLUGIN + + ifeq ($(PLUGINCC),) + ifneq ($(GCC_PLUGINS_CFLAGS),) + ifeq ($(call cc-ifversion, -ge, 0405, y), y) + PLUGINCC := $(shell $(CONFIG_SHELL) -x $(srctree)/scripts/gcc-plugin.sh "$(__PLUGINCC)" "$(HOSTCXX)" "$(CC)") + $(warning warning: your gcc installation does not support plugins, perhaps the necessary headers are missing?) + else + $(warning warning: your gcc version does not support plugins, you should upgrade it to gcc 4.5 at least) + endif + endif + endif + + KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS) + GCC_PLUGIN := $(gcc-plugin-y) + +endif diff --git a/scripts/gcc-plugin.sh b/scripts/gcc-plugin.sh new file mode 100755 index 000000000000..fb9207565471 --- /dev/null +++ b/scripts/gcc-plugin.sh @@ -0,0 +1,51 @@ +#!/bin/sh +srctree=$(dirname "$0") +gccplugins_dir=$($3 -print-file-name=plugin) +plugincc=$($1 -E -x c++ - -o /dev/null -I"${srctree}"/gcc-plugins -I"${gccplugins_dir}"/include 2>&1 <= 4008 || defined(ENABLE_BUILD_WITH_CXX) +#warning $2 CXX +#else +#warning $1 CC +#endif +EOF +) + +if [ $? -ne 0 ] +then + exit 1 +fi + +case "$plugincc" in + *"$1 CC"*) + echo "$1" + exit 0 + ;; + + *"$2 CXX"*) + # the c++ compiler needs another test, see below + ;; + + *) + exit 1 + ;; +esac + +# we need a c++ compiler that supports the designated initializer GNU extension +plugincc=$($2 -c -x c++ -std=gnu++98 - -fsyntax-only -I"${srctree}"/gcc-plugins -I"${gccplugins_dir}"/include 2>&1 <= 6000 +#include "gcc-plugin.h" +#else +#include "plugin.h" +#endif +#include "plugin-version.h" +#include "config.h" +#include "system.h" +#include "coretypes.h" +#include "tm.h" +#include "line-map.h" +#include "input.h" +#include "tree.h" + +#include "tree-inline.h" +#include "version.h" +#include "rtl.h" +#include "tm_p.h" +#include "flags.h" +#include "hard-reg-set.h" +#include "output.h" +#include "except.h" +#include "function.h" +#include "toplev.h" +#include "basic-block.h" +#include "intl.h" +#include "ggc.h" +#include "timevar.h" + +#include "params.h" + +#if BUILDING_GCC_VERSION <= 4009 +#include "pointer-set.h" +#else +#include "hash-map.h" +#endif + +#include "emit-rtl.h" +#include "debug.h" +#include "target.h" +#include "langhooks.h" +#include "cfgloop.h" +#include "cgraph.h" +#include "opts.h" + +#if BUILDING_GCC_VERSION == 4005 +#include +#endif + +#if BUILDING_GCC_VERSION >= 4007 +#include "tree-pretty-print.h" +#include "gimple-pretty-print.h" +#endif + +#if BUILDING_GCC_VERSION >= 4006 +#include "c-family/c-common.h" +#else +#include "c-common.h" +#endif + +#if BUILDING_GCC_VERSION <= 4008 +#include "tree-flow.h" +#else +#include "tree-cfgcleanup.h" +#include "tree-ssa-operands.h" +#include "tree-into-ssa.h" +#endif + +#if BUILDING_GCC_VERSION >= 4008 +#include "is-a.h" +#endif + +#include "diagnostic.h" +#include "tree-dump.h" +#include "tree-pass.h" +#include "predict.h" +#include "ipa-utils.h" + +#if BUILDING_GCC_VERSION >= 4009 +#include "attribs.h" +#include "varasm.h" +#include "stor-layout.h" +#include "internal-fn.h" +#include "gimple-expr.h" +#include "gimple-fold.h" +#include "context.h" +#include "tree-ssa-alias.h" +#include "tree-ssa.h" +#include "stringpool.h" +#include "tree-ssanames.h" +#include "print-tree.h" +#include "tree-eh.h" +#include "stmt.h" +#include "gimplify.h" +#endif + +#include "gimple.h" + +#if BUILDING_GCC_VERSION >= 4009 +#include "tree-ssa-operands.h" +#include "tree-phinodes.h" +#include "tree-cfg.h" +#include "gimple-iterator.h" +#include "gimple-ssa.h" +#include "ssa-iterators.h" +#endif + +#if BUILDING_GCC_VERSION >= 5000 +#include "builtins.h" +#endif + +/* #include "expr.h" where are you... */ +extern rtx emit_move_insn(rtx x, rtx y); + +/* missing from basic_block.h... */ +extern void debug_dominance_info(enum cdi_direction dir); +extern void debug_dominance_tree(enum cdi_direction dir, basic_block root); + +#if BUILDING_GCC_VERSION == 4006 +extern void debug_gimple_stmt(gimple); +extern void debug_gimple_seq(gimple_seq); +extern void print_gimple_seq(FILE *, gimple_seq, int, int); +extern void print_gimple_stmt(FILE *, gimple, int, int); +extern void print_gimple_expr(FILE *, gimple, int, int); +extern void dump_gimple_stmt(pretty_printer *, gimple, int, int); +#endif + +#define __unused __attribute__((__unused__)) + +#define DECL_NAME_POINTER(node) IDENTIFIER_POINTER(DECL_NAME(node)) +#define DECL_NAME_LENGTH(node) IDENTIFIER_LENGTH(DECL_NAME(node)) +#define TYPE_NAME_POINTER(node) IDENTIFIER_POINTER(TYPE_NAME(node)) +#define TYPE_NAME_LENGTH(node) IDENTIFIER_LENGTH(TYPE_NAME(node)) + +/* should come from c-tree.h if only it were installed for gcc 4.5... */ +#define C_TYPE_FIELDS_READONLY(TYPE) TREE_LANG_FLAG_1(TYPE) + +#if BUILDING_GCC_VERSION == 4005 +#define FOR_EACH_LOCAL_DECL(FUN, I, D) \ + for (tree vars = (FUN)->local_decls, (I) = 0; \ + vars && ((D) = TREE_VALUE(vars)); \ + vars = TREE_CHAIN(vars), (I)++) +#define DECL_CHAIN(NODE) (TREE_CHAIN(DECL_MINIMAL_CHECK(NODE))) +#define FOR_EACH_VEC_ELT(T, V, I, P) \ + for (I = 0; VEC_iterate(T, (V), (I), (P)); ++(I)) +#define TODO_rebuild_cgraph_edges 0 +#define SCOPE_FILE_SCOPE_P(EXP) (!(EXP)) + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +typedef struct varpool_node *varpool_node_ptr; + +static inline bool gimple_call_builtin_p(gimple stmt, enum built_in_function code) +{ + tree fndecl; + + if (!is_gimple_call(stmt)) + return false; + fndecl = gimple_call_fndecl(stmt); + if (!fndecl || DECL_BUILT_IN_CLASS(fndecl) != BUILT_IN_NORMAL) + return false; + return DECL_FUNCTION_CODE(fndecl) == code; +} + +static inline bool is_simple_builtin(tree decl) +{ + if (decl && DECL_BUILT_IN_CLASS(decl) != BUILT_IN_NORMAL) + return false; + + switch (DECL_FUNCTION_CODE(decl)) { + /* Builtins that expand to constants. */ + case BUILT_IN_CONSTANT_P: + case BUILT_IN_EXPECT: + case BUILT_IN_OBJECT_SIZE: + case BUILT_IN_UNREACHABLE: + /* Simple register moves or loads from stack. */ + case BUILT_IN_RETURN_ADDRESS: + case BUILT_IN_EXTRACT_RETURN_ADDR: + case BUILT_IN_FROB_RETURN_ADDR: + case BUILT_IN_RETURN: + case BUILT_IN_AGGREGATE_INCOMING_ADDRESS: + case BUILT_IN_FRAME_ADDRESS: + case BUILT_IN_VA_END: + case BUILT_IN_STACK_SAVE: + case BUILT_IN_STACK_RESTORE: + /* Exception state returns or moves registers around. */ + case BUILT_IN_EH_FILTER: + case BUILT_IN_EH_POINTER: + case BUILT_IN_EH_COPY_VALUES: + return true; + + default: + return false; + } +} + +static inline void add_local_decl(struct function *fun, tree d) +{ + gcc_assert(TREE_CODE(d) == VAR_DECL); + fun->local_decls = tree_cons(NULL_TREE, d, fun->local_decls); +} +#endif + +#if BUILDING_GCC_VERSION <= 4006 +#define ANY_RETURN_P(rtx) (GET_CODE(rtx) == RETURN) +#define C_DECL_REGISTER(EXP) DECL_LANG_FLAG_4(EXP) +#define EDGE_PRESERVE 0ULL +#define HOST_WIDE_INT_PRINT_HEX_PURE "%" HOST_WIDE_INT_PRINT "x" +#define flag_fat_lto_objects true + +#define get_random_seed(noinit) ({ \ + unsigned HOST_WIDE_INT seed; \ + sscanf(get_random_seed(noinit), "%" HOST_WIDE_INT_PRINT "x", &seed); \ + seed * seed; }) + +#define int_const_binop(code, arg1, arg2) \ + int_const_binop((code), (arg1), (arg2), 0) + +static inline bool gimple_clobber_p(gimple s __unused) +{ + return false; +} + +static inline bool gimple_asm_clobbers_memory_p(const_gimple stmt) +{ + unsigned i; + + for (i = 0; i < gimple_asm_nclobbers(stmt); i++) { + tree op = gimple_asm_clobber_op(stmt, i); + + if (!strcmp(TREE_STRING_POINTER(TREE_VALUE(op)), "memory")) + return true; + } + + return false; +} + +static inline tree builtin_decl_implicit(enum built_in_function fncode) +{ + return implicit_built_in_decls[fncode]; +} + +static inline int ipa_reverse_postorder(struct cgraph_node **order) +{ + return cgraph_postorder(order); +} + +static inline struct cgraph_node *cgraph_create_node(tree decl) +{ + return cgraph_node(decl); +} + +static inline struct cgraph_node *cgraph_get_create_node(tree decl) +{ + struct cgraph_node *node = cgraph_get_node(decl); + + return node ? node : cgraph_node(decl); +} + +static inline bool cgraph_function_with_gimple_body_p(struct cgraph_node *node) +{ + return node->analyzed && !node->thunk.thunk_p && !node->alias; +} + +static inline struct cgraph_node *cgraph_first_function_with_gimple_body(void) +{ + struct cgraph_node *node; + + for (node = cgraph_nodes; node; node = node->next) + if (cgraph_function_with_gimple_body_p(node)) + return node; + return NULL; +} + +static inline struct cgraph_node *cgraph_next_function_with_gimple_body(struct cgraph_node *node) +{ + for (node = node->next; node; node = node->next) + if (cgraph_function_with_gimple_body_p(node)) + return node; + return NULL; +} + +#define FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) \ + for ((node) = cgraph_first_function_with_gimple_body(); (node); \ + (node) = cgraph_next_function_with_gimple_body(node)) + +static inline void varpool_add_new_variable(tree decl) +{ + varpool_finalize_decl(decl); +} +#endif + +#if BUILDING_GCC_VERSION <= 4007 +#define FOR_EACH_FUNCTION(node) \ + for (node = cgraph_nodes; node; node = node->next) +#define FOR_EACH_VARIABLE(node) \ + for (node = varpool_nodes; node; node = node->next) +#define PROP_loops 0 +#define NODE_SYMBOL(node) (node) +#define NODE_DECL(node) (node)->decl +#define INSN_LOCATION(INSN) RTL_LOCATION(INSN) +#define vNULL NULL + +static inline int bb_loop_depth(const_basic_block bb) +{ + return bb->loop_father ? loop_depth(bb->loop_father) : 0; +} + +static inline bool gimple_store_p(gimple gs) +{ + tree lhs = gimple_get_lhs(gs); + + return lhs && !is_gimple_reg(lhs); +} + +static inline void gimple_init_singleton(gimple g __unused) +{ +} +#endif + +#if BUILDING_GCC_VERSION == 4007 || BUILDING_GCC_VERSION == 4008 +static inline struct cgraph_node *cgraph_alias_target(struct cgraph_node *n) +{ + return cgraph_alias_aliased_node(n); +} +#endif + +#if BUILDING_GCC_VERSION >= 4007 && BUILDING_GCC_VERSION <= 4009 +#define cgraph_create_edge(caller, callee, call_stmt, count, freq, nest) \ + cgraph_create_edge((caller), (callee), (call_stmt), (count), (freq)) +#define cgraph_create_edge_including_clones(caller, callee, old_call_stmt, call_stmt, count, freq, nest, reason) \ + cgraph_create_edge_including_clones((caller), (callee), (old_call_stmt), (call_stmt), (count), (freq), (reason)) +#endif + +#if BUILDING_GCC_VERSION <= 4008 +#define ENTRY_BLOCK_PTR_FOR_FN(FN) ENTRY_BLOCK_PTR_FOR_FUNCTION(FN) +#define EXIT_BLOCK_PTR_FOR_FN(FN) EXIT_BLOCK_PTR_FOR_FUNCTION(FN) +#define basic_block_info_for_fn(FN) ((FN)->cfg->x_basic_block_info) +#define n_basic_blocks_for_fn(FN) ((FN)->cfg->x_n_basic_blocks) +#define n_edges_for_fn(FN) ((FN)->cfg->x_n_edges) +#define last_basic_block_for_fn(FN) ((FN)->cfg->x_last_basic_block) +#define label_to_block_map_for_fn(FN) ((FN)->cfg->x_label_to_block_map) +#define profile_status_for_fn(FN) ((FN)->cfg->x_profile_status) +#define BASIC_BLOCK_FOR_FN(FN, N) BASIC_BLOCK_FOR_FUNCTION((FN), (N)) +#define NODE_IMPLICIT_ALIAS(node) (node)->same_body_alias +#define VAR_P(NODE) (TREE_CODE(NODE) == VAR_DECL) + +static inline bool tree_fits_shwi_p(const_tree t) +{ + if (t == NULL_TREE || TREE_CODE(t) != INTEGER_CST) + return false; + + if (TREE_INT_CST_HIGH(t) == 0 && (HOST_WIDE_INT)TREE_INT_CST_LOW(t) >= 0) + return true; + + if (TREE_INT_CST_HIGH(t) == -1 && (HOST_WIDE_INT)TREE_INT_CST_LOW(t) < 0 && !TYPE_UNSIGNED(TREE_TYPE(t))) + return true; + + return false; +} + +static inline bool tree_fits_uhwi_p(const_tree t) +{ + if (t == NULL_TREE || TREE_CODE(t) != INTEGER_CST) + return false; + + return TREE_INT_CST_HIGH(t) == 0; +} + +static inline HOST_WIDE_INT tree_to_shwi(const_tree t) +{ + gcc_assert(tree_fits_shwi_p(t)); + return TREE_INT_CST_LOW(t); +} + +static inline unsigned HOST_WIDE_INT tree_to_uhwi(const_tree t) +{ + gcc_assert(tree_fits_uhwi_p(t)); + return TREE_INT_CST_LOW(t); +} + +static inline const char *get_tree_code_name(enum tree_code code) +{ + gcc_assert(code < MAX_TREE_CODES); + return tree_code_name[code]; +} + +#define ipa_remove_stmt_references(cnode, stmt) + +typedef union gimple_statement_d gasm; +typedef union gimple_statement_d gassign; +typedef union gimple_statement_d gcall; +typedef union gimple_statement_d gcond; +typedef union gimple_statement_d gdebug; +typedef union gimple_statement_d gphi; +typedef union gimple_statement_d greturn; + +static inline gasm *as_a_gasm(gimple stmt) +{ + return stmt; +} + +static inline const gasm *as_a_const_gasm(const_gimple stmt) +{ + return stmt; +} + +static inline gassign *as_a_gassign(gimple stmt) +{ + return stmt; +} + +static inline const gassign *as_a_const_gassign(const_gimple stmt) +{ + return stmt; +} + +static inline gcall *as_a_gcall(gimple stmt) +{ + return stmt; +} + +static inline const gcall *as_a_const_gcall(const_gimple stmt) +{ + return stmt; +} + +static inline gcond *as_a_gcond(gimple stmt) +{ + return stmt; +} + +static inline const gcond *as_a_const_gcond(const_gimple stmt) +{ + return stmt; +} + +static inline gdebug *as_a_gdebug(gimple stmt) +{ + return stmt; +} + +static inline const gdebug *as_a_const_gdebug(const_gimple stmt) +{ + return stmt; +} + +static inline gphi *as_a_gphi(gimple stmt) +{ + return stmt; +} + +static inline const gphi *as_a_const_gphi(const_gimple stmt) +{ + return stmt; +} + +static inline greturn *as_a_greturn(gimple stmt) +{ + return stmt; +} + +static inline const greturn *as_a_const_greturn(const_gimple stmt) +{ + return stmt; +} +#endif + +#if BUILDING_GCC_VERSION == 4008 +#define NODE_SYMBOL(node) (&(node)->symbol) +#define NODE_DECL(node) (node)->symbol.decl +#endif + +#if BUILDING_GCC_VERSION >= 4008 +#define add_referenced_var(var) +#define mark_sym_for_renaming(var) +#define varpool_mark_needed_node(node) +#define create_var_ann(var) +#define TODO_dump_func 0 +#define TODO_dump_cgraph 0 +#endif + +#if BUILDING_GCC_VERSION <= 4009 +#define TODO_verify_il 0 +#define AVAIL_INTERPOSABLE AVAIL_OVERWRITABLE + +#define section_name_prefix LTO_SECTION_NAME_PREFIX +#define fatal_error(loc, gmsgid, ...) fatal_error((gmsgid), __VA_ARGS__) + +typedef struct rtx_def rtx_insn; + +static inline void set_decl_section_name(tree node, const char *value) +{ + if (value) + DECL_SECTION_NAME(node) = build_string(strlen(value) + 1, value); + else + DECL_SECTION_NAME(node) = NULL; +} +#endif + +#if BUILDING_GCC_VERSION == 4009 +typedef struct gimple_statement_asm gasm; +typedef struct gimple_statement_base gassign; +typedef struct gimple_statement_call gcall; +typedef struct gimple_statement_base gcond; +typedef struct gimple_statement_base gdebug; +typedef struct gimple_statement_phi gphi; +typedef struct gimple_statement_base greturn; + +static inline gasm *as_a_gasm(gimple stmt) +{ + return as_a(stmt); +} + +static inline const gasm *as_a_const_gasm(const_gimple stmt) +{ + return as_a(stmt); +} + +static inline gassign *as_a_gassign(gimple stmt) +{ + return stmt; +} + +static inline const gassign *as_a_const_gassign(const_gimple stmt) +{ + return stmt; +} + +static inline gcall *as_a_gcall(gimple stmt) +{ + return as_a(stmt); +} + +static inline const gcall *as_a_const_gcall(const_gimple stmt) +{ + return as_a(stmt); +} + +static inline gcond *as_a_gcond(gimple stmt) +{ + return stmt; +} + +static inline const gcond *as_a_const_gcond(const_gimple stmt) +{ + return stmt; +} + +static inline gdebug *as_a_gdebug(gimple stmt) +{ + return stmt; +} + +static inline const gdebug *as_a_const_gdebug(const_gimple stmt) +{ + return stmt; +} + +static inline gphi *as_a_gphi(gimple stmt) +{ + return as_a(stmt); +} + +static inline const gphi *as_a_const_gphi(const_gimple stmt) +{ + return as_a(stmt); +} + +static inline greturn *as_a_greturn(gimple stmt) +{ + return stmt; +} + +static inline const greturn *as_a_const_greturn(const_gimple stmt) +{ + return stmt; +} +#endif + +#if BUILDING_GCC_VERSION >= 4009 +#define TODO_ggc_collect 0 +#define NODE_SYMBOL(node) (node) +#define NODE_DECL(node) (node)->decl +#define cgraph_node_name(node) (node)->name() +#define NODE_IMPLICIT_ALIAS(node) (node)->cpp_implicit_alias +#endif + +#if BUILDING_GCC_VERSION >= 5000 && BUILDING_GCC_VERSION < 6000 +/* gimple related */ +template <> +template <> +inline bool is_a_helper::test(const_gimple gs) +{ + return gs->code == GIMPLE_ASSIGN; +} +#endif + +#if BUILDING_GCC_VERSION >= 5000 +#define TODO_verify_ssa TODO_verify_il +#define TODO_verify_flow TODO_verify_il +#define TODO_verify_stmts TODO_verify_il +#define TODO_verify_rtl_sharing TODO_verify_il + +#define INSN_DELETED_P(insn) (insn)->deleted() + +/* symtab/cgraph related */ +#define debug_cgraph_node(node) (node)->debug() +#define cgraph_get_node(decl) cgraph_node::get(decl) +#define cgraph_get_create_node(decl) cgraph_node::get_create(decl) +#define cgraph_create_node(decl) cgraph_node::create(decl) +#define cgraph_n_nodes symtab->cgraph_count +#define cgraph_max_uid symtab->cgraph_max_uid +#define varpool_get_node(decl) varpool_node::get(decl) + +#define cgraph_create_edge(caller, callee, call_stmt, count, freq, nest) \ + (caller)->create_edge((callee), (call_stmt), (count), (freq)) +#define cgraph_create_edge_including_clones(caller, callee, old_call_stmt, call_stmt, count, freq, nest, reason) \ + (caller)->create_edge_including_clones((callee), (old_call_stmt), (call_stmt), (count), (freq), (reason)) + +typedef struct cgraph_node *cgraph_node_ptr; +typedef struct cgraph_edge *cgraph_edge_p; +typedef struct varpool_node *varpool_node_ptr; + +static inline void change_decl_assembler_name(tree decl, tree name) +{ + symtab->change_decl_assembler_name(decl, name); +} + +static inline void varpool_finalize_decl(tree decl) +{ + varpool_node::finalize_decl(decl); +} + +static inline void varpool_add_new_variable(tree decl) +{ + varpool_node::add(decl); +} + +static inline unsigned int rebuild_cgraph_edges(void) +{ + return cgraph_edge::rebuild_edges(); +} + +static inline cgraph_node_ptr cgraph_function_node(cgraph_node_ptr node, enum availability *availability) +{ + return node->function_symbol(availability); +} + +static inline cgraph_node_ptr cgraph_function_or_thunk_node(cgraph_node_ptr node, enum availability *availability = NULL) +{ + return node->ultimate_alias_target(availability); +} + +static inline bool cgraph_only_called_directly_p(cgraph_node_ptr node) +{ + return node->only_called_directly_p(); +} + +static inline enum availability cgraph_function_body_availability(cgraph_node_ptr node) +{ + return node->get_availability(); +} + +static inline cgraph_node_ptr cgraph_alias_target(cgraph_node_ptr node) +{ + return node->get_alias_target(); +} + +static inline struct cgraph_node_hook_list *cgraph_add_function_insertion_hook(cgraph_node_hook hook, void *data) +{ + return symtab->add_cgraph_insertion_hook(hook, data); +} + +static inline void cgraph_remove_function_insertion_hook(struct cgraph_node_hook_list *entry) +{ + symtab->remove_cgraph_insertion_hook(entry); +} + +static inline struct cgraph_node_hook_list *cgraph_add_node_removal_hook(cgraph_node_hook hook, void *data) +{ + return symtab->add_cgraph_removal_hook(hook, data); +} + +static inline void cgraph_remove_node_removal_hook(struct cgraph_node_hook_list *entry) +{ + symtab->remove_cgraph_removal_hook(entry); +} + +static inline struct cgraph_2node_hook_list *cgraph_add_node_duplication_hook(cgraph_2node_hook hook, void *data) +{ + return symtab->add_cgraph_duplication_hook(hook, data); +} + +static inline void cgraph_remove_node_duplication_hook(struct cgraph_2node_hook_list *entry) +{ + symtab->remove_cgraph_duplication_hook(entry); +} + +static inline void cgraph_call_node_duplication_hooks(cgraph_node_ptr node, cgraph_node_ptr node2) +{ + symtab->call_cgraph_duplication_hooks(node, node2); +} + +static inline void cgraph_call_edge_duplication_hooks(cgraph_edge *cs1, cgraph_edge *cs2) +{ + symtab->call_edge_duplication_hooks(cs1, cs2); +} + +#if BUILDING_GCC_VERSION >= 6000 +typedef gimple *gimple_ptr; +typedef const gimple *const_gimple_ptr; +#define gimple gimple_ptr +#define const_gimple const_gimple_ptr +#undef CONST_CAST_GIMPLE +#define CONST_CAST_GIMPLE(X) CONST_CAST(gimple, (X)) +#endif + +/* gimple related */ +static inline gimple gimple_build_assign_with_ops(enum tree_code subcode, tree lhs, tree op1, tree op2 MEM_STAT_DECL) +{ + return gimple_build_assign(lhs, subcode, op1, op2 PASS_MEM_STAT); +} + +template <> +template <> +inline bool is_a_helper::test(const_gimple gs) +{ + return gs->code == GIMPLE_RETURN; +} + +static inline gasm *as_a_gasm(gimple stmt) +{ + return as_a(stmt); +} + +static inline const gasm *as_a_const_gasm(const_gimple stmt) +{ + return as_a(stmt); +} + +static inline gassign *as_a_gassign(gimple stmt) +{ + return as_a(stmt); +} + +static inline const gassign *as_a_const_gassign(const_gimple stmt) +{ + return as_a(stmt); +} + +static inline gcall *as_a_gcall(gimple stmt) +{ + return as_a(stmt); +} + +static inline const gcall *as_a_const_gcall(const_gimple stmt) +{ + return as_a(stmt); +} + +static inline gphi *as_a_gphi(gimple stmt) +{ + return as_a(stmt); +} + +static inline const gphi *as_a_const_gphi(const_gimple stmt) +{ + return as_a(stmt); +} + +static inline greturn *as_a_greturn(gimple stmt) +{ + return as_a(stmt); +} + +static inline const greturn *as_a_const_greturn(const_gimple stmt) +{ + return as_a(stmt); +} + +/* IPA/LTO related */ +#define ipa_ref_list_referring_iterate(L, I, P) \ + (L)->referring.iterate((I), &(P)) +#define ipa_ref_list_reference_iterate(L, I, P) \ + (L)->reference.iterate((I), &(P)) + +static inline cgraph_node_ptr ipa_ref_referring_node(struct ipa_ref *ref) +{ + return dyn_cast(ref->referring); +} + +static inline void ipa_remove_stmt_references(symtab_node *referring_node, gimple stmt) +{ + referring_node->remove_stmt_references(stmt); +} +#endif + +#if BUILDING_GCC_VERSION < 6000 +#define get_inner_reference(exp, pbitsize, pbitpos, poffset, pmode, punsignedp, preversep, pvolatilep, keep_aligning) \ + get_inner_reference(exp, pbitsize, pbitpos, poffset, pmode, punsignedp, pvolatilep, keep_aligning) +#define gen_rtx_set(ARG0, ARG1) gen_rtx_SET(VOIDmode, (ARG0), (ARG1)) +#endif + +#if BUILDING_GCC_VERSION >= 6000 +#define gen_rtx_set(ARG0, ARG1) gen_rtx_SET((ARG0), (ARG1)) +#endif + +#ifdef __cplusplus +static inline void debug_tree(const_tree t) +{ + debug_tree(CONST_CAST_TREE(t)); +} + +static inline void debug_gimple_stmt(const_gimple s) +{ + debug_gimple_stmt(CONST_CAST_GIMPLE(s)); +} +#else +#define debug_tree(t) debug_tree(CONST_CAST_TREE(t)) +#define debug_gimple_stmt(s) debug_gimple_stmt(CONST_CAST_GIMPLE(s)) +#endif + +#endif diff --git a/scripts/gcc-plugins/gcc-generate-gimple-pass.h b/scripts/gcc-plugins/gcc-generate-gimple-pass.h new file mode 100644 index 000000000000..526c3c79b68e --- /dev/null +++ b/scripts/gcc-plugins/gcc-generate-gimple-pass.h @@ -0,0 +1,175 @@ +/* + * Generator for GIMPLE pass related boilerplate code/data + * + * Supports gcc 4.5-6 + * + * Usage: + * + * 1. before inclusion define PASS_NAME + * 2. before inclusion define NO_* for unimplemented callbacks + * NO_GATE + * NO_EXECUTE + * 3. before inclusion define PROPERTIES_* and TODO_FLAGS_* to override + * the default 0 values + * 4. for convenience, all the above will be undefined after inclusion! + * 5. the only exported name is make_PASS_NAME_pass() to register with gcc + */ + +#ifndef PASS_NAME +#error at least PASS_NAME must be defined +#else +#define __GCC_PLUGIN_STRINGIFY(n) #n +#define _GCC_PLUGIN_STRINGIFY(n) __GCC_PLUGIN_STRINGIFY(n) +#define _GCC_PLUGIN_CONCAT2(x, y) x ## y +#define _GCC_PLUGIN_CONCAT3(x, y, z) x ## y ## z + +#define __PASS_NAME_PASS_DATA(n) _GCC_PLUGIN_CONCAT2(n, _pass_data) +#define _PASS_NAME_PASS_DATA __PASS_NAME_PASS_DATA(PASS_NAME) + +#define __PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT2(n, _pass) +#define _PASS_NAME_PASS __PASS_NAME_PASS(PASS_NAME) + +#define _PASS_NAME_NAME _GCC_PLUGIN_STRINGIFY(PASS_NAME) + +#define __MAKE_PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT3(make_, n, _pass) +#define _MAKE_PASS_NAME_PASS __MAKE_PASS_NAME_PASS(PASS_NAME) + +#ifdef NO_GATE +#define _GATE NULL +#define _HAS_GATE false +#else +#define __GATE(n) _GCC_PLUGIN_CONCAT2(n, _gate) +#define _GATE __GATE(PASS_NAME) +#define _HAS_GATE true +#endif + +#ifdef NO_EXECUTE +#define _EXECUTE NULL +#define _HAS_EXECUTE false +#else +#define __EXECUTE(n) _GCC_PLUGIN_CONCAT2(n, _execute) +#define _EXECUTE __EXECUTE(PASS_NAME) +#define _HAS_EXECUTE true +#endif + +#ifndef PROPERTIES_REQUIRED +#define PROPERTIES_REQUIRED 0 +#endif + +#ifndef PROPERTIES_PROVIDED +#define PROPERTIES_PROVIDED 0 +#endif + +#ifndef PROPERTIES_DESTROYED +#define PROPERTIES_DESTROYED 0 +#endif + +#ifndef TODO_FLAGS_START +#define TODO_FLAGS_START 0 +#endif + +#ifndef TODO_FLAGS_FINISH +#define TODO_FLAGS_FINISH 0 +#endif + +#if BUILDING_GCC_VERSION >= 4009 +namespace { +static const pass_data _PASS_NAME_PASS_DATA = { +#else +static struct gimple_opt_pass _PASS_NAME_PASS = { + .pass = { +#endif + .type = GIMPLE_PASS, + .name = _PASS_NAME_NAME, +#if BUILDING_GCC_VERSION >= 4008 + .optinfo_flags = OPTGROUP_NONE, +#endif +#if BUILDING_GCC_VERSION >= 5000 +#elif BUILDING_GCC_VERSION == 4009 + .has_gate = _HAS_GATE, + .has_execute = _HAS_EXECUTE, +#else + .gate = _GATE, + .execute = _EXECUTE, + .sub = NULL, + .next = NULL, + .static_pass_number = 0, +#endif + .tv_id = TV_NONE, + .properties_required = PROPERTIES_REQUIRED, + .properties_provided = PROPERTIES_PROVIDED, + .properties_destroyed = PROPERTIES_DESTROYED, + .todo_flags_start = TODO_FLAGS_START, + .todo_flags_finish = TODO_FLAGS_FINISH, +#if BUILDING_GCC_VERSION < 4009 + } +#endif +}; + +#if BUILDING_GCC_VERSION >= 4009 +class _PASS_NAME_PASS : public gimple_opt_pass { +public: + _PASS_NAME_PASS() : gimple_opt_pass(_PASS_NAME_PASS_DATA, g) {} + +#ifndef NO_GATE +#if BUILDING_GCC_VERSION >= 5000 + virtual bool gate(function *) { return _GATE(); } +#else + virtual bool gate(void) { return _GATE(); } +#endif +#endif + + virtual opt_pass * clone () { return new _PASS_NAME_PASS(); } + +#ifndef NO_EXECUTE +#if BUILDING_GCC_VERSION >= 5000 + virtual unsigned int execute(function *) { return _EXECUTE(); } +#else + virtual unsigned int execute(void) { return _EXECUTE(); } +#endif +#endif +}; +} + +opt_pass *_MAKE_PASS_NAME_PASS(void) +{ + return new _PASS_NAME_PASS(); +} +#else +struct opt_pass *_MAKE_PASS_NAME_PASS(void) +{ + return &_PASS_NAME_PASS.pass; +} +#endif + +/* clean up user provided defines */ +#undef PASS_NAME +#undef NO_GATE +#undef NO_EXECUTE + +#undef PROPERTIES_DESTROYED +#undef PROPERTIES_PROVIDED +#undef PROPERTIES_REQUIRED +#undef TODO_FLAGS_FINISH +#undef TODO_FLAGS_START + +/* clean up generated defines */ +#undef _EXECUTE +#undef __EXECUTE +#undef _GATE +#undef __GATE +#undef _GCC_PLUGIN_CONCAT2 +#undef _GCC_PLUGIN_CONCAT3 +#undef _GCC_PLUGIN_STRINGIFY +#undef __GCC_PLUGIN_STRINGIFY +#undef _HAS_EXECUTE +#undef _HAS_GATE +#undef _MAKE_PASS_NAME_PASS +#undef __MAKE_PASS_NAME_PASS +#undef _PASS_NAME_NAME +#undef _PASS_NAME_PASS +#undef __PASS_NAME_PASS +#undef _PASS_NAME_PASS_DATA +#undef __PASS_NAME_PASS_DATA + +#endif /* PASS_NAME */ diff --git a/scripts/gcc-plugins/gcc-generate-ipa-pass.h b/scripts/gcc-plugins/gcc-generate-ipa-pass.h new file mode 100644 index 000000000000..9bd926e072f0 --- /dev/null +++ b/scripts/gcc-plugins/gcc-generate-ipa-pass.h @@ -0,0 +1,289 @@ +/* + * Generator for IPA pass related boilerplate code/data + * + * Supports gcc 4.5-6 + * + * Usage: + * + * 1. before inclusion define PASS_NAME + * 2. before inclusion define NO_* for unimplemented callbacks + * NO_GENERATE_SUMMARY + * NO_READ_SUMMARY + * NO_WRITE_SUMMARY + * NO_READ_OPTIMIZATION_SUMMARY + * NO_WRITE_OPTIMIZATION_SUMMARY + * NO_STMT_FIXUP + * NO_FUNCTION_TRANSFORM + * NO_VARIABLE_TRANSFORM + * NO_GATE + * NO_EXECUTE + * 3. before inclusion define PROPERTIES_* and *TODO_FLAGS_* to override + * the default 0 values + * 4. for convenience, all the above will be undefined after inclusion! + * 5. the only exported name is make_PASS_NAME_pass() to register with gcc + */ + +#ifndef PASS_NAME +#error at least PASS_NAME must be defined +#else +#define __GCC_PLUGIN_STRINGIFY(n) #n +#define _GCC_PLUGIN_STRINGIFY(n) __GCC_PLUGIN_STRINGIFY(n) +#define _GCC_PLUGIN_CONCAT2(x, y) x ## y +#define _GCC_PLUGIN_CONCAT3(x, y, z) x ## y ## z + +#define __PASS_NAME_PASS_DATA(n) _GCC_PLUGIN_CONCAT2(n, _pass_data) +#define _PASS_NAME_PASS_DATA __PASS_NAME_PASS_DATA(PASS_NAME) + +#define __PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT2(n, _pass) +#define _PASS_NAME_PASS __PASS_NAME_PASS(PASS_NAME) + +#define _PASS_NAME_NAME _GCC_PLUGIN_STRINGIFY(PASS_NAME) + +#define __MAKE_PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT3(make_, n, _pass) +#define _MAKE_PASS_NAME_PASS __MAKE_PASS_NAME_PASS(PASS_NAME) + +#ifdef NO_GENERATE_SUMMARY +#define _GENERATE_SUMMARY NULL +#else +#define __GENERATE_SUMMARY(n) _GCC_PLUGIN_CONCAT2(n, _generate_summary) +#define _GENERATE_SUMMARY __GENERATE_SUMMARY(PASS_NAME) +#endif + +#ifdef NO_READ_SUMMARY +#define _READ_SUMMARY NULL +#else +#define __READ_SUMMARY(n) _GCC_PLUGIN_CONCAT2(n, _read_summary) +#define _READ_SUMMARY __READ_SUMMARY(PASS_NAME) +#endif + +#ifdef NO_WRITE_SUMMARY +#define _WRITE_SUMMARY NULL +#else +#define __WRITE_SUMMARY(n) _GCC_PLUGIN_CONCAT2(n, _write_summary) +#define _WRITE_SUMMARY __WRITE_SUMMARY(PASS_NAME) +#endif + +#ifdef NO_READ_OPTIMIZATION_SUMMARY +#define _READ_OPTIMIZATION_SUMMARY NULL +#else +#define __READ_OPTIMIZATION_SUMMARY(n) _GCC_PLUGIN_CONCAT2(n, _read_optimization_summary) +#define _READ_OPTIMIZATION_SUMMARY __READ_OPTIMIZATION_SUMMARY(PASS_NAME) +#endif + +#ifdef NO_WRITE_OPTIMIZATION_SUMMARY +#define _WRITE_OPTIMIZATION_SUMMARY NULL +#else +#define __WRITE_OPTIMIZATION_SUMMARY(n) _GCC_PLUGIN_CONCAT2(n, _write_optimization_summary) +#define _WRITE_OPTIMIZATION_SUMMARY __WRITE_OPTIMIZATION_SUMMARY(PASS_NAME) +#endif + +#ifdef NO_STMT_FIXUP +#define _STMT_FIXUP NULL +#else +#define __STMT_FIXUP(n) _GCC_PLUGIN_CONCAT2(n, _stmt_fixup) +#define _STMT_FIXUP __STMT_FIXUP(PASS_NAME) +#endif + +#ifdef NO_FUNCTION_TRANSFORM +#define _FUNCTION_TRANSFORM NULL +#else +#define __FUNCTION_TRANSFORM(n) _GCC_PLUGIN_CONCAT2(n, _function_transform) +#define _FUNCTION_TRANSFORM __FUNCTION_TRANSFORM(PASS_NAME) +#endif + +#ifdef NO_VARIABLE_TRANSFORM +#define _VARIABLE_TRANSFORM NULL +#else +#define __VARIABLE_TRANSFORM(n) _GCC_PLUGIN_CONCAT2(n, _variable_transform) +#define _VARIABLE_TRANSFORM __VARIABLE_TRANSFORM(PASS_NAME) +#endif + +#ifdef NO_GATE +#define _GATE NULL +#define _HAS_GATE false +#else +#define __GATE(n) _GCC_PLUGIN_CONCAT2(n, _gate) +#define _GATE __GATE(PASS_NAME) +#define _HAS_GATE true +#endif + +#ifdef NO_EXECUTE +#define _EXECUTE NULL +#define _HAS_EXECUTE false +#else +#define __EXECUTE(n) _GCC_PLUGIN_CONCAT2(n, _execute) +#define _EXECUTE __EXECUTE(PASS_NAME) +#define _HAS_EXECUTE true +#endif + +#ifndef PROPERTIES_REQUIRED +#define PROPERTIES_REQUIRED 0 +#endif + +#ifndef PROPERTIES_PROVIDED +#define PROPERTIES_PROVIDED 0 +#endif + +#ifndef PROPERTIES_DESTROYED +#define PROPERTIES_DESTROYED 0 +#endif + +#ifndef TODO_FLAGS_START +#define TODO_FLAGS_START 0 +#endif + +#ifndef TODO_FLAGS_FINISH +#define TODO_FLAGS_FINISH 0 +#endif + +#ifndef FUNCTION_TRANSFORM_TODO_FLAGS_START +#define FUNCTION_TRANSFORM_TODO_FLAGS_START 0 +#endif + +#if BUILDING_GCC_VERSION >= 4009 +namespace { +static const pass_data _PASS_NAME_PASS_DATA = { +#else +static struct ipa_opt_pass_d _PASS_NAME_PASS = { + .pass = { +#endif + .type = IPA_PASS, + .name = _PASS_NAME_NAME, +#if BUILDING_GCC_VERSION >= 4008 + .optinfo_flags = OPTGROUP_NONE, +#endif +#if BUILDING_GCC_VERSION >= 5000 +#elif BUILDING_GCC_VERSION == 4009 + .has_gate = _HAS_GATE, + .has_execute = _HAS_EXECUTE, +#else + .gate = _GATE, + .execute = _EXECUTE, + .sub = NULL, + .next = NULL, + .static_pass_number = 0, +#endif + .tv_id = TV_NONE, + .properties_required = PROPERTIES_REQUIRED, + .properties_provided = PROPERTIES_PROVIDED, + .properties_destroyed = PROPERTIES_DESTROYED, + .todo_flags_start = TODO_FLAGS_START, + .todo_flags_finish = TODO_FLAGS_FINISH, +#if BUILDING_GCC_VERSION < 4009 + }, + .generate_summary = _GENERATE_SUMMARY, + .write_summary = _WRITE_SUMMARY, + .read_summary = _READ_SUMMARY, +#if BUILDING_GCC_VERSION >= 4006 + .write_optimization_summary = _WRITE_OPTIMIZATION_SUMMARY, + .read_optimization_summary = _READ_OPTIMIZATION_SUMMARY, +#endif + .stmt_fixup = _STMT_FIXUP, + .function_transform_todo_flags_start = FUNCTION_TRANSFORM_TODO_FLAGS_START, + .function_transform = _FUNCTION_TRANSFORM, + .variable_transform = _VARIABLE_TRANSFORM, +#endif +}; + +#if BUILDING_GCC_VERSION >= 4009 +class _PASS_NAME_PASS : public ipa_opt_pass_d { +public: + _PASS_NAME_PASS() : ipa_opt_pass_d(_PASS_NAME_PASS_DATA, + g, + _GENERATE_SUMMARY, + _WRITE_SUMMARY, + _READ_SUMMARY, + _WRITE_OPTIMIZATION_SUMMARY, + _READ_OPTIMIZATION_SUMMARY, + _STMT_FIXUP, + FUNCTION_TRANSFORM_TODO_FLAGS_START, + _FUNCTION_TRANSFORM, + _VARIABLE_TRANSFORM) {} + +#ifndef NO_GATE +#if BUILDING_GCC_VERSION >= 5000 + virtual bool gate(function *) { return _GATE(); } +#else + virtual bool gate(void) { return _GATE(); } +#endif +#endif + + virtual opt_pass *clone() { return new _PASS_NAME_PASS(); } + +#ifndef NO_EXECUTE +#if BUILDING_GCC_VERSION >= 5000 + virtual unsigned int execute(function *) { return _EXECUTE(); } +#else + virtual unsigned int execute(void) { return _EXECUTE(); } +#endif +#endif +}; +} + +opt_pass *_MAKE_PASS_NAME_PASS(void) +{ + return new _PASS_NAME_PASS(); +} +#else +struct opt_pass *_MAKE_PASS_NAME_PASS(void) +{ + return &_PASS_NAME_PASS.pass; +} +#endif + +/* clean up user provided defines */ +#undef PASS_NAME +#undef NO_GENERATE_SUMMARY +#undef NO_WRITE_SUMMARY +#undef NO_READ_SUMMARY +#undef NO_WRITE_OPTIMIZATION_SUMMARY +#undef NO_READ_OPTIMIZATION_SUMMARY +#undef NO_STMT_FIXUP +#undef NO_FUNCTION_TRANSFORM +#undef NO_VARIABLE_TRANSFORM +#undef NO_GATE +#undef NO_EXECUTE + +#undef FUNCTION_TRANSFORM_TODO_FLAGS_START +#undef PROPERTIES_DESTROYED +#undef PROPERTIES_PROVIDED +#undef PROPERTIES_REQUIRED +#undef TODO_FLAGS_FINISH +#undef TODO_FLAGS_START + +/* clean up generated defines */ +#undef _EXECUTE +#undef __EXECUTE +#undef _FUNCTION_TRANSFORM +#undef __FUNCTION_TRANSFORM +#undef _GATE +#undef __GATE +#undef _GCC_PLUGIN_CONCAT2 +#undef _GCC_PLUGIN_CONCAT3 +#undef _GCC_PLUGIN_STRINGIFY +#undef __GCC_PLUGIN_STRINGIFY +#undef _GENERATE_SUMMARY +#undef __GENERATE_SUMMARY +#undef _HAS_EXECUTE +#undef _HAS_GATE +#undef _MAKE_PASS_NAME_PASS +#undef __MAKE_PASS_NAME_PASS +#undef _PASS_NAME_NAME +#undef _PASS_NAME_PASS +#undef __PASS_NAME_PASS +#undef _PASS_NAME_PASS_DATA +#undef __PASS_NAME_PASS_DATA +#undef _READ_OPTIMIZATION_SUMMARY +#undef __READ_OPTIMIZATION_SUMMARY +#undef _READ_SUMMARY +#undef __READ_SUMMARY +#undef _STMT_FIXUP +#undef __STMT_FIXUP +#undef _VARIABLE_TRANSFORM +#undef __VARIABLE_TRANSFORM +#undef _WRITE_OPTIMIZATION_SUMMARY +#undef __WRITE_OPTIMIZATION_SUMMARY +#undef _WRITE_SUMMARY +#undef __WRITE_SUMMARY + +#endif /* PASS_NAME */ diff --git a/scripts/gcc-plugins/gcc-generate-rtl-pass.h b/scripts/gcc-plugins/gcc-generate-rtl-pass.h new file mode 100644 index 000000000000..1dc67a5aeadf --- /dev/null +++ b/scripts/gcc-plugins/gcc-generate-rtl-pass.h @@ -0,0 +1,175 @@ +/* + * Generator for RTL pass related boilerplate code/data + * + * Supports gcc 4.5-6 + * + * Usage: + * + * 1. before inclusion define PASS_NAME + * 2. before inclusion define NO_* for unimplemented callbacks + * NO_GATE + * NO_EXECUTE + * 3. before inclusion define PROPERTIES_* and TODO_FLAGS_* to override + * the default 0 values + * 4. for convenience, all the above will be undefined after inclusion! + * 5. the only exported name is make_PASS_NAME_pass() to register with gcc + */ + +#ifndef PASS_NAME +#error at least PASS_NAME must be defined +#else +#define __GCC_PLUGIN_STRINGIFY(n) #n +#define _GCC_PLUGIN_STRINGIFY(n) __GCC_PLUGIN_STRINGIFY(n) +#define _GCC_PLUGIN_CONCAT2(x, y) x ## y +#define _GCC_PLUGIN_CONCAT3(x, y, z) x ## y ## z + +#define __PASS_NAME_PASS_DATA(n) _GCC_PLUGIN_CONCAT2(n, _pass_data) +#define _PASS_NAME_PASS_DATA __PASS_NAME_PASS_DATA(PASS_NAME) + +#define __PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT2(n, _pass) +#define _PASS_NAME_PASS __PASS_NAME_PASS(PASS_NAME) + +#define _PASS_NAME_NAME _GCC_PLUGIN_STRINGIFY(PASS_NAME) + +#define __MAKE_PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT3(make_, n, _pass) +#define _MAKE_PASS_NAME_PASS __MAKE_PASS_NAME_PASS(PASS_NAME) + +#ifdef NO_GATE +#define _GATE NULL +#define _HAS_GATE false +#else +#define __GATE(n) _GCC_PLUGIN_CONCAT2(n, _gate) +#define _GATE __GATE(PASS_NAME) +#define _HAS_GATE true +#endif + +#ifdef NO_EXECUTE +#define _EXECUTE NULL +#define _HAS_EXECUTE false +#else +#define __EXECUTE(n) _GCC_PLUGIN_CONCAT2(n, _execute) +#define _EXECUTE __EXECUTE(PASS_NAME) +#define _HAS_EXECUTE true +#endif + +#ifndef PROPERTIES_REQUIRED +#define PROPERTIES_REQUIRED 0 +#endif + +#ifndef PROPERTIES_PROVIDED +#define PROPERTIES_PROVIDED 0 +#endif + +#ifndef PROPERTIES_DESTROYED +#define PROPERTIES_DESTROYED 0 +#endif + +#ifndef TODO_FLAGS_START +#define TODO_FLAGS_START 0 +#endif + +#ifndef TODO_FLAGS_FINISH +#define TODO_FLAGS_FINISH 0 +#endif + +#if BUILDING_GCC_VERSION >= 4009 +namespace { +static const pass_data _PASS_NAME_PASS_DATA = { +#else +static struct rtl_opt_pass _PASS_NAME_PASS = { + .pass = { +#endif + .type = RTL_PASS, + .name = _PASS_NAME_NAME, +#if BUILDING_GCC_VERSION >= 4008 + .optinfo_flags = OPTGROUP_NONE, +#endif +#if BUILDING_GCC_VERSION >= 5000 +#elif BUILDING_GCC_VERSION == 4009 + .has_gate = _HAS_GATE, + .has_execute = _HAS_EXECUTE, +#else + .gate = _GATE, + .execute = _EXECUTE, + .sub = NULL, + .next = NULL, + .static_pass_number = 0, +#endif + .tv_id = TV_NONE, + .properties_required = PROPERTIES_REQUIRED, + .properties_provided = PROPERTIES_PROVIDED, + .properties_destroyed = PROPERTIES_DESTROYED, + .todo_flags_start = TODO_FLAGS_START, + .todo_flags_finish = TODO_FLAGS_FINISH, +#if BUILDING_GCC_VERSION < 4009 + } +#endif +}; + +#if BUILDING_GCC_VERSION >= 4009 +class _PASS_NAME_PASS : public rtl_opt_pass { +public: + _PASS_NAME_PASS() : rtl_opt_pass(_PASS_NAME_PASS_DATA, g) {} + +#ifndef NO_GATE +#if BUILDING_GCC_VERSION >= 5000 + virtual bool gate(function *) { return _GATE(); } +#else + virtual bool gate(void) { return _GATE(); } +#endif +#endif + + virtual opt_pass *clone() { return new _PASS_NAME_PASS(); } + +#ifndef NO_EXECUTE +#if BUILDING_GCC_VERSION >= 5000 + virtual unsigned int execute(function *) { return _EXECUTE(); } +#else + virtual unsigned int execute(void) { return _EXECUTE(); } +#endif +#endif +}; +} + +opt_pass *_MAKE_PASS_NAME_PASS(void) +{ + return new _PASS_NAME_PASS(); +} +#else +struct opt_pass *_MAKE_PASS_NAME_PASS(void) +{ + return &_PASS_NAME_PASS.pass; +} +#endif + +/* clean up user provided defines */ +#undef PASS_NAME +#undef NO_GATE +#undef NO_EXECUTE + +#undef PROPERTIES_DESTROYED +#undef PROPERTIES_PROVIDED +#undef PROPERTIES_REQUIRED +#undef TODO_FLAGS_FINISH +#undef TODO_FLAGS_START + +/* clean up generated defines */ +#undef _EXECUTE +#undef __EXECUTE +#undef _GATE +#undef __GATE +#undef _GCC_PLUGIN_CONCAT2 +#undef _GCC_PLUGIN_CONCAT3 +#undef _GCC_PLUGIN_STRINGIFY +#undef __GCC_PLUGIN_STRINGIFY +#undef _HAS_EXECUTE +#undef _HAS_GATE +#undef _MAKE_PASS_NAME_PASS +#undef __MAKE_PASS_NAME_PASS +#undef _PASS_NAME_NAME +#undef _PASS_NAME_PASS +#undef __PASS_NAME_PASS +#undef _PASS_NAME_PASS_DATA +#undef __PASS_NAME_PASS_DATA + +#endif /* PASS_NAME */ diff --git a/scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h b/scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h new file mode 100644 index 000000000000..a27e2b36afaa --- /dev/null +++ b/scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h @@ -0,0 +1,175 @@ +/* + * Generator for SIMPLE_IPA pass related boilerplate code/data + * + * Supports gcc 4.5-6 + * + * Usage: + * + * 1. before inclusion define PASS_NAME + * 2. before inclusion define NO_* for unimplemented callbacks + * NO_GATE + * NO_EXECUTE + * 3. before inclusion define PROPERTIES_* and TODO_FLAGS_* to override + * the default 0 values + * 4. for convenience, all the above will be undefined after inclusion! + * 5. the only exported name is make_PASS_NAME_pass() to register with gcc + */ + +#ifndef PASS_NAME +#error at least PASS_NAME must be defined +#else +#define __GCC_PLUGIN_STRINGIFY(n) #n +#define _GCC_PLUGIN_STRINGIFY(n) __GCC_PLUGIN_STRINGIFY(n) +#define _GCC_PLUGIN_CONCAT2(x, y) x ## y +#define _GCC_PLUGIN_CONCAT3(x, y, z) x ## y ## z + +#define __PASS_NAME_PASS_DATA(n) _GCC_PLUGIN_CONCAT2(n, _pass_data) +#define _PASS_NAME_PASS_DATA __PASS_NAME_PASS_DATA(PASS_NAME) + +#define __PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT2(n, _pass) +#define _PASS_NAME_PASS __PASS_NAME_PASS(PASS_NAME) + +#define _PASS_NAME_NAME _GCC_PLUGIN_STRINGIFY(PASS_NAME) + +#define __MAKE_PASS_NAME_PASS(n) _GCC_PLUGIN_CONCAT3(make_, n, _pass) +#define _MAKE_PASS_NAME_PASS __MAKE_PASS_NAME_PASS(PASS_NAME) + +#ifdef NO_GATE +#define _GATE NULL +#define _HAS_GATE false +#else +#define __GATE(n) _GCC_PLUGIN_CONCAT2(n, _gate) +#define _GATE __GATE(PASS_NAME) +#define _HAS_GATE true +#endif + +#ifdef NO_EXECUTE +#define _EXECUTE NULL +#define _HAS_EXECUTE false +#else +#define __EXECUTE(n) _GCC_PLUGIN_CONCAT2(n, _execute) +#define _EXECUTE __EXECUTE(PASS_NAME) +#define _HAS_EXECUTE true +#endif + +#ifndef PROPERTIES_REQUIRED +#define PROPERTIES_REQUIRED 0 +#endif + +#ifndef PROPERTIES_PROVIDED +#define PROPERTIES_PROVIDED 0 +#endif + +#ifndef PROPERTIES_DESTROYED +#define PROPERTIES_DESTROYED 0 +#endif + +#ifndef TODO_FLAGS_START +#define TODO_FLAGS_START 0 +#endif + +#ifndef TODO_FLAGS_FINISH +#define TODO_FLAGS_FINISH 0 +#endif + +#if BUILDING_GCC_VERSION >= 4009 +namespace { +static const pass_data _PASS_NAME_PASS_DATA = { +#else +static struct simple_ipa_opt_pass _PASS_NAME_PASS = { + .pass = { +#endif + .type = SIMPLE_IPA_PASS, + .name = _PASS_NAME_NAME, +#if BUILDING_GCC_VERSION >= 4008 + .optinfo_flags = OPTGROUP_NONE, +#endif +#if BUILDING_GCC_VERSION >= 5000 +#elif BUILDING_GCC_VERSION == 4009 + .has_gate = _HAS_GATE, + .has_execute = _HAS_EXECUTE, +#else + .gate = _GATE, + .execute = _EXECUTE, + .sub = NULL, + .next = NULL, + .static_pass_number = 0, +#endif + .tv_id = TV_NONE, + .properties_required = PROPERTIES_REQUIRED, + .properties_provided = PROPERTIES_PROVIDED, + .properties_destroyed = PROPERTIES_DESTROYED, + .todo_flags_start = TODO_FLAGS_START, + .todo_flags_finish = TODO_FLAGS_FINISH, +#if BUILDING_GCC_VERSION < 4009 + } +#endif +}; + +#if BUILDING_GCC_VERSION >= 4009 +class _PASS_NAME_PASS : public simple_ipa_opt_pass { +public: + _PASS_NAME_PASS() : simple_ipa_opt_pass(_PASS_NAME_PASS_DATA, g) {} + +#ifndef NO_GATE +#if BUILDING_GCC_VERSION >= 5000 + virtual bool gate(function *) { return _GATE(); } +#else + virtual bool gate(void) { return _GATE(); } +#endif +#endif + + virtual opt_pass *clone() { return new _PASS_NAME_PASS(); } + +#ifndef NO_EXECUTE +#if BUILDING_GCC_VERSION >= 5000 + virtual unsigned int execute(function *) { return _EXECUTE(); } +#else + virtual unsigned int execute(void) { return _EXECUTE(); } +#endif +#endif +}; +} + +opt_pass *_MAKE_PASS_NAME_PASS(void) +{ + return new _PASS_NAME_PASS(); +} +#else +struct opt_pass *_MAKE_PASS_NAME_PASS(void) +{ + return &_PASS_NAME_PASS.pass; +} +#endif + +/* clean up user provided defines */ +#undef PASS_NAME +#undef NO_GATE +#undef NO_EXECUTE + +#undef PROPERTIES_DESTROYED +#undef PROPERTIES_PROVIDED +#undef PROPERTIES_REQUIRED +#undef TODO_FLAGS_FINISH +#undef TODO_FLAGS_START + +/* clean up generated defines */ +#undef _EXECUTE +#undef __EXECUTE +#undef _GATE +#undef __GATE +#undef _GCC_PLUGIN_CONCAT2 +#undef _GCC_PLUGIN_CONCAT3 +#undef _GCC_PLUGIN_STRINGIFY +#undef __GCC_PLUGIN_STRINGIFY +#undef _HAS_EXECUTE +#undef _HAS_GATE +#undef _MAKE_PASS_NAME_PASS +#undef __MAKE_PASS_NAME_PASS +#undef _PASS_NAME_NAME +#undef _PASS_NAME_PASS +#undef __PASS_NAME_PASS +#undef _PASS_NAME_PASS_DATA +#undef __PASS_NAME_PASS_DATA + +#endif /* PASS_NAME */ diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh index f0f6d9d75435..4f727eb5ec43 100755 --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh @@ -180,7 +180,7 @@ else fi; # final build of init/ -${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init +${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init GCC_PLUGINS_CFLAGS="${GCC_PLUGINS_CFLAGS}" kallsymso="" kallsyms_vmlinux="" diff --git a/scripts/package/builddeb b/scripts/package/builddeb index 86e56fef7473..4d4418a8d54d 100755 --- a/scripts/package/builddeb +++ b/scripts/package/builddeb @@ -329,6 +329,7 @@ fi (cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles" (cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles" (cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles" +(cd $objtree; find scripts/gcc-plugins -name \*.so -o -name gcc-common.h) >> "$objtree/debian/hdrobjfiles" destdir=$kernel_headers_dir/usr/src/linux-headers-$version mkdir -p "$destdir" (cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -) -- cgit v1.2.3-71-gd317 From 0dae776c6bf31e779c172753f6e2d6426eb42523 Mon Sep 17 00:00:00 2001 From: Emese Revfy Date: Tue, 24 May 2016 00:10:35 +0200 Subject: Add Cyclomatic complexity GCC plugin Add a very simple plugin to demonstrate the GCC plugin infrastructure. This GCC plugin computes the cyclomatic complexity of each function. The complexity M of a function's control flow graph is defined as: M = E - N + 2P where E = the number of edges N = the number of nodes P = the number of connected components (exit nodes). Signed-off-by: Emese Revfy Acked-by: Kees Cook Signed-off-by: Michal Marek --- arch/Kconfig | 12 +++++ scripts/Makefile.gcc-plugins | 1 + scripts/gcc-plugins/Makefile | 1 + scripts/gcc-plugins/cyc_complexity_plugin.c | 73 +++++++++++++++++++++++++++++ 4 files changed, 87 insertions(+) create mode 100644 scripts/gcc-plugins/cyc_complexity_plugin.c (limited to 'scripts') diff --git a/arch/Kconfig b/arch/Kconfig index 1b93632198fa..04ca45262ad1 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -372,6 +372,18 @@ menuconfig GCC_PLUGINS See Documentation/gcc-plugins.txt for details. +config GCC_PLUGIN_CYC_COMPLEXITY + bool "Compute the cyclomatic complexity of a function" + depends on GCC_PLUGINS + help + The complexity M of a function's control flow graph is defined as: + M = E - N + 2P + where + + E = the number of edges + N = the number of nodes + P = the number of connected components (exit nodes). + config HAVE_CC_STACKPROTECTOR bool help diff --git a/scripts/Makefile.gcc-plugins b/scripts/Makefile.gcc-plugins index bcc373dcb3b5..b4a189c95a8a 100644 --- a/scripts/Makefile.gcc-plugins +++ b/scripts/Makefile.gcc-plugins @@ -2,6 +2,7 @@ ifdef CONFIG_GCC_PLUGINS __PLUGINCC := $(call cc-ifversion, -ge, 0408, $(HOSTCXX), $(HOSTCC)) PLUGINCC := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-plugin.sh "$(__PLUGINCC)" "$(HOSTCXX)" "$(CC)") + gcc-plugin-$(CONFIG_GCC_PLUGIN_CYC_COMPLEXITY) += cyc_complexity_plugin.so GCC_PLUGINS_CFLAGS := $(addprefix -fplugin=$(objtree)/scripts/gcc-plugins/, $(gcc-plugin-y)) export PLUGINCC GCC_PLUGINS_CFLAGS GCC_PLUGIN diff --git a/scripts/gcc-plugins/Makefile b/scripts/gcc-plugins/Makefile index a4c93419d5d1..c60ba4bef57c 100644 --- a/scripts/gcc-plugins/Makefile +++ b/scripts/gcc-plugins/Makefile @@ -17,4 +17,5 @@ export GCCPLUGINS_DIR HOSTLIBS $(HOSTLIBS)-y := $(GCC_PLUGIN) always := $($(HOSTLIBS)-y) +cyc_complexity_plugin-objs := cyc_complexity_plugin.o clean-files += *.so diff --git a/scripts/gcc-plugins/cyc_complexity_plugin.c b/scripts/gcc-plugins/cyc_complexity_plugin.c new file mode 100644 index 000000000000..34df974c6ba3 --- /dev/null +++ b/scripts/gcc-plugins/cyc_complexity_plugin.c @@ -0,0 +1,73 @@ +/* + * Copyright 2011-2016 by Emese Revfy + * Licensed under the GPL v2, or (at your option) v3 + * + * Homepage: + * https://github.com/ephox-gcc-plugins/cyclomatic_complexity + * + * http://en.wikipedia.org/wiki/Cyclomatic_complexity + * The complexity M is then defined as: + * M = E - N + 2P + * where + * + * E = the number of edges of the graph + * N = the number of nodes of the graph + * P = the number of connected components (exit nodes). + * + * Usage (4.5 - 5): + * $ make clean; make run + */ + +#include "gcc-common.h" + +int plugin_is_GPL_compatible; + +static struct plugin_info cyc_complexity_plugin_info = { + .version = "20160225", + .help = "Cyclomatic Complexity\n", +}; + +static unsigned int cyc_complexity_execute(void) +{ + int complexity; + expanded_location xloc; + + /* M = E - N + 2P */ + complexity = n_edges_for_fn(cfun) - n_basic_blocks_for_fn(cfun) + 2; + + xloc = expand_location(DECL_SOURCE_LOCATION(current_function_decl)); + fprintf(stderr, "Cyclomatic Complexity %d %s:%s\n", complexity, + xloc.file, DECL_NAME_POINTER(current_function_decl)); + + return 0; +} + +#define PASS_NAME cyc_complexity + +#define NO_GATE +#define TODO_FLAGS_FINISH TODO_dump_func + +#include "gcc-generate-gimple-pass.h" + +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version) +{ + const char * const plugin_name = plugin_info->base_name; + struct register_pass_info cyc_complexity_pass_info; + + cyc_complexity_pass_info.pass = make_cyc_complexity_pass(); + cyc_complexity_pass_info.reference_pass_name = "ssa"; + cyc_complexity_pass_info.ref_pass_instance_number = 1; + cyc_complexity_pass_info.pos_op = PASS_POS_INSERT_AFTER; + + if (!plugin_default_version_check(version, &gcc_version)) { + error(G_("incompatible gcc/plugin versions")); + return 1; + } + + register_callback(plugin_name, PLUGIN_INFO, NULL, + &cyc_complexity_plugin_info); + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, + &cyc_complexity_pass_info); + + return 0; +} -- cgit v1.2.3-71-gd317 From 543c37cb165049c3be24a0d4733e67caa2b33eef Mon Sep 17 00:00:00 2001 From: Emese Revfy Date: Tue, 24 May 2016 00:11:37 +0200 Subject: Add sancov plugin The sancov gcc plugin inserts a __sanitizer_cov_trace_pc() call at the start of basic blocks. This plugin is a helper plugin for the kcov feature. It supports all gcc versions with plugin support (from gcc-4.5 on). It is based on the gcc commit "Add fuzzing coverage support" by Dmitry Vyukov (https://gcc.gnu.org/viewcvs/gcc?limit_changes=0&view=revision&revision=231296). Signed-off-by: Emese Revfy Acked-by: Kees Cook Signed-off-by: Michal Marek --- Makefile | 10 +-- arch/Kconfig | 9 +++ arch/x86/purgatory/Makefile | 2 + lib/Kconfig.debug | 2 + scripts/Makefile.gcc-plugins | 21 +++++- scripts/gcc-plugins/Makefile | 6 ++ scripts/gcc-plugins/sancov_plugin.c | 144 ++++++++++++++++++++++++++++++++++++ 7 files changed, 184 insertions(+), 10 deletions(-) create mode 100644 scripts/gcc-plugins/sancov_plugin.c (limited to 'scripts') diff --git a/Makefile b/Makefile index 20fcf4b26fbc..c3d494ba3ae1 100644 --- a/Makefile +++ b/Makefile @@ -369,7 +369,7 @@ LDFLAGS_MODULE = CFLAGS_KERNEL = AFLAGS_KERNEL = CFLAGS_GCOV = -fprofile-arcs -ftest-coverage -fno-tree-loop-im -Wno-maybe-uninitialized -CFLAGS_KCOV = -fsanitize-coverage=trace-pc +CFLAGS_KCOV := $(call cc-option,-fsanitize-coverage=trace-pc,) # Use USERINCLUDE when you must reference the UAPI directories only. @@ -691,14 +691,6 @@ endif endif KBUILD_CFLAGS += $(stackp-flag) -ifdef CONFIG_KCOV - ifeq ($(call cc-option, $(CFLAGS_KCOV)),) - $(warning Cannot use CONFIG_KCOV: \ - -fsanitize-coverage=trace-pc is not supported by compiler) - CFLAGS_KCOV = - endif -endif - ifeq ($(cc-name),clang) KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,) KBUILD_CPPFLAGS += $(call cc-option,-Wno-unknown-warning-option,) diff --git a/arch/Kconfig b/arch/Kconfig index 04ca45262ad1..05f1e95b796d 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -384,6 +384,15 @@ config GCC_PLUGIN_CYC_COMPLEXITY N = the number of nodes P = the number of connected components (exit nodes). +config GCC_PLUGIN_SANCOV + bool + depends on GCC_PLUGINS + help + This plugin inserts a __sanitizer_cov_trace_pc() call at the start of + basic blocks. It supports all gcc versions with plugin support (from + gcc-4.5 on). It is based on the commit "Add fuzzing coverage support" + by Dmitry Vyukov . + config HAVE_CC_STACKPROTECTOR bool help diff --git a/arch/x86/purgatory/Makefile b/arch/x86/purgatory/Makefile index 12734a96df47..ac58c1616408 100644 --- a/arch/x86/purgatory/Makefile +++ b/arch/x86/purgatory/Makefile @@ -8,6 +8,8 @@ PURGATORY_OBJS = $(addprefix $(obj)/,$(purgatory-y)) LDFLAGS_purgatory.ro := -e purgatory_start -r --no-undefined -nostdlib -z nodefaultlib targets += purgatory.ro +KCOV_INSTRUMENT := n + # Default KBUILD_CFLAGS can have -pg option set when FTRACE is enabled. That # in turn leaves some undefined symbols like __fentry__ in purgatory and not # sure how to relocate those. Like kexec-tools, use custom flags. diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 77d7d034bac3..b7827dca3fec 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -708,6 +708,8 @@ config KCOV bool "Code coverage for fuzzing" depends on ARCH_HAS_KCOV select DEBUG_FS + select GCC_PLUGINS + select GCC_PLUGIN_SANCOV help KCOV exposes kernel code coverage information in a form suitable for coverage-guided fuzzing (randomized testing). diff --git a/scripts/Makefile.gcc-plugins b/scripts/Makefile.gcc-plugins index b4a189c95a8a..5e22b60589c1 100644 --- a/scripts/Makefile.gcc-plugins +++ b/scripts/Makefile.gcc-plugins @@ -2,10 +2,26 @@ ifdef CONFIG_GCC_PLUGINS __PLUGINCC := $(call cc-ifversion, -ge, 0408, $(HOSTCXX), $(HOSTCC)) PLUGINCC := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-plugin.sh "$(__PLUGINCC)" "$(HOSTCXX)" "$(CC)") + SANCOV_PLUGIN := -fplugin=$(objtree)/scripts/gcc-plugins/sancov_plugin.so + gcc-plugin-$(CONFIG_GCC_PLUGIN_CYC_COMPLEXITY) += cyc_complexity_plugin.so + + ifdef CONFIG_GCC_PLUGIN_SANCOV + ifeq ($(CFLAGS_KCOV),) + # It is needed because of the gcc-plugin.sh and gcc version checks. + gcc-plugin-$(CONFIG_GCC_PLUGIN_SANCOV) += sancov_plugin.so + + ifneq ($(PLUGINCC),) + CFLAGS_KCOV := $(SANCOV_PLUGIN) + else + $(warning warning: cannot use CONFIG_KCOV: -fsanitize-coverage=trace-pc is not supported by compiler) + endif + endif + endif + GCC_PLUGINS_CFLAGS := $(addprefix -fplugin=$(objtree)/scripts/gcc-plugins/, $(gcc-plugin-y)) - export PLUGINCC GCC_PLUGINS_CFLAGS GCC_PLUGIN + export PLUGINCC GCC_PLUGINS_CFLAGS GCC_PLUGIN SANCOV_PLUGIN ifeq ($(PLUGINCC),) ifneq ($(GCC_PLUGINS_CFLAGS),) @@ -16,6 +32,9 @@ ifdef CONFIG_GCC_PLUGINS $(warning warning: your gcc version does not support plugins, you should upgrade it to gcc 4.5 at least) endif endif + else + # SANCOV_PLUGIN can be only in CFLAGS_KCOV because avoid duplication. + GCC_PLUGINS_CFLAGS := $(filter-out $(SANCOV_PLUGIN), $(GCC_PLUGINS_CFLAGS)) endif KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS) diff --git a/scripts/gcc-plugins/Makefile b/scripts/gcc-plugins/Makefile index c60ba4bef57c..88c8ec47232b 100644 --- a/scripts/gcc-plugins/Makefile +++ b/scripts/gcc-plugins/Makefile @@ -14,8 +14,14 @@ endif export GCCPLUGINS_DIR HOSTLIBS +ifneq ($(CFLAGS_KCOV), $(SANCOV_PLUGIN)) + GCC_PLUGIN := $(filter-out $(SANCOV_PLUGIN), $(GCC_PLUGIN)) +endif + $(HOSTLIBS)-y := $(GCC_PLUGIN) always := $($(HOSTLIBS)-y) cyc_complexity_plugin-objs := cyc_complexity_plugin.o +sancov_plugin-objs := sancov_plugin.o + clean-files += *.so diff --git a/scripts/gcc-plugins/sancov_plugin.c b/scripts/gcc-plugins/sancov_plugin.c new file mode 100644 index 000000000000..aedd6113cb73 --- /dev/null +++ b/scripts/gcc-plugins/sancov_plugin.c @@ -0,0 +1,144 @@ +/* + * Copyright 2011-2016 by Emese Revfy + * Licensed under the GPL v2, or (at your option) v3 + * + * Homepage: + * https://github.com/ephox-gcc-plugins/sancov + * + * This plugin inserts a __sanitizer_cov_trace_pc() call at the start of basic blocks. + * It supports all gcc versions with plugin support (from gcc-4.5 on). + * It is based on the commit "Add fuzzing coverage support" by Dmitry Vyukov . + * + * You can read about it more here: + * https://gcc.gnu.org/viewcvs/gcc?limit_changes=0&view=revision&revision=231296 + * http://lwn.net/Articles/674854/ + * https://github.com/google/syzkaller + * https://lwn.net/Articles/677764/ + * + * Usage: + * make run + */ + +#include "gcc-common.h" + +int plugin_is_GPL_compatible; + +tree sancov_fndecl; + +static struct plugin_info sancov_plugin_info = { + .version = "20160402", + .help = "sancov plugin\n", +}; + +static unsigned int sancov_execute(void) +{ + basic_block bb; + + /* Remove this line when this plugin and kcov will be in the kernel. + if (!strcmp(DECL_NAME_POINTER(current_function_decl), DECL_NAME_POINTER(sancov_fndecl))) + return 0; + */ + + FOR_EACH_BB_FN(bb, cfun) { + const_gimple stmt; + gcall *gcall; + gimple_stmt_iterator gsi = gsi_after_labels(bb); + + if (gsi_end_p(gsi)) + continue; + + stmt = gsi_stmt(gsi); + gcall = as_a_gcall(gimple_build_call(sancov_fndecl, 0)); + gimple_set_location(gcall, gimple_location(stmt)); + gsi_insert_before(&gsi, gcall, GSI_SAME_STMT); + } + return 0; +} + +#define PASS_NAME sancov + +#define NO_GATE +#define TODO_FLAGS_FINISH TODO_dump_func | TODO_verify_stmts | TODO_update_ssa_no_phi | TODO_verify_flow + +#include "gcc-generate-gimple-pass.h" + +static void sancov_start_unit(void __unused *gcc_data, void __unused *user_data) +{ + tree leaf_attr, nothrow_attr; + tree BT_FN_VOID = build_function_type_list(void_type_node, NULL_TREE); + + sancov_fndecl = build_fn_decl("__sanitizer_cov_trace_pc", BT_FN_VOID); + + DECL_ASSEMBLER_NAME(sancov_fndecl); + TREE_PUBLIC(sancov_fndecl) = 1; + DECL_EXTERNAL(sancov_fndecl) = 1; + DECL_ARTIFICIAL(sancov_fndecl) = 1; + DECL_PRESERVE_P(sancov_fndecl) = 1; + DECL_UNINLINABLE(sancov_fndecl) = 1; + TREE_USED(sancov_fndecl) = 1; + + nothrow_attr = tree_cons(get_identifier("nothrow"), NULL, NULL); + decl_attributes(&sancov_fndecl, nothrow_attr, 0); + gcc_assert(TREE_NOTHROW(sancov_fndecl)); +#if BUILDING_GCC_VERSION > 4005 + leaf_attr = tree_cons(get_identifier("leaf"), NULL, NULL); + decl_attributes(&sancov_fndecl, leaf_attr, 0); +#endif +} + +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version) +{ + int i; + struct register_pass_info sancov_plugin_pass_info; + const char * const plugin_name = plugin_info->base_name; + const int argc = plugin_info->argc; + const struct plugin_argument * const argv = plugin_info->argv; + bool enable = true; + + static const struct ggc_root_tab gt_ggc_r_gt_sancov[] = { + { + .base = &sancov_fndecl, + .nelt = 1, + .stride = sizeof(sancov_fndecl), + .cb = >_ggc_mx_tree_node, + .pchw = >_pch_nx_tree_node + }, + LAST_GGC_ROOT_TAB + }; + + /* BBs can be split afterwards?? */ + sancov_plugin_pass_info.pass = make_sancov_pass(); +#if BUILDING_GCC_VERSION >= 4009 + sancov_plugin_pass_info.reference_pass_name = "asan"; +#else + sancov_plugin_pass_info.reference_pass_name = "nrv"; +#endif + sancov_plugin_pass_info.ref_pass_instance_number = 0; + sancov_plugin_pass_info.pos_op = PASS_POS_INSERT_BEFORE; + + if (!plugin_default_version_check(version, &gcc_version)) { + error(G_("incompatible gcc/plugin versions")); + return 1; + } + + for (i = 0; i < argc; ++i) { + if (!strcmp(argv[i].key, "no-sancov")) { + enable = false; + continue; + } + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key); + } + + register_callback(plugin_name, PLUGIN_INFO, NULL, &sancov_plugin_info); + + if (!enable) + return 0; + +#if BUILDING_GCC_VERSION < 6000 + register_callback(plugin_name, PLUGIN_START_UNIT, &sancov_start_unit, NULL); + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)>_ggc_r_gt_sancov); + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &sancov_plugin_pass_info); +#endif + + return 0; +} -- cgit v1.2.3-71-gd317 From 8569de68e79e94cce6709831edd94accb6942ade Mon Sep 17 00:00:00 2001 From: Jonathan Corbet Date: Thu, 9 Jun 2016 13:35:05 -0600 Subject: docs: kernel-doc: Add "example" and "note" to the magic section types Lots of kerneldoc entries use "example:" or "note:" as section headers. Until such a time as we can make them use proper markup, make them work as intended. Signed-off-by: Jonathan Corbet --- scripts/kernel-doc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 5192213c5005..27757c21551a 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -406,7 +406,8 @@ my $doc_com = '\s*\*\s*'; my $doc_com_body = '\s*\* ?'; my $doc_decl = $doc_com . '(\w+)'; # @params and a strictly limited set of supported section names -my $doc_sect = $doc_com . '\s*(\@\w+|description|context|returns?)\s*:(.*)'; +my $doc_sect = $doc_com . + '\s*(\@\w+|description|context|returns?|notes?|examples?)\s*:(.*)'; my $doc_content = $doc_com_body . '(.*)'; my $doc_block = $doc_com . 'DOC:\s*(.*)?'; my $doc_inline_start = '^\s*/\*\*\s*$'; -- cgit v1.2.3-71-gd317 From 5668604a6cab13dd5385b8c03a7d55bf92ff0496 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Fri, 10 Jun 2016 11:28:13 +0300 Subject: kernel-doc: remove old debug cruft from dump_section() No functional changes. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 3 --- 1 file changed, 3 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 27757c21551a..ac18eb5ed776 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -529,21 +529,18 @@ sub dump_section { my $contents = join "\n", @_; if ($name =~ m/$type_param/) { -# print STDERR "parameter def '$1' = '$contents'\n"; $name = $1; $parameterdescs{$name} = $contents; $sectcheck = $sectcheck . $name . " "; $parameterdesc_start_lines{$name} = $new_start_line; $new_start_line = 0; } elsif ($name eq "@\.\.\.") { -# print STDERR "parameter def '...' = '$contents'\n"; $name = "..."; $parameterdescs{$name} = $contents; $sectcheck = $sectcheck . $name . " "; $parameterdesc_start_lines{$name} = $new_start_line; $new_start_line = 0; } else { -# print STDERR "other section '$name' = '$contents'\n"; if (defined($sections{$name}) && ($sections{$name} ne "")) { print STDERR "${file}:$.: warning: duplicate section name '$name'\n"; ++$warnings; -- cgit v1.2.3-71-gd317 From 95b6be9d198d964fafd9cbf1dd4d1968291e255c Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Fri, 10 Jun 2016 11:14:05 +0300 Subject: kernel-doc: do not warn about duplicate default section names Since commit 32217761ee9db0215350dfe1ca4e66f312fb8c54 Author: Jani Nikula Date: Sun May 29 09:40:44 2016 +0300 kernel-doc: concatenate contents of colliding sections we started getting (more) errors on duplicate section names, especially on the default section name "Description": include/net/mac80211.h:3174: warning: duplicate section name 'Description' This is usually caused by a slightly unorthodox placement of parameter descriptions, like in the above case, and kernel-doc resetting back to the default section more than once within a kernel-doc comment. Ignore warnings on the duplicate section name automatically assigned by kernel-doc, and only consider explicitly user assigned duplicate section names an issue. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index ac18eb5ed776..710615f3a4ff 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -542,8 +542,11 @@ sub dump_section { $new_start_line = 0; } else { if (defined($sections{$name}) && ($sections{$name} ne "")) { - print STDERR "${file}:$.: warning: duplicate section name '$name'\n"; - ++$warnings; + # Only warn on user specified duplicate section names. + if ($name ne $section_default) { + print STDERR "${file}:$.: warning: duplicate section name '$name'\n"; + ++$warnings; + } $sections{$name} .= $contents; } else { $sections{$name} = $contents; -- cgit v1.2.3-71-gd317 From da9726ecfba202514d984129c3537b028519cdb8 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Tue, 7 Jun 2016 10:29:59 +0300 Subject: kernel-doc: add missing semi-colons in option parsing Signed-off-by: Jani Nikula --- scripts/kernel-doc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 710615f3a4ff..a6f82c812c15 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -484,10 +484,10 @@ while ($ARGV[0] =~ m/^-(.*)/) { $function_table{$function} = 1; } elsif ($cmd eq "-export") { # only exported symbols $output_selection = OUTPUT_EXPORTED; - %function_table = () + %function_table = (); } elsif ($cmd eq "-internal") { # only non-exported symbols $output_selection = OUTPUT_INTERNAL; - %function_table = () + %function_table = (); } elsif ($cmd eq "-v") { $verbose = 1; } elsif (($cmd eq "-h") || ($cmd eq "--help")) { -- cgit v1.2.3-71-gd317 From 1ad560e43c911e19751df65dd2af21341d02eac5 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Tue, 7 Jun 2016 10:53:39 +0300 Subject: kernel-doc: abstract filename mapping Reduce duplication in follow-up work. No functional changes. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index a6f82c812c15..516d95fcefb7 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -2730,26 +2730,35 @@ sub local_unescape($) { return $text; } -sub process_file($) { +sub map_filename($) { my $file; - my $identifier; - my $func; - my $descr; - my $in_purpose = 0; - my $initial_section_counter = $section_counter; my ($orig_file) = @_; - my $leading_space; if (defined($ENV{'SRCTREE'})) { $file = "$ENV{'SRCTREE'}" . "/" . $orig_file; - } - else { + } else { $file = $orig_file; } + if (defined($source_map{$file})) { $file = $source_map{$file}; } + return $file; +} + +sub process_file($) { + my $file; + my $identifier; + my $func; + my $descr; + my $in_purpose = 0; + my $initial_section_counter = $section_counter; + my ($orig_file) = @_; + my $leading_space; + + $file = map_filename($orig_file); + if (!open(IN,"<$file")) { print STDERR "Error: Cannot open file $file\n"; ++$errors; -- cgit v1.2.3-71-gd317 From 88c2b57da4ce3c8b5f849dc5356bdea9e2ed1134 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Tue, 7 Jun 2016 11:00:52 +0300 Subject: kernel-doc: add support for specifying extra files for EXPORT_SYMBOLs If the kernel-doc comments for functions are not in the same file as the EXPORT_SYMBOL statements, the -export and -internal output selections do not work as expected. This is typically the case when the kernel-doc comments are in header files next to the function declarations and the EXPORT_SYMBOL statements are next to the function definitions in the source files. Let the user specify additional source files in which to look for the EXPORT_SYMBOLs using the new -export-file FILE option, which may be given multiple times. The pathological example for this is include/net/mac80211.h, which has all the kernel-doc documentation for the exported functions defined in a plethora of source files net/mac80211/*.c. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 516d95fcefb7..9708a87c7069 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -61,10 +61,10 @@ Output format selection (mutually exclusive): Output selection (mutually exclusive): -export Only output documentation for symbols that have been exported using EXPORT_SYMBOL() or EXPORT_SYMBOL_GPL() - in the same FILE. + in the same FILE or any -export-file FILE. -internal Only output documentation for symbols that have NOT been exported using EXPORT_SYMBOL() or EXPORT_SYMBOL_GPL() - in the same FILE. + in the same FILE or any -export-file FILE. -function NAME Only output documentation for the given function(s) or DOC: section title(s). All other functions and DOC: sections are ignored. May be specified multiple times. @@ -76,6 +76,9 @@ Output selection modifiers: -no-doc-sections Do not output DOC: sections. -enable-lineno Enable output of #define LINENO lines. Only works with reStructuredText format. + -export-file FILE Specify an additional FILE in which to look for + EXPORT_SYMBOL() and EXPORT_SYMBOL_GPL(). To be used with + -export or -internal. May be specified multiple times. Other parameters: -v Verbose output, more warnings and other information. @@ -336,6 +339,8 @@ use constant { my $output_selection = OUTPUT_ALL; my $show_not_found = 0; +my @export_file_list; + my @build_time; if (defined($ENV{'KBUILD_BUILD_TIMESTAMP'}) && (my $seconds = `date -d"${ENV{'KBUILD_BUILD_TIMESTAMP'}}" +%s`) ne '') { @@ -488,6 +493,9 @@ while ($ARGV[0] =~ m/^-(.*)/) { } elsif ($cmd eq "-internal") { # only non-exported symbols $output_selection = OUTPUT_INTERNAL; %function_table = (); + } elsif ($cmd eq "-export-file") { + my $file = shift @ARGV; + push(@export_file_list, $file); } elsif ($cmd eq "-v") { $verbose = 1; } elsif (($cmd eq "-h") || ($cmd eq "--help")) { @@ -2747,6 +2755,25 @@ sub map_filename($) { return $file; } +sub process_export_file($) { + my ($orig_file) = @_; + my $file = map_filename($orig_file); + + if (!open(IN,"<$file")) { + print STDERR "Error: Cannot open file $file\n"; + ++$errors; + return; + } + + while () { + if (/$export_symbol/) { + $function_table{$2} = 1; + } + } + + close(IN); +} + sub process_file($) { my $file; my $identifier; @@ -3081,6 +3108,14 @@ if (open(SOURCE_MAP, "<.tmp_filelist.txt")) { close(SOURCE_MAP); } +if ($output_selection == OUTPUT_EXPORTED || + $output_selection == OUTPUT_INTERNAL) { + foreach (@export_file_list) { + chomp; + process_export_file($_); + } +} + foreach (@ARGV) { chomp; process_file($_); -- cgit v1.2.3-71-gd317 From c9b2cfb3faece55df7f50b4ab76bc00ac8e06700 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Tue, 7 Jun 2016 11:05:53 +0300 Subject: kernel-doc: unify all EXPORT_SYMBOL scanning to one place Scan all input files for EXPORT_SYMBOLs along with the explicitly specified export files before actually parsing anything. Signed-off-by: Jani Nikula --- scripts/kernel-doc | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) (limited to 'scripts') diff --git a/scripts/kernel-doc b/scripts/kernel-doc index 9708a87c7069..932b3f34ff06 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -61,10 +61,10 @@ Output format selection (mutually exclusive): Output selection (mutually exclusive): -export Only output documentation for symbols that have been exported using EXPORT_SYMBOL() or EXPORT_SYMBOL_GPL() - in the same FILE or any -export-file FILE. + in any input FILE or -export-file FILE. -internal Only output documentation for symbols that have NOT been exported using EXPORT_SYMBOL() or EXPORT_SYMBOL_GPL() - in the same FILE or any -export-file FILE. + in any input FILE or -export-file FILE. -function NAME Only output documentation for the given function(s) or DOC: section title(s). All other functions and DOC: sections are ignored. May be specified multiple times. @@ -2792,17 +2792,6 @@ sub process_file($) { return; } - # two passes for -export and -internal - if ($output_selection == OUTPUT_EXPORTED || - $output_selection == OUTPUT_INTERNAL) { - while () { - if (/$export_symbol/o) { - $function_table{$2} = 1; - } - } - seek(IN, 0, 0); - } - $. = 1; $section_counter = 0; @@ -3110,6 +3099,9 @@ if (open(SOURCE_MAP, "<.tmp_filelist.txt")) { if ($output_selection == OUTPUT_EXPORTED || $output_selection == OUTPUT_INTERNAL) { + + push(@export_file_list, @ARGV); + foreach (@export_file_list) { chomp; process_export_file($_); -- cgit v1.2.3-71-gd317 From 9552c7aebb8c36912612fddad5b55267c671a303 Mon Sep 17 00:00:00 2001 From: David Howells Date: Tue, 14 Jun 2016 13:18:33 +0100 Subject: modsign: Make sign-file determine the format of the X.509 cert Make sign-file determine the format of the X.509 certificate by reading the first two bytes and seeing if the first byte is 0x30 and the second 0x81-0x84. If this is the case, assume it's DER encoded, otherwise assume it to be PEM encoded. Without this, it gets awkward to deal with the error messages from d2i_X509_bio() when we want to call BIO_reset() and then PEM_read_bio() in case the certificate was PEM encoded rather than X.509 encoded. Reported-by: Ben Hutchings Signed-off-by: David Howells Tested-by: Ben Hutchings cc: David Woodhouse cc: Juerg Haefliger cc: Ben Hutchings --- scripts/sign-file.c | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) (limited to 'scripts') diff --git a/scripts/sign-file.c b/scripts/sign-file.c index d912d5a56a5e..53af6dc3e6c1 100755 --- a/scripts/sign-file.c +++ b/scripts/sign-file.c @@ -1,6 +1,6 @@ /* Sign a module file using the given key. * - * Copyright © 2014-2015 Red Hat, Inc. All Rights Reserved. + * Copyright © 2014-2016 Red Hat, Inc. All Rights Reserved. * Copyright © 2015 Intel Corporation. * Copyright © 2016 Hewlett Packard Enterprise Development LP * @@ -167,19 +167,37 @@ static EVP_PKEY *read_private_key(const char *private_key_name) static X509 *read_x509(const char *x509_name) { + unsigned char buf[2]; X509 *x509; BIO *b; + int n; b = BIO_new_file(x509_name, "rb"); ERR(!b, "%s", x509_name); - x509 = d2i_X509_bio(b, NULL); /* Binary encoded X.509 */ - if (!x509) { - ERR(BIO_reset(b) != 1, "%s", x509_name); - x509 = PEM_read_bio_X509(b, NULL, NULL, - NULL); /* PEM encoded X.509 */ - if (x509) - drain_openssl_errors(); + + /* Look at the first two bytes of the file to determine the encoding */ + n = BIO_read(b, buf, 2); + if (n != 2) { + if (BIO_should_retry(b)) { + fprintf(stderr, "%s: Read wanted retry\n", x509_name); + exit(1); + } + if (n >= 0) { + fprintf(stderr, "%s: Short read\n", x509_name); + exit(1); + } + ERR(1, "%s", x509_name); } + + ERR(BIO_reset(b) != 0, "%s", x509_name); + + if (buf[0] == 0x30 && buf[1] >= 0x81 && buf[1] <= 0x84) + /* Assume raw DER encoded X.509 */ + x509 = d2i_X509_bio(b, NULL); + else + /* Assume PEM encoded X.509 */ + x509 = PEM_read_bio_X509(b, NULL, NULL, NULL); + BIO_free(b); ERR(!x509, "%s", x509_name); -- cgit v1.2.3-71-gd317 From bf56cc04ef97c8ec536e3fcd16fc57902cba339f Mon Sep 17 00:00:00 2001 From: Vaishali Thakkar Date: Tue, 24 May 2016 09:49:17 +0530 Subject: Coccinelle: noderef: Add new rules and correct the old rule Add new rules to detect the cases where sizeof is used in function calls as a argument. Also, for the patch mode third rule should behave same as second rule with arguments reversed. So, change that as well. Signed-off-by: Vaishali Thakkar Acked-by: Julia Lawall Signed-off-by: Michal Marek --- scripts/coccinelle/misc/noderef.cocci | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/coccinelle/misc/noderef.cocci b/scripts/coccinelle/misc/noderef.cocci index 80a831c91161..007f0de0c715 100644 --- a/scripts/coccinelle/misc/noderef.cocci +++ b/scripts/coccinelle/misc/noderef.cocci @@ -16,6 +16,7 @@ virtual patch @depends on patch@ expression *x; expression f; +expression i; type T; @@ @@ -30,15 +31,26 @@ f(...,(T)(x),...,sizeof( + *x ),...) | -f(...,sizeof(x),...,(T)( +f(...,sizeof( +- x ++ *x + ),...,(T)(x),...) +| +f(...,(T)(x),...,i*sizeof( - x + *x ),...) +| +f(...,i*sizeof( +- x ++ *x + ),...,(T)(x),...) ) @r depends on !patch@ expression *x; expression f; +expression i; position p; type T; @@ @@ -49,6 +61,10 @@ type T; *f(...,(T)(x),...,sizeof@p(x),...) | *f(...,sizeof@p(x),...,(T)(x),...) +| +*f(...,(T)(x),...,i*sizeof@p(x),...) +| +*f(...,i*sizeof@p(x),...,(T)(x),...) ) @script:python depends on org@ -- cgit v1.2.3-71-gd317 From 78283edf2c01c38eb840a3de5ffd18fe2992ab64 Mon Sep 17 00:00:00 2001 From: Wolfram Sang Date: Mon, 6 Jun 2016 21:00:38 +0200 Subject: kbuild: setlocalversion: print error to STDERR I tried to use 'make O=...' from an unclean source tree. This triggered the error path of setlocalversion. But by printing to STDOUT, it created a broken localversion which then caused another (unrelated) error: "4.7.0-rc2Error: kernelrelease not valid - run make prepare to update it" exceeds 64 characters After printing to STDERR, the true build error gets displayed later: /home/wsa/Kernel/linux is not clean, please run 'make mrproper' in the '/home/wsa/Kernel/linux' directory. Signed-off-by: Wolfram Sang Signed-off-by: Michal Marek --- scripts/setlocalversion | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/setlocalversion b/scripts/setlocalversion index 63d91e22ed7c..966dd3924ea9 100755 --- a/scripts/setlocalversion +++ b/scripts/setlocalversion @@ -143,7 +143,7 @@ fi if test -e include/config/auto.conf; then . include/config/auto.conf else - echo "Error: kernelrelease not valid - run 'make prepare' to update it" + echo "Error: kernelrelease not valid - run 'make prepare' to update it" >&2 exit 1 fi -- cgit v1.2.3-71-gd317 From 7a2358b3818691521c7df531415d1ea4d0398520 Mon Sep 17 00:00:00 2001 From: Deepa Dinamani Date: Sun, 12 Jun 2016 12:04:39 -0700 Subject: coccicheck: Allow for overriding spatch flags Documentation/coccinelle.txt suggests using the SPFLAGS make variable to pass additional options to spatch. Reorder the way SPFLAGS is added to FLAGS, to allow for options in the SPFLAGS to override the default --very-quiet option. Similarly, rearrage the FLAGS for org or report mode. This allows for overriding of the default --no-show-diff option through SPFLAGS. Signed-off-by: Deepa Dinamani Cc: Gilles Muller Acked-by: Nicolas Palix Acked-by: Julia Lawall Signed-off-by: Michal Marek --- scripts/coccicheck | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'scripts') diff --git a/scripts/coccicheck b/scripts/coccicheck index dd85a455b2ba..f6627863fdc3 100755 --- a/scripts/coccicheck +++ b/scripts/coccicheck @@ -25,7 +25,7 @@ else NPROC="$J" fi -FLAGS="$SPFLAGS --very-quiet" +FLAGS="--very-quiet $SPFLAGS" # spatch only allows include directories with the syntax "-I include" # while gcc also allows "-Iinclude" and "-include include" @@ -72,7 +72,7 @@ if [ "$MODE" = "chain" ] ; then echo 'All available modes will be tried (in that order): patch, report, context, org' fi elif [ "$MODE" = "report" -o "$MODE" = "org" ] ; then - FLAGS="$FLAGS --no-show-diff" + FLAGS="--no-show-diff $FLAGS" fi if [ "$ONLINE" = "0" ] ; then -- cgit v1.2.3-71-gd317 From 6dd9379e8f327e70d182b15be3ba21aa2b5d2cba Mon Sep 17 00:00:00 2001 From: Yann Droneaud Date: Mon, 23 May 2016 17:07:19 +0200 Subject: coccinelle: also catch kzfree() issues Since commit 3ef0e5ba4673 ('slab: introduce kzfree()'), kfree() is no more the only function to be considered: kzfree() should be recognized too. In particular, kzfree() must not be called on memory allocated through devm_*() functions. Cc: Johannes Weiner Acked-by: Julia Lawall Signed-off-by: Yann Droneaud Signed-off-by: Michal Marek --- scripts/coccinelle/free/devm_free.cocci | 2 ++ scripts/coccinelle/free/ifnullfree.cocci | 4 +++- scripts/coccinelle/free/kfree.cocci | 18 +++++++++++++++--- scripts/coccinelle/free/kfreeaddr.cocci | 6 +++++- 4 files changed, 25 insertions(+), 5 deletions(-) (limited to 'scripts') diff --git a/scripts/coccinelle/free/devm_free.cocci b/scripts/coccinelle/free/devm_free.cocci index 3d9349012bb3..83c03adec1c5 100644 --- a/scripts/coccinelle/free/devm_free.cocci +++ b/scripts/coccinelle/free/devm_free.cocci @@ -48,6 +48,8 @@ position p; ( * kfree@p(x) | +* kzfree@p(x) +| * free_irq@p(x) | * iounmap@p(x) diff --git a/scripts/coccinelle/free/ifnullfree.cocci b/scripts/coccinelle/free/ifnullfree.cocci index 52bd235286fa..14a4cd98e83b 100644 --- a/scripts/coccinelle/free/ifnullfree.cocci +++ b/scripts/coccinelle/free/ifnullfree.cocci @@ -19,6 +19,8 @@ expression E; - if (E != NULL) ( kfree(E); +| + kzfree(E); | debugfs_remove(E); | @@ -39,7 +41,7 @@ position p; @@ * if (E != NULL) -* \(kfree@p\|debugfs_remove@p\|debugfs_remove_recursive@p\| +* \(kfree@p\|kzfree@p\|debugfs_remove@p\|debugfs_remove_recursive@p\| * usb_free_urb@p\|kmem_cache_destroy@p\|mempool_destroy@p\| * dma_pool_destroy@p\)(E); diff --git a/scripts/coccinelle/free/kfree.cocci b/scripts/coccinelle/free/kfree.cocci index 577b78056990..ac438da4fd7b 100644 --- a/scripts/coccinelle/free/kfree.cocci +++ b/scripts/coccinelle/free/kfree.cocci @@ -20,7 +20,11 @@ expression E; position p1; @@ -kfree@p1(E) +( +* kfree@p1(E) +| +* kzfree@p1(E) +) @print expression@ constant char [] c; @@ -60,7 +64,11 @@ position ok; @@ while (1) { ... - kfree@ok(E) +( +* kfree@ok(E) +| +* kzfree@ok(E) +) ... when != break; when != goto l; when forall @@ -74,7 +82,11 @@ statement S; position free.p1!=loop.ok,p2!={print.p,sz.p}; @@ -kfree@p1(E,...) +( +* kfree@p1(E,...) +| +* kzfree@p1(E,...) +) ... ( iter(...,subE,...) S // no use diff --git a/scripts/coccinelle/free/kfreeaddr.cocci b/scripts/coccinelle/free/kfreeaddr.cocci index ce8aacc314cb..d46063b1db8b 100644 --- a/scripts/coccinelle/free/kfreeaddr.cocci +++ b/scripts/coccinelle/free/kfreeaddr.cocci @@ -16,7 +16,11 @@ identifier f; position p; @@ +( * kfree@p(&e->f) +| +* kzfree@p(&e->f) +) @script:python depends on org@ p << r.p; @@ -28,5 +32,5 @@ cocci.print_main("kfree",p) p << r.p; @@ -msg = "ERROR: kfree of structure field" +msg = "ERROR: invalid free of structure field" coccilib.report.print_report(p[0],msg) -- cgit v1.2.3-71-gd317 From a720c0644d14011d3a1bcc8d1b36e80571ad2ce1 Mon Sep 17 00:00:00 2001 From: Yann Droneaud Date: Mon, 23 May 2016 17:07:20 +0200 Subject: coccinelle: recognize more devm_* memory allocation functions Updates free/devm_free.cocci to recognize functions added by: - commit 64c862a839a8 ('devres: add kernel standard devm_k.alloc functions') - commit e31108cad3de ('devres: introduce API "devm_kstrdup"') - commit 3046365bb470 ('devres: introduce API "devm_kmemdup') - commit 43339bed7010 ('devres: Add devm_get_free_pages API') - commit 75f2a4ead5d5 ('devres: Add devm_kasprintf and devm_kvasprintf API') See also Documentation/driver-model/devres.txt Cc: Joe Perches Cc: Manish Badarkhe Cc: Srinivas Pandruvada Cc: Eli Billauer Cc: Himangi Saraogi Cc: Geert Uytterhoeven Cc: Wolfram Sang Cc: Daniel Thompson Acked-by: Julia Lawall Signed-off-by: Yann Droneaud Signed-off-by: Michal Marek --- scripts/coccinelle/free/devm_free.cocci | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'scripts') diff --git a/scripts/coccinelle/free/devm_free.cocci b/scripts/coccinelle/free/devm_free.cocci index 83c03adec1c5..3794cd97494b 100644 --- a/scripts/coccinelle/free/devm_free.cocci +++ b/scripts/coccinelle/free/devm_free.cocci @@ -29,7 +29,23 @@ expression x; @@ ( + x = devm_kmalloc(...) +| + x = devm_kvasprintf(...) +| + x = devm_kasprintf(...) +| x = devm_kzalloc(...) +| + x = devm_kmalloc_array(...) +| + x = devm_kcalloc(...) +| + x = devm_kstrdup(...) +| + x = devm_kmemdup(...) +| + x = devm_get_free_pages(...) | x = devm_request_irq(...) | @@ -50,6 +66,10 @@ position p; | * kzfree@p(x) | +* free_pages@p(x, ...) +| +* free_page@p(x) +| * free_irq@p(x) | * iounmap@p(x) -- cgit v1.2.3-71-gd317 From b7b2ee41f300b69c67c798df0cd5b8648bcb26a3 Mon Sep 17 00:00:00 2001 From: Yann Droneaud Date: Mon, 23 May 2016 17:07:21 +0200 Subject: coccinelle: catch krealloc() on devm_*() allocated memory krealloc() must not be used against devm_*() allocated memory regions: - if a bigger memory is to be allocated, krealloc() and __krealloc() could return a different pointer than the one given to them, creating a memory region which is not managed, thus it will not be automatically released on device removal. - if a bigger memory is to be allocated, krealloc() could kfree() the managed memory region which is passed to it. The old pointer is left registered as a resource for the device. On device removal, this dangling pointer will be used and an unrelated memory region could be released. - if the requested size is equal to 0, krealloc() can also just behave like kfree(). Here too, the old pointer is kept associated with the device. On device removal, this invalid pointer will be used and an unrelated memory region could be released. For all these reasons, krealloc() must not be used on a pointer returned by devm_*() functions. Cc: Tejun Heo Cc: Pekka Enberg Acked-by: Julia Lawall Signed-off-by: Yann Droneaud Signed-off-by: Michal Marek --- scripts/coccinelle/free/devm_free.cocci | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'scripts') diff --git a/scripts/coccinelle/free/devm_free.cocci b/scripts/coccinelle/free/devm_free.cocci index 3794cd97494b..c990d2c7ee16 100644 --- a/scripts/coccinelle/free/devm_free.cocci +++ b/scripts/coccinelle/free/devm_free.cocci @@ -66,6 +66,10 @@ position p; | * kzfree@p(x) | +* __krealloc@p(x, ...) +| +* krealloc@p(x, ...) +| * free_pages@p(x, ...) | * free_page@p(x) -- cgit v1.2.3-71-gd317 From 0afef45654ae908536278ecb143ded5bbc713391 Mon Sep 17 00:00:00 2001 From: Stuart Yoder Date: Wed, 22 Jun 2016 16:40:45 -0500 Subject: staging: fsl-mc: add support for device table matching Move the definition of fsl_mc_device_id to its proper location in mod_devicetable.h, and add fsl-mc bus support to devicetable-offsets.c and file2alias.c to enable device table matching. With this patch udev based module loading of fsl-mc drivers is supported. Signed-off-by: Stuart Yoder Signed-off-by: Greg Kroah-Hartman --- drivers/staging/fsl-mc/include/mc.h | 13 ------------- include/linux/mod_devicetable.h | 16 ++++++++++++++++ scripts/mod/devicetable-offsets.c | 4 ++++ scripts/mod/file2alias.c | 12 ++++++++++++ 4 files changed, 32 insertions(+), 13 deletions(-) (limited to 'scripts') diff --git a/drivers/staging/fsl-mc/include/mc.h b/drivers/staging/fsl-mc/include/mc.h index bc0d45cb9b65..a9a9d23f78d5 100644 --- a/drivers/staging/fsl-mc/include/mc.h +++ b/drivers/staging/fsl-mc/include/mc.h @@ -50,19 +50,6 @@ struct fsl_mc_driver { #define to_fsl_mc_driver(_drv) \ container_of(_drv, struct fsl_mc_driver, driver) -/** - * struct fsl_mc_device_id - MC object device Id entry for driver matching - * @vendor: vendor ID - * @obj_type: MC object type - * - * Type of entries in the "device Id" table for MC object devices supported by - * a MC object device driver. The last entry of the table has vendor set to 0x0 - */ -struct fsl_mc_device_id { - u16 vendor; - const char obj_type[16]; -}; - /** * enum fsl_mc_pool_type - Types of allocatable MC bus resources * diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 6e4c645e1c0d..ed84c07f6a51 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h @@ -657,4 +657,20 @@ struct ulpi_device_id { kernel_ulong_t driver_data; }; +/** + * struct fsl_mc_device_id - MC object device identifier + * @vendor: vendor ID + * @obj_type: MC object type + * @ver_major: MC object version major number + * @ver_minor: MC object version minor number + * + * Type of entries in the "device Id" table for MC object devices supported by + * a MC object device driver. The last entry of the table has vendor set to 0x0 + */ +struct fsl_mc_device_id { + __u16 vendor; + const char obj_type[16]; +}; + + #endif /* LINUX_MOD_DEVICETABLE_H */ diff --git a/scripts/mod/devicetable-offsets.c b/scripts/mod/devicetable-offsets.c index 840b97328b39..e4d90e50f6fe 100644 --- a/scripts/mod/devicetable-offsets.c +++ b/scripts/mod/devicetable-offsets.c @@ -202,5 +202,9 @@ int main(void) DEVID_FIELD(hda_device_id, rev_id); DEVID_FIELD(hda_device_id, api_version); + DEVID(fsl_mc_device_id); + DEVID_FIELD(fsl_mc_device_id, vendor); + DEVID_FIELD(fsl_mc_device_id, obj_type); + return 0; } diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index fec75786f75b..29d6699d5a06 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c @@ -1289,6 +1289,18 @@ static int do_hda_entry(const char *filename, void *symval, char *alias) } ADD_TO_DEVTABLE("hdaudio", hda_device_id, do_hda_entry); +/* Looks like: fsl-mc:vNdN */ +static int do_fsl_mc_entry(const char *filename, void *symval, + char *alias) +{ + DEF_FIELD(symval, fsl_mc_device_id, vendor); + DEF_FIELD_ADDR(symval, fsl_mc_device_id, obj_type); + + sprintf(alias, "fsl-mc:v%08Xd%s", vendor, *obj_type); + return 1; +} +ADD_TO_DEVTABLE("fslmc", fsl_mc_device_id, do_fsl_mc_entry); + /* Does namelen bytes of name exactly match the symbol? */ static bool sym_is(const char *name, unsigned namelen, const char *symbol) { -- cgit v1.2.3-71-gd317 From b7e67f6c1bf70cd97014d20a2a3bec4b4f3317f8 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Sat, 2 Jul 2016 09:49:16 -0300 Subject: doc-rst: linux_tv: supress lots of warnings The c language parser checks if there are duplicated object definitions. That causes lots of warnings like: WARNING: duplicate C object description of ioctl Let's remove those by telling Sphinx that the language for those objects are c++. The look of the descriptions will be close, and the warnings will be gone. Please notice that we had to keep a few of them as C, as the c++ parser seems to be broken when it finds an enum. Yet, this reduced from 219 warnings to 143, with is a good thing. Signed-off-by: Mauro Carvalho Chehab --- Documentation/linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst | 2 +- Documentation/linux_tv/media/dvb/fe-diseqc-reset-overload.rst | 2 +- Documentation/linux_tv/media/dvb/fe-diseqc-send-master-cmd.rst | 2 +- Documentation/linux_tv/media/dvb/fe-enable-high-lnb-voltage.rst | 2 +- Documentation/linux_tv/media/dvb/fe-get-info.rst | 2 +- Documentation/linux_tv/media/dvb/fe-get-property.rst | 2 +- Documentation/linux_tv/media/dvb/fe-read-status.rst | 2 +- Documentation/linux_tv/media/dvb/fe-set-frontend-tune-mode.rst | 2 +- Documentation/linux_tv/media/dvb/frontend_f_close.rst | 2 +- Documentation/linux_tv/media/dvb/frontend_f_open.rst | 2 +- Documentation/linux_tv/media/dvb/net.rst | 6 +++--- Documentation/linux_tv/media/v4l/func-close.rst | 2 +- Documentation/linux_tv/media/v4l/func-ioctl.rst | 2 +- Documentation/linux_tv/media/v4l/func-mmap.rst | 2 +- Documentation/linux_tv/media/v4l/func-munmap.rst | 2 +- Documentation/linux_tv/media/v4l/func-open.rst | 2 +- Documentation/linux_tv/media/v4l/func-poll.rst | 2 +- Documentation/linux_tv/media/v4l/func-read.rst | 2 +- Documentation/linux_tv/media/v4l/func-select.rst | 2 +- Documentation/linux_tv/media/v4l/func-write.rst | 2 +- Documentation/linux_tv/media/v4l/media-func-close.rst | 2 +- Documentation/linux_tv/media/v4l/media-func-ioctl.rst | 2 +- Documentation/linux_tv/media/v4l/media-func-open.rst | 2 +- Documentation/linux_tv/media/v4l/media-ioc-device-info.rst | 2 +- Documentation/linux_tv/media/v4l/media-ioc-enum-entities.rst | 2 +- Documentation/linux_tv/media/v4l/media-ioc-enum-links.rst | 2 +- Documentation/linux_tv/media/v4l/media-ioc-g-topology.rst | 2 +- Documentation/linux_tv/media/v4l/media-ioc-setup-link.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-create-bufs.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-cropcap.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-dbg-g-chip-info.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-dbg-g-register.rst | 4 ++-- Documentation/linux_tv/media/v4l/vidioc-decoder-cmd.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-dqevent.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-dv-timings-cap.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-encoder-cmd.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-enum-dv-timings.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-enum-fmt.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-enum-frameintervals.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-enum-framesizes.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-enum-freq-bands.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-enumaudio.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-enumaudioout.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-enuminput.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-enumoutput.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-enumstd.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-expbuf.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-g-audio.rst | 4 ++-- Documentation/linux_tv/media/v4l/vidioc-g-audioout.rst | 4 ++-- Documentation/linux_tv/media/v4l/vidioc-g-crop.rst | 4 ++-- Documentation/linux_tv/media/v4l/vidioc-g-ctrl.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-g-dv-timings.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-g-edid.rst | 4 ++-- Documentation/linux_tv/media/v4l/vidioc-g-enc-index.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-g-ext-ctrls.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-g-fbuf.rst | 4 ++-- Documentation/linux_tv/media/v4l/vidioc-g-fmt.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-g-frequency.rst | 4 ++-- Documentation/linux_tv/media/v4l/vidioc-g-input.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-g-jpegcomp.rst | 4 ++-- Documentation/linux_tv/media/v4l/vidioc-g-modulator.rst | 4 ++-- Documentation/linux_tv/media/v4l/vidioc-g-output.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-g-parm.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-g-selection.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-g-sliced-vbi-cap.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-g-std.rst | 4 ++-- Documentation/linux_tv/media/v4l/vidioc-g-tuner.rst | 4 ++-- Documentation/linux_tv/media/v4l/vidioc-log-status.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-overlay.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-prepare-buf.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-qbuf.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-query-dv-timings.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-querybuf.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-querycap.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-queryctrl.rst | 6 +++--- Documentation/linux_tv/media/v4l/vidioc-querystd.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-reqbufs.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-s-hw-freq-seek.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-streamon.rst | 2 +- .../linux_tv/media/v4l/vidioc-subdev-enum-frame-interval.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-size.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-subdev-enum-mbus-code.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-subdev-g-crop.rst | 4 ++-- Documentation/linux_tv/media/v4l/vidioc-subdev-g-fmt.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-subdev-g-frame-interval.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-subdev-g-selection.rst | 2 +- Documentation/linux_tv/media/v4l/vidioc-subscribe-event.rst | 2 +- scripts/kernel-doc | 2 +- 88 files changed, 104 insertions(+), 104 deletions(-) mode change 100755 => 100644 scripts/kernel-doc (limited to 'scripts') diff --git a/Documentation/linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst b/Documentation/linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst index 309930f9b3cd..0f01584c8d4e 100644 --- a/Documentation/linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst +++ b/Documentation/linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst @@ -14,7 +14,7 @@ Receives reply from a DiSEqC 2.0 command Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct dvb_diseqc_slave_reply *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct dvb_diseqc_slave_reply *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/dvb/fe-diseqc-reset-overload.rst b/Documentation/linux_tv/media/dvb/fe-diseqc-reset-overload.rst index dc7ae1a02725..50d0d651d270 100644 --- a/Documentation/linux_tv/media/dvb/fe-diseqc-reset-overload.rst +++ b/Documentation/linux_tv/media/dvb/fe-diseqc-reset-overload.rst @@ -15,7 +15,7 @@ to power overload. Synopsis ======== -.. c:function:: int ioctl( int fd, int request, NULL ) +.. cpp:function:: int ioctl( int fd, int request, NULL ) Arguments ========= diff --git a/Documentation/linux_tv/media/dvb/fe-diseqc-send-master-cmd.rst b/Documentation/linux_tv/media/dvb/fe-diseqc-send-master-cmd.rst index 974a45f632a6..7a85632e64b4 100644 --- a/Documentation/linux_tv/media/dvb/fe-diseqc-send-master-cmd.rst +++ b/Documentation/linux_tv/media/dvb/fe-diseqc-send-master-cmd.rst @@ -14,7 +14,7 @@ Sends a DiSEqC command Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct dvb_diseqc_master_cmd *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct dvb_diseqc_master_cmd *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/dvb/fe-enable-high-lnb-voltage.rst b/Documentation/linux_tv/media/dvb/fe-enable-high-lnb-voltage.rst index 207c65a44120..f2705a383d8c 100644 --- a/Documentation/linux_tv/media/dvb/fe-enable-high-lnb-voltage.rst +++ b/Documentation/linux_tv/media/dvb/fe-enable-high-lnb-voltage.rst @@ -15,7 +15,7 @@ voltages. Synopsis ======== -.. c:function:: int ioctl( int fd, int request, unsigned int high ) +.. cpp:function:: int ioctl( int fd, int request, unsigned int high ) Arguments ========= diff --git a/Documentation/linux_tv/media/dvb/fe-get-info.rst b/Documentation/linux_tv/media/dvb/fe-get-info.rst index 5ac74c232b12..d7990c80ef87 100644 --- a/Documentation/linux_tv/media/dvb/fe-get-info.rst +++ b/Documentation/linux_tv/media/dvb/fe-get-info.rst @@ -15,7 +15,7 @@ front-end. This call only requires read-only access to the device Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct dvb_frontend_info *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct dvb_frontend_info *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/dvb/fe-get-property.rst b/Documentation/linux_tv/media/dvb/fe-get-property.rst index 8a6c5de041e8..5b73ee8e790b 100644 --- a/Documentation/linux_tv/media/dvb/fe-get-property.rst +++ b/Documentation/linux_tv/media/dvb/fe-get-property.rst @@ -16,7 +16,7 @@ FE_GET_PROPERTY returns one or more frontend properties. Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct dtv_properties *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct dtv_properties *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/dvb/fe-read-status.rst b/Documentation/linux_tv/media/dvb/fe-read-status.rst index 41396a8f1c3d..c032cda4e5a6 100644 --- a/Documentation/linux_tv/media/dvb/fe-read-status.rst +++ b/Documentation/linux_tv/media/dvb/fe-read-status.rst @@ -15,7 +15,7 @@ read-only access to the device Synopsis ======== -.. c:function:: int ioctl( int fd, int request, unsigned int *status ) +.. cpp:function:: int ioctl( int fd, int request, unsigned int *status ) Arguments ========= diff --git a/Documentation/linux_tv/media/dvb/fe-set-frontend-tune-mode.rst b/Documentation/linux_tv/media/dvb/fe-set-frontend-tune-mode.rst index 1167d22c2382..82665279b840 100644 --- a/Documentation/linux_tv/media/dvb/fe-set-frontend-tune-mode.rst +++ b/Documentation/linux_tv/media/dvb/fe-set-frontend-tune-mode.rst @@ -14,7 +14,7 @@ Allow setting tuner mode flags to the frontend. Synopsis ======== -.. c:function:: int ioctl( int fd, int request, unsigned int flags ) +.. cpp:function:: int ioctl( int fd, int request, unsigned int flags ) Arguments ========= diff --git a/Documentation/linux_tv/media/dvb/frontend_f_close.rst b/Documentation/linux_tv/media/dvb/frontend_f_close.rst index cde87322859a..faae1c7381e2 100644 --- a/Documentation/linux_tv/media/dvb/frontend_f_close.rst +++ b/Documentation/linux_tv/media/dvb/frontend_f_close.rst @@ -19,7 +19,7 @@ Synopsis #include -.. c:function:: int close( int fd ) +.. cpp:function:: int close( int fd ) Arguments ========= diff --git a/Documentation/linux_tv/media/dvb/frontend_f_open.rst b/Documentation/linux_tv/media/dvb/frontend_f_open.rst index 91ac9ef8c356..9ef430abcba4 100644 --- a/Documentation/linux_tv/media/dvb/frontend_f_open.rst +++ b/Documentation/linux_tv/media/dvb/frontend_f_open.rst @@ -19,7 +19,7 @@ Synopsis #include -.. c:function:: int open( const char *device_name, int flags ) +.. cpp:function:: int open( const char *device_name, int flags ) Arguments ========= diff --git a/Documentation/linux_tv/media/dvb/net.rst b/Documentation/linux_tv/media/dvb/net.rst index 040ffc70601d..830076fadda2 100644 --- a/Documentation/linux_tv/media/dvb/net.rst +++ b/Documentation/linux_tv/media/dvb/net.rst @@ -46,7 +46,7 @@ Creates a new network interface for a given Packet ID. Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct dvb_net_if *net_if ) +.. cpp:function:: int ioctl( int fd, int request, struct dvb_net_if *net_if ) Arguments ========= @@ -135,7 +135,7 @@ Removes a network interface. Synopsis ======== -.. c:function:: int ioctl( int fd, int request, int ifnum ) +.. cpp:function:: int ioctl( int fd, int request, int ifnum ) Arguments ========= @@ -178,7 +178,7 @@ Read the configuration data of an interface created via Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct dvb_net_if *net_if ) +.. cpp:function:: int ioctl( int fd, int request, struct dvb_net_if *net_if ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/func-close.rst b/Documentation/linux_tv/media/v4l/func-close.rst index 28fd055bf71b..991a34a163af 100644 --- a/Documentation/linux_tv/media/v4l/func-close.rst +++ b/Documentation/linux_tv/media/v4l/func-close.rst @@ -19,7 +19,7 @@ Synopsis #include -.. c:function:: int close( int fd ) +.. cpp:function:: int close( int fd ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/func-ioctl.rst b/Documentation/linux_tv/media/v4l/func-ioctl.rst index 774ac4cbb6b8..26b072cfe850 100644 --- a/Documentation/linux_tv/media/v4l/func-ioctl.rst +++ b/Documentation/linux_tv/media/v4l/func-ioctl.rst @@ -19,7 +19,7 @@ Synopsis #include -.. c:function:: int ioctl( int fd, int request, void *argp ) +.. cpp:function:: int ioctl( int fd, int request, void *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/func-mmap.rst b/Documentation/linux_tv/media/v4l/func-mmap.rst index b908c0253c07..51502a906c3c 100644 --- a/Documentation/linux_tv/media/v4l/func-mmap.rst +++ b/Documentation/linux_tv/media/v4l/func-mmap.rst @@ -20,7 +20,7 @@ Synopsis #include -.. c:function:: void *mmap( void *start, size_t length, int prot, int flags, int fd, off_t offset ) +.. cpp:function:: void *mmap( void *start, size_t length, int prot, int flags, int fd, off_t offset ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/func-munmap.rst b/Documentation/linux_tv/media/v4l/func-munmap.rst index 46c837457cae..80f9ecd92774 100644 --- a/Documentation/linux_tv/media/v4l/func-munmap.rst +++ b/Documentation/linux_tv/media/v4l/func-munmap.rst @@ -20,7 +20,7 @@ Synopsis #include -.. c:function:: int munmap( void *start, size_t length ) +.. cpp:function:: int munmap( void *start, size_t length ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/func-open.rst b/Documentation/linux_tv/media/v4l/func-open.rst index 370a6858d65d..06937b925be3 100644 --- a/Documentation/linux_tv/media/v4l/func-open.rst +++ b/Documentation/linux_tv/media/v4l/func-open.rst @@ -19,7 +19,7 @@ Synopsis #include -.. c:function:: int open( const char *device_name, int flags ) +.. cpp:function:: int open( const char *device_name, int flags ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/func-poll.rst b/Documentation/linux_tv/media/v4l/func-poll.rst index 782531fe964c..2de7f8a3a971 100644 --- a/Documentation/linux_tv/media/v4l/func-poll.rst +++ b/Documentation/linux_tv/media/v4l/func-poll.rst @@ -19,7 +19,7 @@ Synopsis #include -.. c:function:: int poll( struct pollfd *ufds, unsigned int nfds, int timeout ) +.. cpp:function:: int poll( struct pollfd *ufds, unsigned int nfds, int timeout ) Description =========== diff --git a/Documentation/linux_tv/media/v4l/func-read.rst b/Documentation/linux_tv/media/v4l/func-read.rst index 497bc9a9dd5a..94349fa19215 100644 --- a/Documentation/linux_tv/media/v4l/func-read.rst +++ b/Documentation/linux_tv/media/v4l/func-read.rst @@ -19,7 +19,7 @@ Synopsis #include -.. c:function:: ssize_t read( int fd, void *buf, size_t count ) +.. cpp:function:: ssize_t read( int fd, void *buf, size_t count ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/func-select.rst b/Documentation/linux_tv/media/v4l/func-select.rst index 77302800e6ca..56d01b33e25d 100644 --- a/Documentation/linux_tv/media/v4l/func-select.rst +++ b/Documentation/linux_tv/media/v4l/func-select.rst @@ -21,7 +21,7 @@ Synopsis #include -.. c:function:: int select( int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout ) +.. cpp:function:: int select( int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout ) Description =========== diff --git a/Documentation/linux_tv/media/v4l/func-write.rst b/Documentation/linux_tv/media/v4l/func-write.rst index d2265ba0d92d..402beed3231c 100644 --- a/Documentation/linux_tv/media/v4l/func-write.rst +++ b/Documentation/linux_tv/media/v4l/func-write.rst @@ -19,7 +19,7 @@ Synopsis #include -.. c:function:: ssize_t write( int fd, void *buf, size_t count ) +.. cpp:function:: ssize_t write( int fd, void *buf, size_t count ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/media-func-close.rst b/Documentation/linux_tv/media/v4l/media-func-close.rst index 4049db61ac73..e142ee73d15d 100644 --- a/Documentation/linux_tv/media/v4l/media-func-close.rst +++ b/Documentation/linux_tv/media/v4l/media-func-close.rst @@ -19,7 +19,7 @@ Synopsis #include -.. c:function:: int close( int fd ) +.. cpp:function:: int close( int fd ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/media-func-ioctl.rst b/Documentation/linux_tv/media/v4l/media-func-ioctl.rst index c07f4c05d0bc..7a5c01d6cb4a 100644 --- a/Documentation/linux_tv/media/v4l/media-func-ioctl.rst +++ b/Documentation/linux_tv/media/v4l/media-func-ioctl.rst @@ -19,7 +19,7 @@ Synopsis #include -.. c:function:: int ioctl( int fd, int request, void *argp ) +.. cpp:function:: int ioctl( int fd, int request, void *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/media-func-open.rst b/Documentation/linux_tv/media/v4l/media-func-open.rst index 59b01c294c9c..573292ac9a94 100644 --- a/Documentation/linux_tv/media/v4l/media-func-open.rst +++ b/Documentation/linux_tv/media/v4l/media-func-open.rst @@ -19,7 +19,7 @@ Synopsis #include -.. c:function:: int open( const char *device_name, int flags ) +.. cpp:function:: int open( const char *device_name, int flags ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/media-ioc-device-info.rst b/Documentation/linux_tv/media/v4l/media-ioc-device-info.rst index 7c1b3904fbb2..230f9fd9b4fb 100644 --- a/Documentation/linux_tv/media/v4l/media-ioc-device-info.rst +++ b/Documentation/linux_tv/media/v4l/media-ioc-device-info.rst @@ -14,7 +14,7 @@ Query device information Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct media_device_info *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct media_device_info *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/media-ioc-enum-entities.rst b/Documentation/linux_tv/media/v4l/media-ioc-enum-entities.rst index 842b05438edb..2549857e681e 100644 --- a/Documentation/linux_tv/media/v4l/media-ioc-enum-entities.rst +++ b/Documentation/linux_tv/media/v4l/media-ioc-enum-entities.rst @@ -14,7 +14,7 @@ Enumerate entities and their properties Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct media_entity_desc *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct media_entity_desc *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/media-ioc-enum-links.rst b/Documentation/linux_tv/media/v4l/media-ioc-enum-links.rst index 17aeb6d210f6..f3a4e41b3696 100644 --- a/Documentation/linux_tv/media/v4l/media-ioc-enum-links.rst +++ b/Documentation/linux_tv/media/v4l/media-ioc-enum-links.rst @@ -14,7 +14,7 @@ Enumerate all pads and links for a given entity Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct media_links_enum *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct media_links_enum *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/media-ioc-g-topology.rst b/Documentation/linux_tv/media/v4l/media-ioc-g-topology.rst index 65c817312df4..f22310319264 100644 --- a/Documentation/linux_tv/media/v4l/media-ioc-g-topology.rst +++ b/Documentation/linux_tv/media/v4l/media-ioc-g-topology.rst @@ -14,7 +14,7 @@ Enumerate the graph topology and graph element properties Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct media_v2_topology *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct media_v2_topology *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/media-ioc-setup-link.rst b/Documentation/linux_tv/media/v4l/media-ioc-setup-link.rst index 969a71c61309..aa6495fe3608 100644 --- a/Documentation/linux_tv/media/v4l/media-ioc-setup-link.rst +++ b/Documentation/linux_tv/media/v4l/media-ioc-setup-link.rst @@ -14,7 +14,7 @@ Modify the properties of a link Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct media_link_desc *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct media_link_desc *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-create-bufs.rst b/Documentation/linux_tv/media/v4l/vidioc-create-bufs.rst index 53db867aa9db..fc9542e4204c 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-create-bufs.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-create-bufs.rst @@ -14,7 +14,7 @@ Create buffers for Memory Mapped or User Pointer or DMA Buffer I/O Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_create_buffers *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_create_buffers *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-cropcap.rst b/Documentation/linux_tv/media/v4l/vidioc-cropcap.rst index 25ad9b29b160..22c4268ea54f 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-cropcap.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-cropcap.rst @@ -14,7 +14,7 @@ Information about the video cropping and scaling abilities Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_cropcap *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_cropcap *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-dbg-g-chip-info.rst b/Documentation/linux_tv/media/v4l/vidioc-dbg-g-chip-info.rst index a1534a326bb3..4baf472b658b 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-dbg-g-chip-info.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-dbg-g-chip-info.rst @@ -14,7 +14,7 @@ Identify the chips on a TV card Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_dbg_chip_info *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_dbg_chip_info *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-dbg-g-register.rst b/Documentation/linux_tv/media/v4l/vidioc-dbg-g-register.rst index b50c1be72f15..2c5afc9a4012 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-dbg-g-register.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-dbg-g-register.rst @@ -15,9 +15,9 @@ Read or write hardware registers Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_dbg_register *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_dbg_register *argp ) -.. c:function:: int ioctl( int fd, int request, const struct v4l2_dbg_register *argp ) +.. cpp:function:: int ioctl( int fd, int request, const struct v4l2_dbg_register *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-decoder-cmd.rst b/Documentation/linux_tv/media/v4l/vidioc-decoder-cmd.rst index a56c5fc1ed6f..d3b3c8a2ad08 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-decoder-cmd.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-decoder-cmd.rst @@ -15,7 +15,7 @@ Execute an decoder command Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_decoder_cmd *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_decoder_cmd *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-dqevent.rst b/Documentation/linux_tv/media/v4l/vidioc-dqevent.rst index 9e41fc818b90..509f0df19746 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-dqevent.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-dqevent.rst @@ -14,7 +14,7 @@ Dequeue event Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_event *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_event *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-dv-timings-cap.rst b/Documentation/linux_tv/media/v4l/vidioc-dv-timings-cap.rst index b5b8e41dc693..50133087af5b 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-dv-timings-cap.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-dv-timings-cap.rst @@ -15,7 +15,7 @@ The capabilities of the Digital Video receiver/transmitter Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_dv_timings_cap *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_dv_timings_cap *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-encoder-cmd.rst b/Documentation/linux_tv/media/v4l/vidioc-encoder-cmd.rst index 43c7a3928e7b..7d029498d700 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-encoder-cmd.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-encoder-cmd.rst @@ -15,7 +15,7 @@ Execute an encoder command Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_encoder_cmd *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_encoder_cmd *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-enum-dv-timings.rst b/Documentation/linux_tv/media/v4l/vidioc-enum-dv-timings.rst index 07462519cbf4..4639d9a9f0a6 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enum-dv-timings.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enum-dv-timings.rst @@ -15,7 +15,7 @@ Enumerate supported Digital Video timings Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_enum_dv_timings *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_enum_dv_timings *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-enum-fmt.rst b/Documentation/linux_tv/media/v4l/vidioc-enum-fmt.rst index c838f3dbb808..a20ed3ae3417 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enum-fmt.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enum-fmt.rst @@ -14,7 +14,7 @@ Enumerate image formats Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_fmtdesc *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_fmtdesc *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-enum-frameintervals.rst b/Documentation/linux_tv/media/v4l/vidioc-enum-frameintervals.rst index a9182898b6dc..24acbd928b9c 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enum-frameintervals.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enum-frameintervals.rst @@ -14,7 +14,7 @@ Enumerate frame intervals Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_frmivalenum *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_frmivalenum *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-enum-framesizes.rst b/Documentation/linux_tv/media/v4l/vidioc-enum-framesizes.rst index 5e171dbc975c..1d2969220857 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enum-framesizes.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enum-framesizes.rst @@ -14,7 +14,7 @@ Enumerate frame sizes Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_frmsizeenum *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_frmsizeenum *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-enum-freq-bands.rst b/Documentation/linux_tv/media/v4l/vidioc-enum-freq-bands.rst index 3999c419589a..bc0826bec1cb 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enum-freq-bands.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enum-freq-bands.rst @@ -14,7 +14,7 @@ Enumerate supported frequency bands Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_frequency_band *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_frequency_band *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-enumaudio.rst b/Documentation/linux_tv/media/v4l/vidioc-enumaudio.rst index 8ae7b8bd9333..32ef1fcb013d 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enumaudio.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enumaudio.rst @@ -14,7 +14,7 @@ Enumerate audio inputs Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_audio *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_audio *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-enumaudioout.rst b/Documentation/linux_tv/media/v4l/vidioc-enumaudioout.rst index 0e45f41fa608..8412f1c0e4cf 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enumaudioout.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enumaudioout.rst @@ -14,7 +14,7 @@ Enumerate audio outputs Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_audioout *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_audioout *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-enuminput.rst b/Documentation/linux_tv/media/v4l/vidioc-enuminput.rst index 131f331462b1..3b0577a307e9 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enuminput.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enuminput.rst @@ -14,7 +14,7 @@ Enumerate video inputs Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_input *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_input *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-enumoutput.rst b/Documentation/linux_tv/media/v4l/vidioc-enumoutput.rst index cb0107b9c03b..1ad68a88e594 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enumoutput.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enumoutput.rst @@ -14,7 +14,7 @@ Enumerate video outputs Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_output *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_output *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-enumstd.rst b/Documentation/linux_tv/media/v4l/vidioc-enumstd.rst index 03353b92449a..6421b37b5ace 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enumstd.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enumstd.rst @@ -14,7 +14,7 @@ Enumerate supported video standards Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_standard *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_standard *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-expbuf.rst b/Documentation/linux_tv/media/v4l/vidioc-expbuf.rst index 2933640e8c4e..04216a0d658e 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-expbuf.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-expbuf.rst @@ -14,7 +14,7 @@ Export a buffer as a DMABUF file descriptor. Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_exportbuffer *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_exportbuffer *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-audio.rst b/Documentation/linux_tv/media/v4l/vidioc-g-audio.rst index 4b79523bfbab..66d74f3964f3 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-audio.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-audio.rst @@ -15,9 +15,9 @@ Query or select the current audio input and its attributes Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_audio *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_audio *argp ) -.. c:function:: int ioctl( int fd, int request, const struct v4l2_audio *argp ) +.. cpp:function:: int ioctl( int fd, int request, const struct v4l2_audio *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-audioout.rst b/Documentation/linux_tv/media/v4l/vidioc-g-audioout.rst index 1da1e7ad51a6..990f86a20bd2 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-audioout.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-audioout.rst @@ -15,9 +15,9 @@ Query or select the current audio output Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_audioout *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_audioout *argp ) -.. c:function:: int ioctl( int fd, int request, const struct v4l2_audioout *argp ) +.. cpp:function:: int ioctl( int fd, int request, const struct v4l2_audioout *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-crop.rst b/Documentation/linux_tv/media/v4l/vidioc-g-crop.rst index b0503710c2dd..e2ffef351edf 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-crop.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-crop.rst @@ -15,9 +15,9 @@ Get or set the current cropping rectangle Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_crop *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_crop *argp ) -.. c:function:: int ioctl( int fd, int request, const struct v4l2_crop *argp ) +.. cpp:function:: int ioctl( int fd, int request, const struct v4l2_crop *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-ctrl.rst b/Documentation/linux_tv/media/v4l/vidioc-g-ctrl.rst index 55bb8ae9be10..333eb4fa5099 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-ctrl.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-ctrl.rst @@ -15,7 +15,7 @@ Get or set the value of a control Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_control *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_control *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-dv-timings.rst b/Documentation/linux_tv/media/v4l/vidioc-g-dv-timings.rst index 43734bb649c5..c9de292ca1d2 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-dv-timings.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-dv-timings.rst @@ -17,7 +17,7 @@ Get or set DV timings for input or output Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_dv_timings *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_dv_timings *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-edid.rst b/Documentation/linux_tv/media/v4l/vidioc-g-edid.rst index d6ccae92e107..54f364bdde8e 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-edid.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-edid.rst @@ -17,9 +17,9 @@ Get or set the EDID of a video receiver/transmitter Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_edid *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_edid *argp ) -.. c:function:: int ioctl( int fd, int request, struct v4l2_edid *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_edid *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-enc-index.rst b/Documentation/linux_tv/media/v4l/vidioc-g-enc-index.rst index c22907cddfac..35df295e1809 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-enc-index.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-enc-index.rst @@ -14,7 +14,7 @@ Get meta data about a compressed video stream Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_enc_idx *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_enc_idx *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-ext-ctrls.rst b/Documentation/linux_tv/media/v4l/vidioc-g-ext-ctrls.rst index 040deef04f7d..91a0b8227423 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-ext-ctrls.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-ext-ctrls.rst @@ -16,7 +16,7 @@ Get or set the value of several controls, try control values Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_ext_controls *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_ext_controls *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-fbuf.rst b/Documentation/linux_tv/media/v4l/vidioc-g-fbuf.rst index dbc68cfc608a..abf997fea991 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-fbuf.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-fbuf.rst @@ -15,9 +15,9 @@ Get or set frame buffer overlay parameters Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_framebuffer *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_framebuffer *argp ) -.. c:function:: int ioctl( int fd, int request, const struct v4l2_framebuffer *argp ) +.. cpp:function:: int ioctl( int fd, int request, const struct v4l2_framebuffer *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-fmt.rst b/Documentation/linux_tv/media/v4l/vidioc-g-fmt.rst index 3ac4fb764a7e..173e4aca7ee1 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-fmt.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-fmt.rst @@ -16,7 +16,7 @@ Get or set the data format, try a format Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_format *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_format *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-frequency.rst b/Documentation/linux_tv/media/v4l/vidioc-g-frequency.rst index b187f1345bb4..40ef31938f79 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-frequency.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-frequency.rst @@ -15,9 +15,9 @@ Get or set tuner or modulator radio frequency Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_frequency *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_frequency *argp ) -.. c:function:: int ioctl( int fd, int request, const struct v4l2_frequency *argp ) +.. cpp:function:: int ioctl( int fd, int request, const struct v4l2_frequency *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-input.rst b/Documentation/linux_tv/media/v4l/vidioc-g-input.rst index bb5944449650..6b1fc39c602f 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-input.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-input.rst @@ -15,7 +15,7 @@ Query or select the current video input Synopsis ======== -.. c:function:: int ioctl( int fd, int request, int *argp ) +.. cpp:function:: int ioctl( int fd, int request, int *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-jpegcomp.rst b/Documentation/linux_tv/media/v4l/vidioc-g-jpegcomp.rst index acd05bf0d7b6..b2da34012df6 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-jpegcomp.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-jpegcomp.rst @@ -13,9 +13,9 @@ VIDIOC_S_JPEGCOMP Synopsis ======== -.. c:function:: int ioctl( int fd, int request, v4l2_jpegcompression *argp ) +.. cpp:function:: int ioctl( int fd, int request, v4l2_jpegcompression *argp ) -.. c:function:: int ioctl( int fd, int request, const v4l2_jpegcompression *argp ) +.. cpp:function:: int ioctl( int fd, int request, const v4l2_jpegcompression *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-modulator.rst b/Documentation/linux_tv/media/v4l/vidioc-g-modulator.rst index 913b7d96faba..b41ec0fe6acc 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-modulator.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-modulator.rst @@ -15,9 +15,9 @@ Get or set modulator attributes Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_modulator *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_modulator *argp ) -.. c:function:: int ioctl( int fd, int request, const struct v4l2_modulator *argp ) +.. cpp:function:: int ioctl( int fd, int request, const struct v4l2_modulator *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-output.rst b/Documentation/linux_tv/media/v4l/vidioc-g-output.rst index e48bf39cfa10..95d7a9b19166 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-output.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-output.rst @@ -15,7 +15,7 @@ Query or select the current video output Synopsis ======== -.. c:function:: int ioctl( int fd, int request, int *argp ) +.. cpp:function:: int ioctl( int fd, int request, int *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-parm.rst b/Documentation/linux_tv/media/v4l/vidioc-g-parm.rst index 0567fce18144..2fbec8a6adfc 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-parm.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-parm.rst @@ -15,7 +15,7 @@ Get or set streaming parameters Synopsis ======== -.. c:function:: int ioctl( int fd, int request, v4l2_streamparm *argp ) +.. cpp:function:: int ioctl( int fd, int request, v4l2_streamparm *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-selection.rst b/Documentation/linux_tv/media/v4l/vidioc-g-selection.rst index fd07c87a369c..271610e06b2b 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-selection.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-selection.rst @@ -15,7 +15,7 @@ Get or set one of the selection rectangles Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_selection *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_selection *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-sliced-vbi-cap.rst b/Documentation/linux_tv/media/v4l/vidioc-g-sliced-vbi-cap.rst index a051f93252d0..00a9b61002de 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-sliced-vbi-cap.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-sliced-vbi-cap.rst @@ -14,7 +14,7 @@ Query sliced VBI capabilities Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_sliced_vbi_cap *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_sliced_vbi_cap *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-std.rst b/Documentation/linux_tv/media/v4l/vidioc-g-std.rst index a7257f0b38a2..5644cc670381 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-std.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-std.rst @@ -15,9 +15,9 @@ Query or select the video standard of the current input Synopsis ======== -.. c:function:: int ioctl( int fd, int request, v4l2_std_id *argp ) +.. cpp:function:: int ioctl( int fd, int request, v4l2_std_id *argp ) -.. c:function:: int ioctl( int fd, int request, const v4l2_std_id *argp ) +.. cpp:function:: int ioctl( int fd, int request, const v4l2_std_id *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-tuner.rst b/Documentation/linux_tv/media/v4l/vidioc-g-tuner.rst index 1e01010fd2e2..8e119fa28ccd 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-tuner.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-tuner.rst @@ -15,9 +15,9 @@ Get or set tuner attributes Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_tuner *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_tuner *argp ) -.. c:function:: int ioctl( int fd, int request, const struct v4l2_tuner *argp ) +.. cpp:function:: int ioctl( int fd, int request, const struct v4l2_tuner *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-log-status.rst b/Documentation/linux_tv/media/v4l/vidioc-log-status.rst index 6df7c2fd5b6c..af89f8f2dca6 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-log-status.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-log-status.rst @@ -14,7 +14,7 @@ Log driver status information Synopsis ======== -.. c:function:: int ioctl( int fd, int request ) +.. cpp:function:: int ioctl( int fd, int request ) Description =========== diff --git a/Documentation/linux_tv/media/v4l/vidioc-overlay.rst b/Documentation/linux_tv/media/v4l/vidioc-overlay.rst index 10faf2517392..990907643869 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-overlay.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-overlay.rst @@ -14,7 +14,7 @@ Start or stop video overlay Synopsis ======== -.. c:function:: int ioctl( int fd, int request, const int *argp ) +.. cpp:function:: int ioctl( int fd, int request, const int *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-prepare-buf.rst b/Documentation/linux_tv/media/v4l/vidioc-prepare-buf.rst index 0b51c587701b..79a6a1009703 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-prepare-buf.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-prepare-buf.rst @@ -14,7 +14,7 @@ Prepare a buffer for I/O Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_buffer *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_buffer *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-qbuf.rst b/Documentation/linux_tv/media/v4l/vidioc-qbuf.rst index 57a0bc470f36..380970ba9a12 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-qbuf.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-qbuf.rst @@ -15,7 +15,7 @@ Exchange a buffer with the driver Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_buffer *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_buffer *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-query-dv-timings.rst b/Documentation/linux_tv/media/v4l/vidioc-query-dv-timings.rst index 0120432de989..9f067f587e42 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-query-dv-timings.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-query-dv-timings.rst @@ -15,7 +15,7 @@ Sense the DV preset received by the current input Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_dv_timings *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_dv_timings *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-querybuf.rst b/Documentation/linux_tv/media/v4l/vidioc-querybuf.rst index 280fb795c0b9..efc8143edc34 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-querybuf.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-querybuf.rst @@ -14,7 +14,7 @@ Query the status of a buffer Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_buffer *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_buffer *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-querycap.rst b/Documentation/linux_tv/media/v4l/vidioc-querycap.rst index 74589501b95d..91551fe448fc 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-querycap.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-querycap.rst @@ -14,7 +14,7 @@ Query device capabilities Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_capability *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_capability *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-queryctrl.rst b/Documentation/linux_tv/media/v4l/vidioc-queryctrl.rst index 2e93caeafe9e..a08c68262871 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-queryctrl.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-queryctrl.rst @@ -16,11 +16,11 @@ Enumerate controls and menu control items Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_queryctrl *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_queryctrl *argp ) -.. c:function:: int ioctl( int fd, int request, struct v4l2_query_ext_ctrl *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_query_ext_ctrl *argp ) -.. c:function:: int ioctl( int fd, int request, struct v4l2_querymenu *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_querymenu *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-querystd.rst b/Documentation/linux_tv/media/v4l/vidioc-querystd.rst index 29ce879a708b..de2fe176fc6d 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-querystd.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-querystd.rst @@ -14,7 +14,7 @@ Sense the video standard received by the current input Synopsis ======== -.. c:function:: int ioctl( int fd, int request, v4l2_std_id *argp ) +.. cpp:function:: int ioctl( int fd, int request, v4l2_std_id *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-reqbufs.rst b/Documentation/linux_tv/media/v4l/vidioc-reqbufs.rst index 451cf7b11c3d..23b2fee646a1 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-reqbufs.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-reqbufs.rst @@ -14,7 +14,7 @@ Initiate Memory Mapping or User Pointer I/O Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_requestbuffers *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_requestbuffers *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-s-hw-freq-seek.rst b/Documentation/linux_tv/media/v4l/vidioc-s-hw-freq-seek.rst index cd59ba9ab1b0..226440e4bb76 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-s-hw-freq-seek.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-s-hw-freq-seek.rst @@ -14,7 +14,7 @@ Perform a hardware frequency seek Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_hw_freq_seek *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_hw_freq_seek *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-streamon.rst b/Documentation/linux_tv/media/v4l/vidioc-streamon.rst index 7663339d30be..960c5965c7a6 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-streamon.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-streamon.rst @@ -15,7 +15,7 @@ Start or stop streaming I/O Synopsis ======== -.. c:function:: int ioctl( int fd, int request, const int *argp ) +.. cpp:function:: int ioctl( int fd, int request, const int *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-interval.rst b/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-interval.rst index 07ad0a98ead2..bcf161cd5012 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-interval.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-interval.rst @@ -14,7 +14,7 @@ Enumerate frame intervals Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_subdev_frame_interval_enum * argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_subdev_frame_interval_enum * argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-size.rst b/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-size.rst index 39393ef11590..5ddb766f4a16 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-size.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-size.rst @@ -14,7 +14,7 @@ Enumerate media bus frame sizes Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_subdev_frame_size_enum * argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_subdev_frame_size_enum * argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-mbus-code.rst b/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-mbus-code.rst index f50a1f1c68d5..dbaf866e82fe 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-mbus-code.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-mbus-code.rst @@ -14,7 +14,7 @@ Enumerate media bus formats Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_subdev_mbus_code_enum * argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_subdev_mbus_code_enum * argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-crop.rst b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-crop.rst index 6fb1ea143f9e..46776cdfa7b5 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-crop.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-crop.rst @@ -15,9 +15,9 @@ Get or set the crop rectangle on a subdev pad Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_subdev_crop *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_subdev_crop *argp ) -.. c:function:: int ioctl( int fd, int request, const struct v4l2_subdev_crop *argp ) +.. cpp:function:: int ioctl( int fd, int request, const struct v4l2_subdev_crop *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-fmt.rst b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-fmt.rst index 789277a2647a..b4d109943fd2 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-fmt.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-fmt.rst @@ -15,7 +15,7 @@ Get or set the data format on a subdev pad Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_subdev_format *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_subdev_format *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-frame-interval.rst b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-frame-interval.rst index bcc54e2e396f..9504e8b5de8a 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-frame-interval.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-frame-interval.rst @@ -15,7 +15,7 @@ Get or set the frame interval on a subdev pad Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_subdev_frame_interval *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_subdev_frame_interval *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-selection.rst b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-selection.rst index 7b60c9b99aad..d95b5431004c 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-selection.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-selection.rst @@ -15,7 +15,7 @@ Get or set selection rectangles on a subdev pad Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_subdev_selection *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_subdev_selection *argp ) Arguments ========= diff --git a/Documentation/linux_tv/media/v4l/vidioc-subscribe-event.rst b/Documentation/linux_tv/media/v4l/vidioc-subscribe-event.rst index 182353f544eb..a127622d47b8 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subscribe-event.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subscribe-event.rst @@ -15,7 +15,7 @@ Subscribe or unsubscribe event Synopsis ======== -.. c:function:: int ioctl( int fd, int request, struct v4l2_event_subscription *argp ) +.. cpp:function:: int ioctl( int fd, int request, struct v4l2_event_subscription *argp ) Arguments ========= diff --git a/scripts/kernel-doc b/scripts/kernel-doc old mode 100755 new mode 100644 index 932b3f34ff06..41eade332307 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc @@ -1833,7 +1833,7 @@ sub output_function_rst(%) { my $oldprefix = $lineprefix; my $start; - print ".. c:function:: "; + print ".. cpp:function:: "; if ($args{'functiontype'} ne "") { $start = $args{'functiontype'} . " " . $args{'function'} . " ("; } else { -- cgit v1.2.3-71-gd317 From 64e49546191a3e4c81bfb1c4229b7c4ab48c5b19 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Sun, 3 Jul 2016 17:27:03 -0300 Subject: doc-rst: linux_tv: remove trailing comments The conversion script added some comments at the end. They point to the original DocBook files, with will be removed after the manual fixes. So, they'll be pointing to nowere. So, remove those comments. They'll be forever stored at the Kernel tree. So, if someone wants the references, it is just a matter of looking at the backlog. Signed-off-by: Mauro Carvalho Chehab --- Documentation/linux_tv/audio.h.rst | 11 ----------- Documentation/linux_tv/ca.h.rst | 11 ----------- Documentation/linux_tv/dmx.h.rst | 11 ----------- Documentation/linux_tv/frontend.h.rst | 11 ----------- Documentation/linux_tv/index.rst | 12 ------------ .../linux_tv/media/dvb/FE_DISHNETWORK_SEND_LEGACY_CMD.rst | 9 --------- Documentation/linux_tv/media/dvb/FE_GET_EVENT.rst | 11 ----------- Documentation/linux_tv/media/dvb/FE_GET_FRONTEND.rst | 11 ----------- Documentation/linux_tv/media/dvb/FE_READ_BER.rst | 9 --------- Documentation/linux_tv/media/dvb/FE_READ_SIGNAL_STRENGTH.rst | 9 --------- Documentation/linux_tv/media/dvb/FE_READ_SNR.rst | 9 --------- .../linux_tv/media/dvb/FE_READ_UNCORRECTED_BLOCKS.rst | 9 --------- Documentation/linux_tv/media/dvb/FE_SET_FRONTEND.rst | 11 ----------- Documentation/linux_tv/media/dvb/audio.rst | 11 ----------- Documentation/linux_tv/media/dvb/audio_data_types.rst | 11 ----------- Documentation/linux_tv/media/dvb/audio_function_calls.rst | 11 ----------- Documentation/linux_tv/media/dvb/audio_h.rst | 11 ----------- Documentation/linux_tv/media/dvb/ca.rst | 11 ----------- Documentation/linux_tv/media/dvb/ca_data_types.rst | 11 ----------- Documentation/linux_tv/media/dvb/ca_function_calls.rst | 9 --------- Documentation/linux_tv/media/dvb/ca_h.rst | 11 ----------- Documentation/linux_tv/media/dvb/demux.rst | 11 ----------- Documentation/linux_tv/media/dvb/dmx_fcalls.rst | 9 --------- Documentation/linux_tv/media/dvb/dmx_h.rst | 11 ----------- Documentation/linux_tv/media/dvb/dmx_types.rst | 11 ----------- Documentation/linux_tv/media/dvb/dtv-fe-stats.rst | 11 ----------- Documentation/linux_tv/media/dvb/dtv-properties.rst | 11 ----------- Documentation/linux_tv/media/dvb/dtv-property.rst | 11 ----------- Documentation/linux_tv/media/dvb/dtv-stats.rst | 11 ----------- Documentation/linux_tv/media/dvb/dvb-fe-read-status.rst | 9 --------- Documentation/linux_tv/media/dvb/dvb-frontend-event.rst | 11 ----------- Documentation/linux_tv/media/dvb/dvb-frontend-parameters.rst | 11 ----------- Documentation/linux_tv/media/dvb/dvbapi.rst | 9 --------- Documentation/linux_tv/media/dvb/dvbproperty-006.rst | 9 --------- Documentation/linux_tv/media/dvb/dvbproperty.rst | 11 ----------- Documentation/linux_tv/media/dvb/examples.rst | 11 ----------- Documentation/linux_tv/media/dvb/fe-bandwidth-t.rst | 11 ----------- .../linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst | 11 ----------- .../linux_tv/media/dvb/fe-diseqc-reset-overload.rst | 9 --------- Documentation/linux_tv/media/dvb/fe-diseqc-send-burst.rst | 11 ----------- .../linux_tv/media/dvb/fe-diseqc-send-master-cmd.rst | 11 ----------- .../linux_tv/media/dvb/fe-enable-high-lnb-voltage.rst | 9 --------- Documentation/linux_tv/media/dvb/fe-get-info.rst | 11 ----------- Documentation/linux_tv/media/dvb/fe-get-property.rst | 9 --------- Documentation/linux_tv/media/dvb/fe-read-status.rst | 11 ----------- .../linux_tv/media/dvb/fe-set-frontend-tune-mode.rst | 9 --------- Documentation/linux_tv/media/dvb/fe-set-tone.rst | 11 ----------- Documentation/linux_tv/media/dvb/fe-set-voltage.rst | 9 --------- Documentation/linux_tv/media/dvb/fe-type-t.rst | 9 --------- Documentation/linux_tv/media/dvb/fe_property_parameters.rst | 9 --------- .../linux_tv/media/dvb/frontend-property-cable-systems.rst | 9 --------- .../media/dvb/frontend-property-satellite-systems.rst | 9 --------- .../media/dvb/frontend-property-terrestrial-systems.rst | 9 --------- .../linux_tv/media/dvb/frontend-stat-properties.rst | 9 --------- Documentation/linux_tv/media/dvb/frontend.rst | 11 ----------- Documentation/linux_tv/media/dvb/frontend_f_close.rst | 9 --------- Documentation/linux_tv/media/dvb/frontend_f_open.rst | 9 --------- Documentation/linux_tv/media/dvb/frontend_fcalls.rst | 11 ----------- Documentation/linux_tv/media/dvb/frontend_h.rst | 11 ----------- Documentation/linux_tv/media/dvb/frontend_legacy_api.rst | 11 ----------- .../linux_tv/media/dvb/frontend_legacy_dvbv3_api.rst | 11 ----------- Documentation/linux_tv/media/dvb/intro.rst | 9 --------- Documentation/linux_tv/media/dvb/legacy_dvb_apis.rst | 11 ----------- Documentation/linux_tv/media/dvb/net.rst | 9 --------- Documentation/linux_tv/media/dvb/net_h.rst | 11 ----------- Documentation/linux_tv/media/dvb/query-dvb-frontend-info.rst | 9 --------- Documentation/linux_tv/media/dvb/video.rst | 11 ----------- Documentation/linux_tv/media/dvb/video_function_calls.rst | 11 ----------- Documentation/linux_tv/media/dvb/video_h.rst | 11 ----------- Documentation/linux_tv/media/dvb/video_types.rst | 11 ----------- .../linux_tv/media/v4l/Remote_controllers_Intro.rst | 9 --------- .../linux_tv/media/v4l/Remote_controllers_table_change.rst | 11 ----------- .../linux_tv/media/v4l/Remote_controllers_tables.rst | 11 ----------- Documentation/linux_tv/media/v4l/app-pri.rst | 9 --------- Documentation/linux_tv/media/v4l/async.rst | 9 --------- Documentation/linux_tv/media/v4l/audio.rst | 9 --------- Documentation/linux_tv/media/v4l/biblio.rst | 9 --------- Documentation/linux_tv/media/v4l/buffer.rst | 11 ----------- Documentation/linux_tv/media/v4l/capture-example.rst | 11 ----------- Documentation/linux_tv/media/v4l/capture.c.rst | 11 ----------- Documentation/linux_tv/media/v4l/colorspaces.rst | 9 --------- Documentation/linux_tv/media/v4l/common-defs.rst | 11 ----------- Documentation/linux_tv/media/v4l/common.rst | 11 ----------- Documentation/linux_tv/media/v4l/compat.rst | 11 ----------- Documentation/linux_tv/media/v4l/control.rst | 9 --------- Documentation/linux_tv/media/v4l/crop.rst | 9 --------- Documentation/linux_tv/media/v4l/depth-formats.rst | 11 ----------- Documentation/linux_tv/media/v4l/dev-capture.rst | 9 --------- Documentation/linux_tv/media/v4l/dev-codec.rst | 9 --------- Documentation/linux_tv/media/v4l/dev-effect.rst | 9 --------- Documentation/linux_tv/media/v4l/dev-event.rst | 9 --------- Documentation/linux_tv/media/v4l/dev-osd.rst | 9 --------- Documentation/linux_tv/media/v4l/dev-output.rst | 9 --------- Documentation/linux_tv/media/v4l/dev-overlay.rst | 9 --------- Documentation/linux_tv/media/v4l/dev-radio.rst | 9 --------- Documentation/linux_tv/media/v4l/dev-raw-vbi.rst | 9 --------- Documentation/linux_tv/media/v4l/dev-rds.rst | 11 ----------- Documentation/linux_tv/media/v4l/dev-sdr.rst | 9 --------- Documentation/linux_tv/media/v4l/dev-sliced-vbi.rst | 9 --------- Documentation/linux_tv/media/v4l/dev-subdev.rst | 11 ----------- Documentation/linux_tv/media/v4l/dev-teletext.rst | 9 --------- Documentation/linux_tv/media/v4l/devices.rst | 11 ----------- Documentation/linux_tv/media/v4l/diff-v4l.rst | 9 --------- Documentation/linux_tv/media/v4l/dmabuf.rst | 9 --------- Documentation/linux_tv/media/v4l/driver.rst | 9 --------- Documentation/linux_tv/media/v4l/dv-timings.rst | 9 --------- Documentation/linux_tv/media/v4l/extended-controls.rst | 9 --------- Documentation/linux_tv/media/v4l/fdl-appendix.rst | 9 --------- Documentation/linux_tv/media/v4l/field-order.rst | 11 ----------- Documentation/linux_tv/media/v4l/format.rst | 9 --------- Documentation/linux_tv/media/v4l/func-close.rst | 9 --------- Documentation/linux_tv/media/v4l/func-ioctl.rst | 9 --------- Documentation/linux_tv/media/v4l/func-mmap.rst | 9 --------- Documentation/linux_tv/media/v4l/func-munmap.rst | 9 --------- Documentation/linux_tv/media/v4l/func-open.rst | 9 --------- Documentation/linux_tv/media/v4l/func-poll.rst | 9 --------- Documentation/linux_tv/media/v4l/func-read.rst | 9 --------- Documentation/linux_tv/media/v4l/func-select.rst | 9 --------- Documentation/linux_tv/media/v4l/func-write.rst | 9 --------- Documentation/linux_tv/media/v4l/gen-errors.rst | 9 --------- Documentation/linux_tv/media/v4l/hist-v4l2.rst | 9 --------- Documentation/linux_tv/media/v4l/io.rst | 11 ----------- Documentation/linux_tv/media/v4l/keytable.c.rst | 11 ----------- Documentation/linux_tv/media/v4l/libv4l-introduction.rst | 9 --------- Documentation/linux_tv/media/v4l/libv4l.rst | 11 ----------- Documentation/linux_tv/media/v4l/lirc_dev_intro.rst | 9 --------- Documentation/linux_tv/media/v4l/lirc_device_interface.rst | 11 ----------- Documentation/linux_tv/media/v4l/lirc_ioctl.rst | 9 --------- Documentation/linux_tv/media/v4l/lirc_read.rst | 9 --------- Documentation/linux_tv/media/v4l/lirc_write.rst | 9 --------- Documentation/linux_tv/media/v4l/media-controller-intro.rst | 9 --------- Documentation/linux_tv/media/v4l/media-controller-model.rst | 9 --------- Documentation/linux_tv/media/v4l/media-controller.rst | 9 --------- Documentation/linux_tv/media/v4l/media-func-close.rst | 9 --------- Documentation/linux_tv/media/v4l/media-func-ioctl.rst | 9 --------- Documentation/linux_tv/media/v4l/media-func-open.rst | 9 --------- Documentation/linux_tv/media/v4l/media-ioc-device-info.rst | 9 --------- Documentation/linux_tv/media/v4l/media-ioc-enum-entities.rst | 9 --------- Documentation/linux_tv/media/v4l/media-ioc-enum-links.rst | 9 --------- Documentation/linux_tv/media/v4l/media-ioc-g-topology.rst | 9 --------- Documentation/linux_tv/media/v4l/media-ioc-setup-link.rst | 9 --------- Documentation/linux_tv/media/v4l/media-types.rst | 11 ----------- Documentation/linux_tv/media/v4l/mmap.rst | 9 --------- Documentation/linux_tv/media/v4l/open.rst | 9 --------- Documentation/linux_tv/media/v4l/pixfmt-002.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-003.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-004.rst | 9 --------- Documentation/linux_tv/media/v4l/pixfmt-006.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-007.rst | 9 --------- Documentation/linux_tv/media/v4l/pixfmt-008.rst | 9 --------- Documentation/linux_tv/media/v4l/pixfmt-013.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-grey.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-indexed.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-m420.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-nv12.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-nv12m.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-nv12mt.rst | 9 --------- Documentation/linux_tv/media/v4l/pixfmt-nv16.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-nv16m.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-nv24.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-packed-rgb.rst | 9 --------- Documentation/linux_tv/media/v4l/pixfmt-packed-yuv.rst | 9 --------- Documentation/linux_tv/media/v4l/pixfmt-reserved.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-rgb.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-sbggr16.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-sbggr8.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-sdr-cs08.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-sdr-cs14le.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-sdr-cu08.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-sdr-cu16le.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-sdr-ru12le.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-sgbrg8.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-sgrbg8.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-srggb10.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-srggb10alaw8.rst | 9 --------- Documentation/linux_tv/media/v4l/pixfmt-srggb10dpcm8.rst | 9 --------- Documentation/linux_tv/media/v4l/pixfmt-srggb10p.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-srggb12.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-srggb8.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-uv8.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-uyvy.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-vyuy.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-y10.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-y10b.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-y12.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-y12i.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-y16-be.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-y16.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-y41p.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-y8i.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-yuv410.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-yuv411p.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-yuv420.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-yuv420m.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-yuv422m.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-yuv422p.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-yuv444m.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-yuyv.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-yvyu.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt-z16.rst | 11 ----------- Documentation/linux_tv/media/v4l/pixfmt.rst | 11 ----------- Documentation/linux_tv/media/v4l/planar-apis.rst | 9 --------- Documentation/linux_tv/media/v4l/querycap.rst | 9 --------- Documentation/linux_tv/media/v4l/remote_controllers.rst | 9 --------- .../linux_tv/media/v4l/remote_controllers_sysfs_nodes.rst | 9 --------- Documentation/linux_tv/media/v4l/rw.rst | 9 --------- Documentation/linux_tv/media/v4l/sdr-formats.rst | 11 ----------- Documentation/linux_tv/media/v4l/selection-api-002.rst | 9 --------- Documentation/linux_tv/media/v4l/selection-api-003.rst | 9 --------- Documentation/linux_tv/media/v4l/selection-api-004.rst | 9 --------- Documentation/linux_tv/media/v4l/selection-api-005.rst | 9 --------- Documentation/linux_tv/media/v4l/selection-api-006.rst | 11 ----------- Documentation/linux_tv/media/v4l/selection-api.rst | 11 ----------- Documentation/linux_tv/media/v4l/selections-common.rst | 11 ----------- Documentation/linux_tv/media/v4l/standard.rst | 9 --------- Documentation/linux_tv/media/v4l/streaming-par.rst | 9 --------- Documentation/linux_tv/media/v4l/subdev-formats.rst | 11 ----------- Documentation/linux_tv/media/v4l/tuner.rst | 9 --------- Documentation/linux_tv/media/v4l/user-func.rst | 11 ----------- Documentation/linux_tv/media/v4l/userp.rst | 9 --------- Documentation/linux_tv/media/v4l/v4l2-selection-flags.rst | 11 ----------- Documentation/linux_tv/media/v4l/v4l2-selection-targets.rst | 11 ----------- Documentation/linux_tv/media/v4l/v4l2.rst | 9 --------- Documentation/linux_tv/media/v4l/v4l2grab-example.rst | 11 ----------- Documentation/linux_tv/media/v4l/v4l2grab.c.rst | 11 ----------- Documentation/linux_tv/media/v4l/video.rst | 11 ----------- Documentation/linux_tv/media/v4l/videodev.rst | 11 ----------- Documentation/linux_tv/media/v4l/vidioc-create-bufs.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-cropcap.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-dbg-g-chip-info.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-dbg-g-register.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-decoder-cmd.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-dqevent.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-dv-timings-cap.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-encoder-cmd.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-enum-dv-timings.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-enum-fmt.rst | 9 --------- .../linux_tv/media/v4l/vidioc-enum-frameintervals.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-enum-framesizes.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-enum-freq-bands.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-enumaudio.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-enumaudioout.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-enuminput.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-enumoutput.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-enumstd.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-expbuf.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-audio.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-audioout.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-crop.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-ctrl.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-dv-timings.rst | 11 ----------- Documentation/linux_tv/media/v4l/vidioc-g-edid.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-enc-index.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-ext-ctrls.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-fbuf.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-fmt.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-frequency.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-input.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-jpegcomp.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-modulator.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-output.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-parm.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-priority.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-selection.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-sliced-vbi-cap.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-std.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-g-tuner.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-log-status.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-overlay.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-prepare-buf.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-qbuf.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-query-dv-timings.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-querybuf.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-querycap.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-queryctrl.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-querystd.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-reqbufs.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-s-hw-freq-seek.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-streamon.rst | 9 --------- .../linux_tv/media/v4l/vidioc-subdev-enum-frame-interval.rst | 9 --------- .../linux_tv/media/v4l/vidioc-subdev-enum-frame-size.rst | 9 --------- .../linux_tv/media/v4l/vidioc-subdev-enum-mbus-code.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-subdev-g-crop.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-subdev-g-fmt.rst | 9 --------- .../linux_tv/media/v4l/vidioc-subdev-g-frame-interval.rst | 9 --------- .../linux_tv/media/v4l/vidioc-subdev-g-selection.rst | 9 --------- Documentation/linux_tv/media/v4l/vidioc-subscribe-event.rst | 9 --------- Documentation/linux_tv/media/v4l/yuv-formats.rst | 11 ----------- Documentation/linux_tv/net.h.rst | 11 ----------- Documentation/linux_tv/video.h.rst | 11 ----------- Documentation/linux_tv/videodev2.h.rst | 11 ----------- scripts/kernel-doc | 0 292 files changed, 2876 deletions(-) mode change 100644 => 100755 scripts/kernel-doc (limited to 'scripts') diff --git a/Documentation/linux_tv/audio.h.rst b/Documentation/linux_tv/audio.h.rst index abf29027f8ea..1e76a866c01a 100644 --- a/Documentation/linux_tv/audio.h.rst +++ b/Documentation/linux_tv/audio.h.rst @@ -140,14 +140,3 @@ file: audio.h #define AUDIO_BILINGUAL_CHANNEL_SELECT _IO('o', 20) #endif /* _DVBAUDIO_H_ */ - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/ca.h.rst b/Documentation/linux_tv/ca.h.rst index b69ce287aa8c..0664c4bdd985 100644 --- a/Documentation/linux_tv/ca.h.rst +++ b/Documentation/linux_tv/ca.h.rst @@ -95,14 +95,3 @@ file: ca.h #define CA_SET_PID _IOW('o', 135, ca_pid_t) #endif - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/dmx.h.rst b/Documentation/linux_tv/dmx.h.rst index 9ced07899e57..4791554f82f9 100644 --- a/Documentation/linux_tv/dmx.h.rst +++ b/Documentation/linux_tv/dmx.h.rst @@ -160,14 +160,3 @@ file: dmx.h #define DMX_REMOVE_PID _IOW('o', 52, __u16) #endif /* _UAPI_DVBDMX_H_ */ - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/frontend.h.rst b/Documentation/linux_tv/frontend.h.rst index 1b65b2037778..5c8f11a77c1e 100644 --- a/Documentation/linux_tv/frontend.h.rst +++ b/Documentation/linux_tv/frontend.h.rst @@ -607,14 +607,3 @@ file: frontend.h #define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */ #endif /*_DVBFRONTEND_H_*/ - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/index.rst b/Documentation/linux_tv/index.rst index edb7d56e9b8f..821be82dcb23 100644 --- a/Documentation/linux_tv/index.rst +++ b/Documentation/linux_tv/index.rst @@ -75,18 +75,6 @@ etc, please mail to: media/v4l/gen-errors media/v4l/fdl-appendix - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ - - .. only:: html Retrieval diff --git a/Documentation/linux_tv/media/dvb/FE_DISHNETWORK_SEND_LEGACY_CMD.rst b/Documentation/linux_tv/media/dvb/FE_DISHNETWORK_SEND_LEGACY_CMD.rst index a01cafad8d3c..890b5edb0350 100644 --- a/Documentation/linux_tv/media/dvb/FE_DISHNETWORK_SEND_LEGACY_CMD.rst +++ b/Documentation/linux_tv/media/dvb/FE_DISHNETWORK_SEND_LEGACY_CMD.rst @@ -44,12 +44,3 @@ RETURN VALUE On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/FE_GET_EVENT.rst b/Documentation/linux_tv/media/dvb/FE_GET_EVENT.rst index 1951857cde65..08a090212f96 100644 --- a/Documentation/linux_tv/media/dvb/FE_GET_EVENT.rst +++ b/Documentation/linux_tv/media/dvb/FE_GET_EVENT.rst @@ -76,14 +76,3 @@ appropriately. The generic error codes are described at the - ``EOVERFLOW`` - Overflow in event queue - one or more events were lost. - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/FE_GET_FRONTEND.rst b/Documentation/linux_tv/media/dvb/FE_GET_FRONTEND.rst index 5bf39ff72bd7..ee73fb448ef8 100644 --- a/Documentation/linux_tv/media/dvb/FE_GET_FRONTEND.rst +++ b/Documentation/linux_tv/media/dvb/FE_GET_FRONTEND.rst @@ -64,14 +64,3 @@ appropriately. The generic error codes are described at the - ``EINVAL`` - Maximum supported symbol rate reached. - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/FE_READ_BER.rst b/Documentation/linux_tv/media/dvb/FE_READ_BER.rst index 935c0e50b0fd..218e2298615b 100644 --- a/Documentation/linux_tv/media/dvb/FE_READ_BER.rst +++ b/Documentation/linux_tv/media/dvb/FE_READ_BER.rst @@ -50,12 +50,3 @@ RETURN VALUE On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/FE_READ_SIGNAL_STRENGTH.rst b/Documentation/linux_tv/media/dvb/FE_READ_SIGNAL_STRENGTH.rst index 01180e20e4d4..d2dd0fba5363 100644 --- a/Documentation/linux_tv/media/dvb/FE_READ_SIGNAL_STRENGTH.rst +++ b/Documentation/linux_tv/media/dvb/FE_READ_SIGNAL_STRENGTH.rst @@ -53,12 +53,3 @@ RETURN VALUE On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/FE_READ_SNR.rst b/Documentation/linux_tv/media/dvb/FE_READ_SNR.rst index 0ccc7d71d8a4..2f9759a310f0 100644 --- a/Documentation/linux_tv/media/dvb/FE_READ_SNR.rst +++ b/Documentation/linux_tv/media/dvb/FE_READ_SNR.rst @@ -50,12 +50,3 @@ RETURN VALUE On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/FE_READ_UNCORRECTED_BLOCKS.rst b/Documentation/linux_tv/media/dvb/FE_READ_UNCORRECTED_BLOCKS.rst index 3827c7b953e1..fa770d25b3de 100644 --- a/Documentation/linux_tv/media/dvb/FE_READ_UNCORRECTED_BLOCKS.rst +++ b/Documentation/linux_tv/media/dvb/FE_READ_UNCORRECTED_BLOCKS.rst @@ -55,12 +55,3 @@ RETURN VALUE On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/FE_SET_FRONTEND.rst b/Documentation/linux_tv/media/dvb/FE_SET_FRONTEND.rst index 4cb393bbc2e1..794089897845 100644 --- a/Documentation/linux_tv/media/dvb/FE_SET_FRONTEND.rst +++ b/Documentation/linux_tv/media/dvb/FE_SET_FRONTEND.rst @@ -71,14 +71,3 @@ appropriately. The generic error codes are described at the - ``EINVAL`` - Maximum supported symbol rate reached. - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/audio.rst b/Documentation/linux_tv/media/dvb/audio.rst index d6b6f9edf3b3..155622185ea4 100644 --- a/Documentation/linux_tv/media/dvb/audio.rst +++ b/Documentation/linux_tv/media/dvb/audio.rst @@ -24,14 +24,3 @@ functionality. audio_data_types audio_function_calls - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/audio_data_types.rst b/Documentation/linux_tv/media/dvb/audio_data_types.rst index b3f5aa0ac6e4..cf9216c91f2d 100644 --- a/Documentation/linux_tv/media/dvb/audio_data_types.rst +++ b/Documentation/linux_tv/media/dvb/audio_data_types.rst @@ -174,14 +174,3 @@ The following attributes can be set by a call to AUDIO_SET_ATTRIBUTES: /* 7- 6 Quantization / DRC (mpeg audio: 1=DRC exists)(lpcm: 0=16bit, */ /* 5- 4 Sample frequency fs (0=48kHz, 1=96kHz) */ /* 2- 0 number of audio channels (n+1 channels) */ - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/audio_function_calls.rst b/Documentation/linux_tv/media/dvb/audio_function_calls.rst index d8abdd0e9417..b3408b7c4e91 100644 --- a/Documentation/linux_tv/media/dvb/audio_function_calls.rst +++ b/Documentation/linux_tv/media/dvb/audio_function_calls.rst @@ -1295,14 +1295,3 @@ appropriately. The generic error codes are described at the - ``EINVAL`` - karaoke is not a valid or supported karaoke setting. - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/audio_h.rst b/Documentation/linux_tv/media/dvb/audio_h.rst index 09a73a54ab00..bdd9a709a125 100644 --- a/Documentation/linux_tv/media/dvb/audio_h.rst +++ b/Documentation/linux_tv/media/dvb/audio_h.rst @@ -11,14 +11,3 @@ DVB Audio Header File :maxdepth: 1 ../../audio.h - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/ca.rst b/Documentation/linux_tv/media/dvb/ca.rst index bb01d93f0256..14b14abda1ae 100644 --- a/Documentation/linux_tv/media/dvb/ca.rst +++ b/Documentation/linux_tv/media/dvb/ca.rst @@ -16,14 +16,3 @@ application. ca_data_types ca_function_calls - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/ca_data_types.rst b/Documentation/linux_tv/media/dvb/ca_data_types.rst index bb0cdfa7c9a6..ca17e146dac0 100644 --- a/Documentation/linux_tv/media/dvb/ca_data_types.rst +++ b/Documentation/linux_tv/media/dvb/ca_data_types.rst @@ -108,14 +108,3 @@ ca-pid unsigned int pid; int index; /* -1 == disable*/ } ca_pid_t; - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/ca_function_calls.rst b/Documentation/linux_tv/media/dvb/ca_function_calls.rst index 83bce0420881..af110ba6496a 100644 --- a/Documentation/linux_tv/media/dvb/ca_function_calls.rst +++ b/Documentation/linux_tv/media/dvb/ca_function_calls.rst @@ -530,12 +530,3 @@ RETURN VALUE On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/ca_h.rst b/Documentation/linux_tv/media/dvb/ca_h.rst index 229bfbca045b..a7d22154022b 100644 --- a/Documentation/linux_tv/media/dvb/ca_h.rst +++ b/Documentation/linux_tv/media/dvb/ca_h.rst @@ -11,14 +11,3 @@ DVB Conditional Access Header File :maxdepth: 1 ../../ca.h - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/demux.rst b/Documentation/linux_tv/media/dvb/demux.rst index 3bcee72c68fb..b12b5a2dac94 100644 --- a/Documentation/linux_tv/media/dvb/demux.rst +++ b/Documentation/linux_tv/media/dvb/demux.rst @@ -16,14 +16,3 @@ your application. dmx_types dmx_fcalls - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/dmx_fcalls.rst b/Documentation/linux_tv/media/dvb/dmx_fcalls.rst index 4563c8f2a1b8..4612364fb2d8 100644 --- a/Documentation/linux_tv/media/dvb/dmx_fcalls.rst +++ b/Documentation/linux_tv/media/dvb/dmx_fcalls.rst @@ -1002,12 +1002,3 @@ RETURN VALUE On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/dmx_h.rst b/Documentation/linux_tv/media/dvb/dmx_h.rst index 19e2691b7eab..baf129dd078b 100644 --- a/Documentation/linux_tv/media/dvb/dmx_h.rst +++ b/Documentation/linux_tv/media/dvb/dmx_h.rst @@ -11,14 +11,3 @@ DVB Demux Header File :maxdepth: 1 ../../dmx.h - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/dmx_types.rst b/Documentation/linux_tv/media/dvb/dmx_types.rst index 83859366b73e..05891946b2a7 100644 --- a/Documentation/linux_tv/media/dvb/dmx_types.rst +++ b/Documentation/linux_tv/media/dvb/dmx_types.rst @@ -240,14 +240,3 @@ enum dmx_source_t DMX_SOURCE_DVR2, DMX_SOURCE_DVR3 } dmx_source_t; - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/dtv-fe-stats.rst b/Documentation/linux_tv/media/dvb/dtv-fe-stats.rst index 17b26fa050f5..d169e318cfde 100644 --- a/Documentation/linux_tv/media/dvb/dtv-fe-stats.rst +++ b/Documentation/linux_tv/media/dvb/dtv-fe-stats.rst @@ -15,14 +15,3 @@ struct dtv_fe_stats __u8 len; struct dtv_stats stat[MAX_DTV_STATS]; } __packed; - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/dtv-properties.rst b/Documentation/linux_tv/media/dvb/dtv-properties.rst index b1b28342d09d..002553b7068b 100644 --- a/Documentation/linux_tv/media/dvb/dtv-properties.rst +++ b/Documentation/linux_tv/media/dvb/dtv-properties.rst @@ -13,14 +13,3 @@ struct dtv_properties __u32 num; struct dtv_property *props; }; - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/dtv-property.rst b/Documentation/linux_tv/media/dvb/dtv-property.rst index 4dff00eb610c..9fc8cef5a09b 100644 --- a/Documentation/linux_tv/media/dvb/dtv-property.rst +++ b/Documentation/linux_tv/media/dvb/dtv-property.rst @@ -29,14 +29,3 @@ struct dtv_property /* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */ #define DTV_IOCTL_MAX_MSGS 64 - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/dtv-stats.rst b/Documentation/linux_tv/media/dvb/dtv-stats.rst index e70e5a5283ff..0f73205400ae 100644 --- a/Documentation/linux_tv/media/dvb/dtv-stats.rst +++ b/Documentation/linux_tv/media/dvb/dtv-stats.rst @@ -16,14 +16,3 @@ struct dtv_stats __s64 svalue; /* for 1/1000 dB measures */ }; } __packed; - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/dvb-fe-read-status.rst b/Documentation/linux_tv/media/dvb/dvb-fe-read-status.rst index e36cd134007e..1c708c5e6bc0 100644 --- a/Documentation/linux_tv/media/dvb/dvb-fe-read-status.rst +++ b/Documentation/linux_tv/media/dvb/dvb-fe-read-status.rst @@ -20,12 +20,3 @@ statistics require the demodulator to be fully locked (e. g. with FE_HAS_LOCK bit set). See :ref:`Frontend statistics indicators ` for more details. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/dvb-frontend-event.rst b/Documentation/linux_tv/media/dvb/dvb-frontend-event.rst index 82965e4d7450..8ff83578b4da 100644 --- a/Documentation/linux_tv/media/dvb/dvb-frontend-event.rst +++ b/Documentation/linux_tv/media/dvb/dvb-frontend-event.rst @@ -13,14 +13,3 @@ frontend events fe_status_t status; struct dvb_frontend_parameters parameters; }; - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/dvb-frontend-parameters.rst b/Documentation/linux_tv/media/dvb/dvb-frontend-parameters.rst index 0a1766f68917..bb125b8c4b3b 100644 --- a/Documentation/linux_tv/media/dvb/dvb-frontend-parameters.rst +++ b/Documentation/linux_tv/media/dvb/dvb-frontend-parameters.rst @@ -117,14 +117,3 @@ DVB-T frontends are supported by the ``dvb_ofdm_parameters`` structure: fe_guard_interval_t guard_interval; fe_hierarchy_t hierarchy_information; }; - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/dvbapi.rst b/Documentation/linux_tv/media/dvb/dvbapi.rst index daeeb4d64917..ad800404ae9f 100644 --- a/Documentation/linux_tv/media/dvb/dvbapi.rst +++ b/Documentation/linux_tv/media/dvb/dvbapi.rst @@ -86,12 +86,3 @@ original LaTex version. :revision: 1.0.0 / 2003-07-24 (*rjkm*) Initial revision on LaTEX. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/dvbproperty-006.rst b/Documentation/linux_tv/media/dvb/dvbproperty-006.rst index 4b89d607358c..3343a0f306fe 100644 --- a/Documentation/linux_tv/media/dvb/dvbproperty-006.rst +++ b/Documentation/linux_tv/media/dvb/dvbproperty-006.rst @@ -10,12 +10,3 @@ With one single ioctl, is possible to get/set up to 64 properties. The actual meaning of each property is described on the next sections. The available frontend property types are shown on the next section. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/dvbproperty.rst b/Documentation/linux_tv/media/dvb/dvbproperty.rst index a68b17808bc2..34187964db38 100644 --- a/Documentation/linux_tv/media/dvb/dvbproperty.rst +++ b/Documentation/linux_tv/media/dvb/dvbproperty.rst @@ -109,14 +109,3 @@ read/write channel descriptor files. frontend-property-terrestrial-systems frontend-property-cable-systems frontend-property-satellite-systems - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/examples.rst b/Documentation/linux_tv/media/dvb/examples.rst index b3a94dedcd39..0cad02acd1bd 100644 --- a/Documentation/linux_tv/media/dvb/examples.rst +++ b/Documentation/linux_tv/media/dvb/examples.rst @@ -378,14 +378,3 @@ recording. } return 0; } - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/fe-bandwidth-t.rst b/Documentation/linux_tv/media/dvb/fe-bandwidth-t.rst index c6e56aba012a..f59d60c57bfd 100644 --- a/Documentation/linux_tv/media/dvb/fe-bandwidth-t.rst +++ b/Documentation/linux_tv/media/dvb/fe-bandwidth-t.rst @@ -75,14 +75,3 @@ Frontend bandwidth ``BANDWIDTH_10_MHZ`` - 10 MHz - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst b/Documentation/linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst index 0f01584c8d4e..da860e50fde9 100644 --- a/Documentation/linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst +++ b/Documentation/linux_tv/media/dvb/fe-diseqc-recv-slave-reply.rst @@ -75,14 +75,3 @@ appropriately. The generic error codes are described at the - Return from ioctl after timeout ms with errorcode when no message was received - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/fe-diseqc-reset-overload.rst b/Documentation/linux_tv/media/dvb/fe-diseqc-reset-overload.rst index 50d0d651d270..2c64eab598b8 100644 --- a/Documentation/linux_tv/media/dvb/fe-diseqc-reset-overload.rst +++ b/Documentation/linux_tv/media/dvb/fe-diseqc-reset-overload.rst @@ -40,12 +40,3 @@ RETURN VALUE On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/fe-diseqc-send-burst.rst b/Documentation/linux_tv/media/dvb/fe-diseqc-send-burst.rst index 34c787903eb1..f365238e5b78 100644 --- a/Documentation/linux_tv/media/dvb/fe-diseqc-send-burst.rst +++ b/Documentation/linux_tv/media/dvb/fe-diseqc-send-burst.rst @@ -80,14 +80,3 @@ enum fe_sec_mini_cmd ``SEC_MINI_B`` - Sends a mini-DiSEqC 22kHz '1' Data Burst to select satellite-B - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/fe-diseqc-send-master-cmd.rst b/Documentation/linux_tv/media/dvb/fe-diseqc-send-master-cmd.rst index 7a85632e64b4..04c6cc8ae070 100644 --- a/Documentation/linux_tv/media/dvb/fe-diseqc-send-master-cmd.rst +++ b/Documentation/linux_tv/media/dvb/fe-diseqc-send-master-cmd.rst @@ -65,14 +65,3 @@ appropriately. The generic error codes are described at the - msg_len - Length of the DiSEqC message. Valid values are 3 to 6 - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/fe-enable-high-lnb-voltage.rst b/Documentation/linux_tv/media/dvb/fe-enable-high-lnb-voltage.rst index f2705a383d8c..669dbd6e79b8 100644 --- a/Documentation/linux_tv/media/dvb/fe-enable-high-lnb-voltage.rst +++ b/Documentation/linux_tv/media/dvb/fe-enable-high-lnb-voltage.rst @@ -47,12 +47,3 @@ RETURN VALUE On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/fe-get-info.rst b/Documentation/linux_tv/media/dvb/fe-get-info.rst index d7990c80ef87..0880a11def86 100644 --- a/Documentation/linux_tv/media/dvb/fe-get-info.rst +++ b/Documentation/linux_tv/media/dvb/fe-get-info.rst @@ -421,14 +421,3 @@ supported only on some specific frontend types. ``FE_CAN_MUTE_TS`` - The frontend can stop spurious TS data output - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/fe-get-property.rst b/Documentation/linux_tv/media/dvb/fe-get-property.rst index 5b73ee8e790b..0edc9291fc70 100644 --- a/Documentation/linux_tv/media/dvb/fe-get-property.rst +++ b/Documentation/linux_tv/media/dvb/fe-get-property.rst @@ -64,12 +64,3 @@ RETURN VALUE On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/fe-read-status.rst b/Documentation/linux_tv/media/dvb/fe-read-status.rst index c032cda4e5a6..250fabc71c64 100644 --- a/Documentation/linux_tv/media/dvb/fe-read-status.rst +++ b/Documentation/linux_tv/media/dvb/fe-read-status.rst @@ -130,14 +130,3 @@ state changes of the frontend hardware. It is produced using the enum - The frontend was reinitialized, application is recommended to reset DiSEqC, tone and parameters - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/fe-set-frontend-tune-mode.rst b/Documentation/linux_tv/media/dvb/fe-set-frontend-tune-mode.rst index 82665279b840..aeecb947fa70 100644 --- a/Documentation/linux_tv/media/dvb/fe-set-frontend-tune-mode.rst +++ b/Documentation/linux_tv/media/dvb/fe-set-frontend-tune-mode.rst @@ -49,12 +49,3 @@ RETURN VALUE On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/fe-set-tone.rst b/Documentation/linux_tv/media/dvb/fe-set-tone.rst index f98c4b3b8760..432797211f80 100644 --- a/Documentation/linux_tv/media/dvb/fe-set-tone.rst +++ b/Documentation/linux_tv/media/dvb/fe-set-tone.rst @@ -87,14 +87,3 @@ enum fe_sec_tone_mode - Don't send a 22kHz tone to the antenna (except if the FE_DISEQC_* ioctls are called) - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/fe-set-voltage.rst b/Documentation/linux_tv/media/dvb/fe-set-voltage.rst index eb4ab28b479a..63c5f401e808 100644 --- a/Documentation/linux_tv/media/dvb/fe-set-voltage.rst +++ b/Documentation/linux_tv/media/dvb/fe-set-voltage.rst @@ -57,12 +57,3 @@ RETURN VALUE On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/fe-type-t.rst b/Documentation/linux_tv/media/dvb/fe-type-t.rst index 49fa8090010b..fcce8ef421ae 100644 --- a/Documentation/linux_tv/media/dvb/fe-type-t.rst +++ b/Documentation/linux_tv/media/dvb/fe-type-t.rst @@ -89,12 +89,3 @@ On devices that support multiple delivery systems, struct filled with the currently standard, as selected by the last call to :ref:`FE_SET_PROPERTY ` using the :ref:`DTV_DELIVERY_SYSTEM ` property. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/fe_property_parameters.rst b/Documentation/linux_tv/media/dvb/fe_property_parameters.rst index 788dbfef0061..e30ed6d71335 100644 --- a/Documentation/linux_tv/media/dvb/fe_property_parameters.rst +++ b/Documentation/linux_tv/media/dvb/fe_property_parameters.rst @@ -1965,12 +1965,3 @@ Possible values: 0, 1, LNA_AUTO 1, LNA on use the special macro LNA_AUTO to set LNA auto - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/frontend-property-cable-systems.rst b/Documentation/linux_tv/media/dvb/frontend-property-cable-systems.rst index 360966ef50cf..bf2328627af5 100644 --- a/Documentation/linux_tv/media/dvb/frontend-property-cable-systems.rst +++ b/Documentation/linux_tv/media/dvb/frontend-property-cable-systems.rst @@ -73,12 +73,3 @@ The following parameters are valid for DVB-C Annex B: In addition, the :ref:`DTV QoS statistics ` are also valid. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/frontend-property-satellite-systems.rst b/Documentation/linux_tv/media/dvb/frontend-property-satellite-systems.rst index 1a204ac01afd..1f40399c68ff 100644 --- a/Documentation/linux_tv/media/dvb/frontend-property-satellite-systems.rst +++ b/Documentation/linux_tv/media/dvb/frontend-property-satellite-systems.rst @@ -101,12 +101,3 @@ The following parameters are valid for ISDB-S: - :ref:`DTV_VOLTAGE ` - :ref:`DTV_STREAM_ID ` - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/frontend-property-terrestrial-systems.rst b/Documentation/linux_tv/media/dvb/frontend-property-terrestrial-systems.rst index 78026596f46f..dbc717cad9ee 100644 --- a/Documentation/linux_tv/media/dvb/frontend-property-terrestrial-systems.rst +++ b/Documentation/linux_tv/media/dvb/frontend-property-terrestrial-systems.rst @@ -292,12 +292,3 @@ The following parameters are valid for DTMB: In addition, the :ref:`DTV QoS statistics ` are also valid. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/frontend-stat-properties.rst b/Documentation/linux_tv/media/dvb/frontend-stat-properties.rst index 7f3999db3e5d..0fc4aaa304ff 100644 --- a/Documentation/linux_tv/media/dvb/frontend-stat-properties.rst +++ b/Documentation/linux_tv/media/dvb/frontend-stat-properties.rst @@ -243,12 +243,3 @@ Possible scales for this metric are: - ``FE_SCALE_COUNTER`` - Number of blocks counted while measuring :ref:`DTV_STAT_ERROR_BLOCK_COUNT `. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/frontend.rst b/Documentation/linux_tv/media/dvb/frontend.rst index 46be409e76b6..8c7e502bff1f 100644 --- a/Documentation/linux_tv/media/dvb/frontend.rst +++ b/Documentation/linux_tv/media/dvb/frontend.rst @@ -49,14 +49,3 @@ Horn (LNBf). It supports the DiSEqC and V-SEC protocols. The DiSEqC dvbproperty frontend_fcalls frontend_legacy_dvbv3_api - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/frontend_f_close.rst b/Documentation/linux_tv/media/dvb/frontend_f_close.rst index faae1c7381e2..8ca7f723ffc3 100644 --- a/Documentation/linux_tv/media/dvb/frontend_f_close.rst +++ b/Documentation/linux_tv/media/dvb/frontend_f_close.rst @@ -44,12 +44,3 @@ set appropriately. Possible error codes: EBADF ``fd`` is not a valid open file descriptor. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/frontend_f_open.rst b/Documentation/linux_tv/media/dvb/frontend_f_open.rst index bdc9a8139444..ba9fbb17f70d 100644 --- a/Documentation/linux_tv/media/dvb/frontend_f_open.rst +++ b/Documentation/linux_tv/media/dvb/frontend_f_open.rst @@ -97,12 +97,3 @@ ENFILE ENODEV The device got removed. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/frontend_fcalls.rst b/Documentation/linux_tv/media/dvb/frontend_fcalls.rst index 8eae0e9461ab..b03f9cab6d5a 100644 --- a/Documentation/linux_tv/media/dvb/frontend_fcalls.rst +++ b/Documentation/linux_tv/media/dvb/frontend_fcalls.rst @@ -22,14 +22,3 @@ Frontend Function Calls fe-set-voltage fe-enable-high-lnb-voltage fe-set-frontend-tune-mode - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/frontend_h.rst b/Documentation/linux_tv/media/dvb/frontend_h.rst index 3f616c6bd01d..7101d6ddd916 100644 --- a/Documentation/linux_tv/media/dvb/frontend_h.rst +++ b/Documentation/linux_tv/media/dvb/frontend_h.rst @@ -11,14 +11,3 @@ DVB Frontend Header File :maxdepth: 1 ../../frontend.h - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/frontend_legacy_api.rst b/Documentation/linux_tv/media/dvb/frontend_legacy_api.rst index dcc62d4a8516..fb17766d887e 100644 --- a/Documentation/linux_tv/media/dvb/frontend_legacy_api.rst +++ b/Documentation/linux_tv/media/dvb/frontend_legacy_api.rst @@ -36,14 +36,3 @@ recommended FE_GET_FRONTEND FE_GET_EVENT FE_DISHNETWORK_SEND_LEGACY_CMD - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/frontend_legacy_dvbv3_api.rst b/Documentation/linux_tv/media/dvb/frontend_legacy_dvbv3_api.rst index 1dbff41f6a34..7d4a091b7d7f 100644 --- a/Documentation/linux_tv/media/dvb/frontend_legacy_dvbv3_api.rst +++ b/Documentation/linux_tv/media/dvb/frontend_legacy_dvbv3_api.rst @@ -16,14 +16,3 @@ applications. :maxdepth: 1 frontend_legacy_api - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/intro.rst b/Documentation/linux_tv/media/dvb/intro.rst index 0508f0d2c9db..338300b11aa4 100644 --- a/Documentation/linux_tv/media/dvb/intro.rst +++ b/Documentation/linux_tv/media/dvb/intro.rst @@ -193,12 +193,3 @@ partial path like: To enable applications to support different API version, an additional include file ``linux/dvb/version.h`` exists, which defines the constant ``DVB_API_VERSION``. This document describes ``DVB_API_VERSION 5.10``. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/legacy_dvb_apis.rst b/Documentation/linux_tv/media/dvb/legacy_dvb_apis.rst index 15e0d88c2866..2957f5a988b0 100644 --- a/Documentation/linux_tv/media/dvb/legacy_dvb_apis.rst +++ b/Documentation/linux_tv/media/dvb/legacy_dvb_apis.rst @@ -18,14 +18,3 @@ Controller API video audio - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/net.rst b/Documentation/linux_tv/media/dvb/net.rst index 830076fadda2..fd2eb6171f42 100644 --- a/Documentation/linux_tv/media/dvb/net.rst +++ b/Documentation/linux_tv/media/dvb/net.rst @@ -208,12 +208,3 @@ RETURN VALUE On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/net_h.rst b/Documentation/linux_tv/media/dvb/net_h.rst index 357713b4a5ef..09560db4e1c0 100644 --- a/Documentation/linux_tv/media/dvb/net_h.rst +++ b/Documentation/linux_tv/media/dvb/net_h.rst @@ -11,14 +11,3 @@ DVB Network Header File :maxdepth: 1 ../../net.h - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/query-dvb-frontend-info.rst b/Documentation/linux_tv/media/dvb/query-dvb-frontend-info.rst index a3da1b8376bc..81cd9b92a36c 100644 --- a/Documentation/linux_tv/media/dvb/query-dvb-frontend-info.rst +++ b/Documentation/linux_tv/media/dvb/query-dvb-frontend-info.rst @@ -11,12 +11,3 @@ the frontend capabilities. This is done using :ref:`FE_GET_INFO`. This ioctl will enumerate the DVB API version and other characteristics about the frontend, and can be opened either in read only or read/write mode. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/video.rst b/Documentation/linux_tv/media/dvb/video.rst index 9783e9f344f6..60d43fb7ce22 100644 --- a/Documentation/linux_tv/media/dvb/video.rst +++ b/Documentation/linux_tv/media/dvb/video.rst @@ -33,14 +33,3 @@ functionality. video_types video_function_calls - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/video_function_calls.rst b/Documentation/linux_tv/media/dvb/video_function_calls.rst index 39eaecd8755a..b8ea77d1f239 100644 --- a/Documentation/linux_tv/media/dvb/video_function_calls.rst +++ b/Documentation/linux_tv/media/dvb/video_function_calls.rst @@ -1867,14 +1867,3 @@ appropriately. The generic error codes are described at the - ``EINVAL`` - input is not a valid attribute setting. - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/video_h.rst b/Documentation/linux_tv/media/dvb/video_h.rst index 348d20c3cab7..45c12d295523 100644 --- a/Documentation/linux_tv/media/dvb/video_h.rst +++ b/Documentation/linux_tv/media/dvb/video_h.rst @@ -11,14 +11,3 @@ DVB Video Header File :maxdepth: 1 ../../video.h - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/dvb/video_types.rst b/Documentation/linux_tv/media/dvb/video_types.rst index f57233825e42..1a73751ec080 100644 --- a/Documentation/linux_tv/media/dvb/video_types.rst +++ b/Documentation/linux_tv/media/dvb/video_types.rst @@ -377,14 +377,3 @@ The following attributes can be set by a call to VIDEO_SET_ATTRIBUTES: /* 5- 3 source resolution (0=720x480/576, 1=704x480/576, 2=352x480/57 */ /* 2 source letterboxed (1=yes, 0=no) */ /* 0 film/camera mode (0=camera, 1=film (625/50 only)) */ - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/Remote_controllers_Intro.rst b/Documentation/linux_tv/media/v4l/Remote_controllers_Intro.rst index 5e461ac39947..3707c29d37ed 100644 --- a/Documentation/linux_tv/media/v4l/Remote_controllers_Intro.rst +++ b/Documentation/linux_tv/media/v4l/Remote_controllers_Intro.rst @@ -22,12 +22,3 @@ conjunction with a wide variety of different IR remotes. In order to allow flexibility, the Remote Controller subsystem allows controlling the RC-specific attributes via :ref:`the sysfs class nodes `. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/Remote_controllers_table_change.rst b/Documentation/linux_tv/media/v4l/Remote_controllers_table_change.rst index a04cc2cbbbb3..d604896bca87 100644 --- a/Documentation/linux_tv/media/v4l/Remote_controllers_table_change.rst +++ b/Documentation/linux_tv/media/v4l/Remote_controllers_table_change.rst @@ -16,14 +16,3 @@ This program demonstrates how to replace the keymap tables. :maxdepth: 1 keytable.c - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/Remote_controllers_tables.rst b/Documentation/linux_tv/media/v4l/Remote_controllers_tables.rst index 2243d5b2dcd1..b02ff7706f80 100644 --- a/Documentation/linux_tv/media/v4l/Remote_controllers_tables.rst +++ b/Documentation/linux_tv/media/v4l/Remote_controllers_tables.rst @@ -755,14 +755,3 @@ at some cheaper IR's. Due to that, it is recommended to: - On simpler IR's, without separate volume keys, you need to map RIGHT as ``KEY_VOLUMEUP`` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/app-pri.rst b/Documentation/linux_tv/media/v4l/app-pri.rst index 8c4624dd50e2..a8c41a7ec396 100644 --- a/Documentation/linux_tv/media/v4l/app-pri.rst +++ b/Documentation/linux_tv/media/v4l/app-pri.rst @@ -28,12 +28,3 @@ different priority will usually call :ref:`VIDIOC_S_PRIORITY Ioctls changing driver properties, such as :ref:`VIDIOC_S_INPUT `, return an ``EBUSY`` error code after another application obtained higher priority. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/async.rst b/Documentation/linux_tv/media/v4l/async.rst index 82a56e88a54d..5affc0adb95b 100644 --- a/Documentation/linux_tv/media/v4l/async.rst +++ b/Documentation/linux_tv/media/v4l/async.rst @@ -7,12 +7,3 @@ Asynchronous I/O **************** This method is not defined yet. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/audio.rst b/Documentation/linux_tv/media/v4l/audio.rst index bc2db0d8f389..d7574fa4f2cc 100644 --- a/Documentation/linux_tv/media/v4l/audio.rst +++ b/Documentation/linux_tv/media/v4l/audio.rst @@ -88,12 +88,3 @@ the :ref:`VIDIOC_QUERYCAP` ioctl. ``tuner`` field like struct :ref:`v4l2_input `, not only making the API more consistent but also permitting radio devices with multiple tuners. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/biblio.rst b/Documentation/linux_tv/media/v4l/biblio.rst index 44dc7deb24b2..e911df972d40 100644 --- a/Documentation/linux_tv/media/v4l/biblio.rst +++ b/Documentation/linux_tv/media/v4l/biblio.rst @@ -379,12 +379,3 @@ colimg :title: Color Imaging: Fundamentals and Applications :author: Erik Reinhard et al. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/buffer.rst b/Documentation/linux_tv/media/v4l/buffer.rst index 1c6c96c37155..98bb2a8dcdeb 100644 --- a/Documentation/linux_tv/media/v4l/buffer.rst +++ b/Documentation/linux_tv/media/v4l/buffer.rst @@ -953,14 +953,3 @@ The :ref:`struct v4l2_timecode ` structure is designed to hold a - 0x0008 - 8-bit ISO characters. - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/capture-example.rst b/Documentation/linux_tv/media/v4l/capture-example.rst index 8d35e379cea7..ac1cd057e25b 100644 --- a/Documentation/linux_tv/media/v4l/capture-example.rst +++ b/Documentation/linux_tv/media/v4l/capture-example.rst @@ -11,14 +11,3 @@ Video Capture Example :maxdepth: 1 capture.c - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/capture.c.rst b/Documentation/linux_tv/media/v4l/capture.c.rst index 41e96c78a6dd..ff481e783c39 100644 --- a/Documentation/linux_tv/media/v4l/capture.c.rst +++ b/Documentation/linux_tv/media/v4l/capture.c.rst @@ -662,14 +662,3 @@ file: media/v4l/capture.c fprintf(stderr, "\\n"); return 0; } - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/colorspaces.rst b/Documentation/linux_tv/media/v4l/colorspaces.rst index 85d0b33b60a3..322eb94c1d44 100644 --- a/Documentation/linux_tv/media/v4l/colorspaces.rst +++ b/Documentation/linux_tv/media/v4l/colorspaces.rst @@ -161,12 +161,3 @@ website is an excellent resource, especially with respect to the mathematics behind colorspace conversions. The wikipedia `CIE 1931 colorspace `__ article is also very useful. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/common-defs.rst b/Documentation/linux_tv/media/v4l/common-defs.rst index 3f90a8c6e28c..39058216b630 100644 --- a/Documentation/linux_tv/media/v4l/common-defs.rst +++ b/Documentation/linux_tv/media/v4l/common-defs.rst @@ -11,14 +11,3 @@ Common definitions for V4L2 and V4L2 subdev interfaces :maxdepth: 1 selections-common - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/common.rst b/Documentation/linux_tv/media/v4l/common.rst index 40d3feab5ab9..13f2ed3fc5a6 100644 --- a/Documentation/linux_tv/media/v4l/common.rst +++ b/Documentation/linux_tv/media/v4l/common.rst @@ -44,14 +44,3 @@ applicable to all devices. crop selection-api streaming-par - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/compat.rst b/Documentation/linux_tv/media/v4l/compat.rst index 8a6d883ae6af..8b5e1cebd8f4 100644 --- a/Documentation/linux_tv/media/v4l/compat.rst +++ b/Documentation/linux_tv/media/v4l/compat.rst @@ -16,14 +16,3 @@ writers to port or update their code. diff-v4l hist-v4l2 - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/control.rst b/Documentation/linux_tv/media/v4l/control.rst index 4f64f1db6ec8..92abac784979 100644 --- a/Documentation/linux_tv/media/v4l/control.rst +++ b/Documentation/linux_tv/media/v4l/control.rst @@ -531,12 +531,3 @@ more menu type controls. instead of using :ref:`VIDIOC_QUERYCTRL` with the ``V4L2_CTRL_FLAG_NEXT_CTRL`` flag to enumerate all IDs, so support for ``V4L2_CID_PRIVATE_BASE`` is still around. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/crop.rst b/Documentation/linux_tv/media/v4l/crop.rst index 16d0983ff9fb..ed43b36c51d8 100644 --- a/Documentation/linux_tv/media/v4l/crop.rst +++ b/Documentation/linux_tv/media/v4l/crop.rst @@ -292,12 +292,3 @@ change ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` for other types of device. dwidth = format.fmt.pix.width / aspect; dheight = format.fmt.pix.height; - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/depth-formats.rst b/Documentation/linux_tv/media/v4l/depth-formats.rst index c363eaf741f5..82f183870aae 100644 --- a/Documentation/linux_tv/media/v4l/depth-formats.rst +++ b/Documentation/linux_tv/media/v4l/depth-formats.rst @@ -13,14 +13,3 @@ Depth data provides distance to points, mapped onto the image plane :maxdepth: 1 pixfmt-z16 - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dev-capture.rst b/Documentation/linux_tv/media/v4l/dev-capture.rst index 0e62dc026251..c927b7834b90 100644 --- a/Documentation/linux_tv/media/v4l/dev-capture.rst +++ b/Documentation/linux_tv/media/v4l/dev-capture.rst @@ -100,12 +100,3 @@ Reading Images A video capture device may support the :ref:`read() function ` and/or streaming (:ref:`memory mapping ` or :ref:`user pointer `) I/O. See :ref:`io` for details. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dev-codec.rst b/Documentation/linux_tv/media/v4l/dev-codec.rst index 170954acc049..5e834d51309e 100644 --- a/Documentation/linux_tv/media/v4l/dev-codec.rst +++ b/Documentation/linux_tv/media/v4l/dev-codec.rst @@ -30,12 +30,3 @@ the codec and reprogram it whenever another file handler gets access. This is different from the usual video node behavior where the video properties are global to the device (i.e. changing something through one file handle is visible through another file handle). - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dev-effect.rst b/Documentation/linux_tv/media/v4l/dev-effect.rst index c0cdfe07ff4d..be4de3b0a025 100644 --- a/Documentation/linux_tv/media/v4l/dev-effect.rst +++ b/Documentation/linux_tv/media/v4l/dev-effect.rst @@ -20,12 +20,3 @@ data either with :ref:`read() ` and mechanism. [to do] - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dev-event.rst b/Documentation/linux_tv/media/v4l/dev-event.rst index 385a8a342903..a06ec4d65359 100644 --- a/Documentation/linux_tv/media/v4l/dev-event.rst +++ b/Documentation/linux_tv/media/v4l/dev-event.rst @@ -45,12 +45,3 @@ events: is lost, but only an intermediate step leading up to that information. See the documentation for the event you want to subscribe to whether this is applicable for that event or not. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dev-osd.rst b/Documentation/linux_tv/media/v4l/dev-osd.rst index 8b05e3f0587d..ebc2f77d0e97 100644 --- a/Documentation/linux_tv/media/v4l/dev-osd.rst +++ b/Documentation/linux_tv/media/v4l/dev-osd.rst @@ -143,12 +143,3 @@ Enabling Overlay There is no V4L2 ioctl to enable or disable the overlay, however the framebuffer interface of the driver may support the ``FBIOBLANK`` ioctl. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dev-output.rst b/Documentation/linux_tv/media/v4l/dev-output.rst index 5253498db95a..5063be7d4938 100644 --- a/Documentation/linux_tv/media/v4l/dev-output.rst +++ b/Documentation/linux_tv/media/v4l/dev-output.rst @@ -97,12 +97,3 @@ Writing Images A video output device may support the :ref:`write() function ` and/or streaming (:ref:`memory mapping ` or :ref:`user pointer `) I/O. See :ref:`io` for details. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dev-overlay.rst b/Documentation/linux_tv/media/v4l/dev-overlay.rst index dd786b6fc936..97b41ecb9e78 100644 --- a/Documentation/linux_tv/media/v4l/dev-overlay.rst +++ b/Documentation/linux_tv/media/v4l/dev-overlay.rst @@ -317,12 +317,3 @@ To start or stop the frame buffer overlay applications call the because the application and graphics system are not aware these regions need to be refreshed. The driver should clip out more pixels or not write the image at all. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dev-radio.rst b/Documentation/linux_tv/media/v4l/dev-radio.rst index 55a56fb5d958..5ff7cded2591 100644 --- a/Documentation/linux_tv/media/v4l/dev-radio.rst +++ b/Documentation/linux_tv/media/v4l/dev-radio.rst @@ -50,12 +50,3 @@ depending on the selected frequency. The :ref:`VIDIOC_G_TUNER ` or :ref:`VIDIOC_G_MODULATOR ` ioctl reports the supported frequency range. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dev-raw-vbi.rst b/Documentation/linux_tv/media/v4l/dev-raw-vbi.rst index 20942bf9232e..659196499b32 100644 --- a/Documentation/linux_tv/media/v4l/dev-raw-vbi.rst +++ b/Documentation/linux_tv/media/v4l/dev-raw-vbi.rst @@ -357,12 +357,3 @@ another process. Most VBI services transmit on both fields, but some have different semantics depending on the field number. These cannot be reliable decoded or encoded when ``V4L2_VBI_UNSYNC`` is set. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dev-rds.rst b/Documentation/linux_tv/media/v4l/dev-rds.rst index 223df4971405..87209fd691f5 100644 --- a/Documentation/linux_tv/media/v4l/dev-rds.rst +++ b/Documentation/linux_tv/media/v4l/dev-rds.rst @@ -253,14 +253,3 @@ RDS datastructures - 0x80 - An uncorrectable error occurred. - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dev-sdr.rst b/Documentation/linux_tv/media/v4l/dev-sdr.rst index 0cae31c93dd0..834488ab7147 100644 --- a/Documentation/linux_tv/media/v4l/dev-sdr.rst +++ b/Documentation/linux_tv/media/v4l/dev-sdr.rst @@ -118,12 +118,3 @@ data transfer, set by the driver in order to inform application. An SDR device may support :ref:`read/write ` and/or streaming (:ref:`memory mapping ` or :ref:`user pointer `) I/O. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dev-sliced-vbi.rst b/Documentation/linux_tv/media/v4l/dev-sliced-vbi.rst index 0b299b51aceb..4c14f39bbc80 100644 --- a/Documentation/linux_tv/media/v4l/dev-sliced-vbi.rst +++ b/Documentation/linux_tv/media/v4l/dev-sliced-vbi.rst @@ -793,12 +793,3 @@ number). .. [1] According to :ref:`ETS 300 706 ` lines 6-22 of the first field and lines 5-22 of the second field may carry Teletext data. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dev-subdev.rst b/Documentation/linux_tv/media/v4l/dev-subdev.rst index 87a2cec37645..f40aa5187ba5 100644 --- a/Documentation/linux_tv/media/v4l/dev-subdev.rst +++ b/Documentation/linux_tv/media/v4l/dev-subdev.rst @@ -489,14 +489,3 @@ source pads. :maxdepth: 1 subdev-formats - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dev-teletext.rst b/Documentation/linux_tv/media/v4l/dev-teletext.rst index 501e68077af2..2648f6b37ea3 100644 --- a/Documentation/linux_tv/media/v4l/dev-teletext.rst +++ b/Documentation/linux_tv/media/v4l/dev-teletext.rst @@ -32,12 +32,3 @@ Teletext API in kernel 2.6.37. Modern devices all use the :ref:`raw ` or :ref:`sliced` VBI API. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/devices.rst b/Documentation/linux_tv/media/v4l/devices.rst index dee6d10e2900..aed0ce11d1f8 100644 --- a/Documentation/linux_tv/media/v4l/devices.rst +++ b/Documentation/linux_tv/media/v4l/devices.rst @@ -24,14 +24,3 @@ Interfaces dev-sdr dev-event dev-subdev - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/diff-v4l.rst b/Documentation/linux_tv/media/v4l/diff-v4l.rst index da4b391116b5..301e1475ca70 100644 --- a/Documentation/linux_tv/media/v4l/diff-v4l.rst +++ b/Documentation/linux_tv/media/v4l/diff-v4l.rst @@ -952,12 +952,3 @@ devices is documented in :ref:`extended-controls`. .. [9] Old driver versions used different values, eventually the custom ``BTTV_VBISIZE`` ioctl was added to query the correct values. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dmabuf.rst b/Documentation/linux_tv/media/v4l/dmabuf.rst index 6f4f0f03e91d..cd68f755c0e3 100644 --- a/Documentation/linux_tv/media/v4l/dmabuf.rst +++ b/Documentation/linux_tv/media/v4l/dmabuf.rst @@ -147,12 +147,3 @@ Drivers implementing DMABUF importing I/O must support the ``VIDIOC_REQBUFS``, ``VIDIOC_QBUF``, ``VIDIOC_DQBUF``, ``VIDIOC_STREAMON`` and ``VIDIOC_STREAMOFF`` ioctls, and the :c:func:`select()` and :c:func:`poll()` functions. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/driver.rst b/Documentation/linux_tv/media/v4l/driver.rst index 7ed48861c6fe..2319b383f0a4 100644 --- a/Documentation/linux_tv/media/v4l/driver.rst +++ b/Documentation/linux_tv/media/v4l/driver.rst @@ -7,12 +7,3 @@ V4L2 Driver Programming *********************** to do - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/dv-timings.rst b/Documentation/linux_tv/media/v4l/dv-timings.rst index cde46bc95c79..415a0c4e2ccb 100644 --- a/Documentation/linux_tv/media/v4l/dv-timings.rst +++ b/Documentation/linux_tv/media/v4l/dv-timings.rst @@ -36,12 +36,3 @@ the DV timings as seen by the video receiver applications use the Applications can make use of the :ref:`input-capabilities` and :ref:`output-capabilities` flags to determine whether the digital video ioctls can be used with the given input or output. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/extended-controls.rst b/Documentation/linux_tv/media/v4l/extended-controls.rst index 413f6ca8eb60..ed10c9e274f5 100644 --- a/Documentation/linux_tv/media/v4l/extended-controls.rst +++ b/Documentation/linux_tv/media/v4l/extended-controls.rst @@ -4522,12 +4522,3 @@ RF_TUNER Control IDs .. [1] This control may be changed to a menu control in the future, if more options are required. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/fdl-appendix.rst b/Documentation/linux_tv/media/v4l/fdl-appendix.rst index 9f3a494cf497..fd475180fed8 100644 --- a/Documentation/linux_tv/media/v4l/fdl-appendix.rst +++ b/Documentation/linux_tv/media/v4l/fdl-appendix.rst @@ -469,12 +469,3 @@ recommend releasing these examples in parallel under your choice of free software license, such as the `GNU General Public License `__, to permit their use in free software. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/field-order.rst b/Documentation/linux_tv/media/v4l/field-order.rst index 0ab52df521a8..b9503e230fd9 100644 --- a/Documentation/linux_tv/media/v4l/field-order.rst +++ b/Documentation/linux_tv/media/v4l/field-order.rst @@ -197,14 +197,3 @@ should have the value ``V4L2_FIELD_ANY`` (0). :align: center Field Order, Bottom Field First Transmitted - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/format.rst b/Documentation/linux_tv/media/v4l/format.rst index e9b1201fe316..a29dd9466b8f 100644 --- a/Documentation/linux_tv/media/v4l/format.rst +++ b/Documentation/linux_tv/media/v4l/format.rst @@ -90,12 +90,3 @@ by all drivers exchanging image data with applications. (otherwise it could explicitly ask for them and need not enumerate) seems useless, but there are applications serving as proxy between drivers and the actual video applications for which this is useful. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/func-close.rst b/Documentation/linux_tv/media/v4l/func-close.rst index 991a34a163af..fac5ec14a8e6 100644 --- a/Documentation/linux_tv/media/v4l/func-close.rst +++ b/Documentation/linux_tv/media/v4l/func-close.rst @@ -45,12 +45,3 @@ set appropriately. Possible error codes: EBADF ``fd`` is not a valid open file descriptor. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/func-ioctl.rst b/Documentation/linux_tv/media/v4l/func-ioctl.rst index 26b072cfe850..d442d9b56dfb 100644 --- a/Documentation/linux_tv/media/v4l/func-ioctl.rst +++ b/Documentation/linux_tv/media/v4l/func-ioctl.rst @@ -58,12 +58,3 @@ appropriately. The generic error codes are described at the When an ioctl that takes an output or read/write parameter fails, the parameter remains unmodified. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/func-mmap.rst b/Documentation/linux_tv/media/v4l/func-mmap.rst index 51502a906c3c..a0be2d9b5421 100644 --- a/Documentation/linux_tv/media/v4l/func-mmap.rst +++ b/Documentation/linux_tv/media/v4l/func-mmap.rst @@ -130,12 +130,3 @@ EINVAL ENOMEM Not enough physical or virtual memory was available to complete the request. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/func-munmap.rst b/Documentation/linux_tv/media/v4l/func-munmap.rst index 80f9ecd92774..1f9831795db7 100644 --- a/Documentation/linux_tv/media/v4l/func-munmap.rst +++ b/Documentation/linux_tv/media/v4l/func-munmap.rst @@ -54,12 +54,3 @@ On success :c:func:`munmap()` returns 0, on failure -1 and the EINVAL The ``start`` or ``length`` is incorrect, or no buffers have been mapped yet. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/func-open.rst b/Documentation/linux_tv/media/v4l/func-open.rst index dcfce511e273..c021772a9dee 100644 --- a/Documentation/linux_tv/media/v4l/func-open.rst +++ b/Documentation/linux_tv/media/v4l/func-open.rst @@ -79,12 +79,3 @@ EMFILE ENFILE The limit on the total number of files open on the system has been reached. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/func-poll.rst b/Documentation/linux_tv/media/v4l/func-poll.rst index 3e96d9b0ce38..bfbcec2bb0cd 100644 --- a/Documentation/linux_tv/media/v4l/func-poll.rst +++ b/Documentation/linux_tv/media/v4l/func-poll.rst @@ -107,12 +107,3 @@ EINTR EINVAL The ``nfds`` argument is greater than ``OPEN_MAX``. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/func-read.rst b/Documentation/linux_tv/media/v4l/func-read.rst index 4a4f3e86fd13..9238ecddec72 100644 --- a/Documentation/linux_tv/media/v4l/func-read.rst +++ b/Documentation/linux_tv/media/v4l/func-read.rst @@ -127,12 +127,3 @@ EIO EINVAL The :c:func:`read()` function is not supported by this driver, not on this device, or generally not on this type of device. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/func-select.rst b/Documentation/linux_tv/media/v4l/func-select.rst index de5583c4ffb3..5f2ff6a5e00c 100644 --- a/Documentation/linux_tv/media/v4l/func-select.rst +++ b/Documentation/linux_tv/media/v4l/func-select.rst @@ -97,12 +97,3 @@ EINVAL The Linux kernel implements :c:func:`select()` like the :ref:`poll() ` function, but :c:func:`select()` cannot return a ``POLLERR``. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/func-write.rst b/Documentation/linux_tv/media/v4l/func-write.rst index 402beed3231c..fee5fe004c0a 100644 --- a/Documentation/linux_tv/media/v4l/func-write.rst +++ b/Documentation/linux_tv/media/v4l/func-write.rst @@ -78,12 +78,3 @@ EIO EINVAL The :c:func:`write()` function is not supported by this driver, not on this device, or generally not on this type of device. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/gen-errors.rst b/Documentation/linux_tv/media/v4l/gen-errors.rst index ad119579e9ea..500a2f73ffd9 100644 --- a/Documentation/linux_tv/media/v4l/gen-errors.rst +++ b/Documentation/linux_tv/media/v4l/gen-errors.rst @@ -98,12 +98,3 @@ errors. Note 2: Request-specific error codes are listed in the individual requests descriptions. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/hist-v4l2.rst b/Documentation/linux_tv/media/v4l/hist-v4l2.rst index 6e9706f791de..88f813ad38c6 100644 --- a/Documentation/linux_tv/media/v4l/hist-v4l2.rst +++ b/Documentation/linux_tv/media/v4l/hist-v4l2.rst @@ -1478,12 +1478,3 @@ should not be implemented in new drivers. .. [1] This is not implemented in XFree86. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/io.rst b/Documentation/linux_tv/media/v4l/io.rst index 77d13fdd1c28..e68342606ed3 100644 --- a/Documentation/linux_tv/media/v4l/io.rst +++ b/Documentation/linux_tv/media/v4l/io.rst @@ -49,14 +49,3 @@ The following sections describe the various I/O methods in more detail. async buffer field-order - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/keytable.c.rst b/Documentation/linux_tv/media/v4l/keytable.c.rst index c69833ca2fb7..f8d9c4b71f06 100644 --- a/Documentation/linux_tv/media/v4l/keytable.c.rst +++ b/Documentation/linux_tv/media/v4l/keytable.c.rst @@ -174,14 +174,3 @@ file: media/v4l/keytable.c } return 0; } - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/libv4l-introduction.rst b/Documentation/linux_tv/media/v4l/libv4l-introduction.rst index d189316dc1da..4b261d95c672 100644 --- a/Documentation/linux_tv/media/v4l/libv4l-introduction.rst +++ b/Documentation/linux_tv/media/v4l/libv4l-introduction.rst @@ -167,12 +167,3 @@ API. It allows usage of binary legacy applications that still don't use libv4l. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/libv4l.rst b/Documentation/linux_tv/media/v4l/libv4l.rst index a88c52812f14..332c1d42688b 100644 --- a/Documentation/linux_tv/media/v4l/libv4l.rst +++ b/Documentation/linux_tv/media/v4l/libv4l.rst @@ -11,14 +11,3 @@ Libv4l Userspace Library :maxdepth: 1 libv4l-introduction - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/lirc_dev_intro.rst b/Documentation/linux_tv/media/v4l/lirc_dev_intro.rst index 10d4d9a96b15..520660114f99 100644 --- a/Documentation/linux_tv/media/v4l/lirc_dev_intro.rst +++ b/Documentation/linux_tv/media/v4l/lirc_dev_intro.rst @@ -26,12 +26,3 @@ What you should see for a chardev: $ ls -l /dev/lirc* crw-rw---- 1 root root 248, 0 Jul 2 22:20 /dev/lirc0 - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/lirc_device_interface.rst b/Documentation/linux_tv/media/v4l/lirc_device_interface.rst index 7f7bb6815013..a0c27ed5ad73 100644 --- a/Documentation/linux_tv/media/v4l/lirc_device_interface.rst +++ b/Documentation/linux_tv/media/v4l/lirc_device_interface.rst @@ -13,14 +13,3 @@ LIRC Device Interface lirc_read lirc_write lirc_ioctl - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/lirc_ioctl.rst b/Documentation/linux_tv/media/v4l/lirc_ioctl.rst index 947c3bf9ae07..916d064476f1 100644 --- a/Documentation/linux_tv/media/v4l/lirc_ioctl.rst +++ b/Documentation/linux_tv/media/v4l/lirc_ioctl.rst @@ -154,12 +154,3 @@ Return Value On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/lirc_read.rst b/Documentation/linux_tv/media/v4l/lirc_read.rst index eb2387521862..b0b76c3d1d9a 100644 --- a/Documentation/linux_tv/media/v4l/lirc_read.rst +++ b/Documentation/linux_tv/media/v4l/lirc_read.rst @@ -17,12 +17,3 @@ chardev. See also `http://www.lirc.org/html/technical.html `__ for more info. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/lirc_write.rst b/Documentation/linux_tv/media/v4l/lirc_write.rst index 234c8f43613e..d19cb486ecc9 100644 --- a/Documentation/linux_tv/media/v4l/lirc_write.rst +++ b/Documentation/linux_tv/media/v4l/lirc_write.rst @@ -12,12 +12,3 @@ The data must start and end with a pulse, therefore, the data must always include an uneven number of samples. The write function must block until the data has been transmitted by the hardware. If more data is provided than the hardware can send, the driver returns ``EINVAL``. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/media-controller-intro.rst b/Documentation/linux_tv/media/v4l/media-controller-intro.rst index e7e0d5cfe9ca..3e776c0d8276 100644 --- a/Documentation/linux_tv/media/v4l/media-controller-intro.rst +++ b/Documentation/linux_tv/media/v4l/media-controller-intro.rst @@ -31,12 +31,3 @@ applications really require based on limited information, thereby implementing policies that belong to userspace. The media controller API aims at solving those problems. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/media-controller-model.rst b/Documentation/linux_tv/media/v4l/media-controller-model.rst index c9abb8e14302..7be58aecb882 100644 --- a/Documentation/linux_tv/media/v4l/media-controller-model.rst +++ b/Documentation/linux_tv/media/v4l/media-controller-model.rst @@ -33,12 +33,3 @@ are: - An **interface link** is a point-to-point bidirectional control connection between a Linux Kernel interface and an entity.m - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/media-controller.rst b/Documentation/linux_tv/media/v4l/media-controller.rst index 4fd39178ccd7..49fb76cafcab 100644 --- a/Documentation/linux_tv/media/v4l/media-controller.rst +++ b/Documentation/linux_tv/media/v4l/media-controller.rst @@ -55,12 +55,3 @@ Revision and Copyright :revision: 1.0.0 / 2010-11-10 (*lp*) Initial revision - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/media-func-close.rst b/Documentation/linux_tv/media/v4l/media-func-close.rst index e142ee73d15d..959bfa0cb6a8 100644 --- a/Documentation/linux_tv/media/v4l/media-func-close.rst +++ b/Documentation/linux_tv/media/v4l/media-func-close.rst @@ -43,12 +43,3 @@ Return Value EBADF ``fd`` is not a valid open file descriptor. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/media-func-ioctl.rst b/Documentation/linux_tv/media/v4l/media-func-ioctl.rst index 7a5c01d6cb4a..d7a3a01771ec 100644 --- a/Documentation/linux_tv/media/v4l/media-func-ioctl.rst +++ b/Documentation/linux_tv/media/v4l/media-func-ioctl.rst @@ -63,12 +63,3 @@ descriptions. When an ioctl that takes an output or read/write parameter fails, the parameter remains unmodified. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/media-func-open.rst b/Documentation/linux_tv/media/v4l/media-func-open.rst index 573292ac9a94..fc731060a726 100644 --- a/Documentation/linux_tv/media/v4l/media-func-open.rst +++ b/Documentation/linux_tv/media/v4l/media-func-open.rst @@ -65,12 +65,3 @@ ENOMEM ENXIO No device corresponding to this device special file exists. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/media-ioc-device-info.rst b/Documentation/linux_tv/media/v4l/media-ioc-device-info.rst index 230f9fd9b4fb..aca9c8aa736a 100644 --- a/Documentation/linux_tv/media/v4l/media-ioc-device-info.rst +++ b/Documentation/linux_tv/media/v4l/media-ioc-device-info.rst @@ -138,12 +138,3 @@ Return Value On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/media-ioc-enum-entities.rst b/Documentation/linux_tv/media/v4l/media-ioc-enum-entities.rst index 6d2deba8dea8..8fe1f1966640 100644 --- a/Documentation/linux_tv/media/v4l/media-ioc-enum-entities.rst +++ b/Documentation/linux_tv/media/v4l/media-ioc-enum-entities.rst @@ -193,12 +193,3 @@ appropriately. The generic error codes are described at the EINVAL The struct :ref:`media_entity_desc ` ``id`` references a non-existing entity. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/media-ioc-enum-links.rst b/Documentation/linux_tv/media/v4l/media-ioc-enum-links.rst index f3a4e41b3696..b0d4a946e151 100644 --- a/Documentation/linux_tv/media/v4l/media-ioc-enum-links.rst +++ b/Documentation/linux_tv/media/v4l/media-ioc-enum-links.rst @@ -169,12 +169,3 @@ appropriately. The generic error codes are described at the EINVAL The struct :ref:`media_links_enum ` ``id`` references a non-existing entity. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/media-ioc-g-topology.rst b/Documentation/linux_tv/media/v4l/media-ioc-g-topology.rst index f22310319264..6d530dc2a92c 100644 --- a/Documentation/linux_tv/media/v4l/media-ioc-g-topology.rst +++ b/Documentation/linux_tv/media/v4l/media-ioc-g-topology.rst @@ -425,12 +425,3 @@ ENOSPC last time this ioctl was called. Userspace should usually free the area for the pointers, zero the struct elements and call this ioctl again. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/media-ioc-setup-link.rst b/Documentation/linux_tv/media/v4l/media-ioc-setup-link.rst index 5b9c44e4ee77..135fa782dcd2 100644 --- a/Documentation/linux_tv/media/v4l/media-ioc-setup-link.rst +++ b/Documentation/linux_tv/media/v4l/media-ioc-setup-link.rst @@ -64,12 +64,3 @@ EINVAL The struct :ref:`media_link_desc ` references a non-existing link, or the link is immutable and an attempt to modify its configuration was made. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/media-types.rst b/Documentation/linux_tv/media/v4l/media-types.rst index 50dec2b6cb3a..6a2d001babc2 100644 --- a/Documentation/linux_tv/media/v4l/media-types.rst +++ b/Documentation/linux_tv/media/v4l/media-types.rst @@ -420,14 +420,3 @@ must be set for every pad. ``MEDIA_LNK_FL_INTERFACE_LINK`` if the link is between an interface and an entity - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/mmap.rst b/Documentation/linux_tv/media/v4l/mmap.rst index 5f7450ff16c2..5769ed36872f 100644 --- a/Documentation/linux_tv/media/v4l/mmap.rst +++ b/Documentation/linux_tv/media/v4l/mmap.rst @@ -275,12 +275,3 @@ the :c:func:`mmap()`, :c:func:`munmap()`, :c:func:`select()` and At the driver level :c:func:`select()` and :c:func:`poll()` are the same, and :c:func:`select()` is too important to be optional. The rest should be evident. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/open.rst b/Documentation/linux_tv/media/v4l/open.rst index 83f406957cf4..c349575efc03 100644 --- a/Documentation/linux_tv/media/v4l/open.rst +++ b/Documentation/linux_tv/media/v4l/open.rst @@ -155,12 +155,3 @@ sections. .. [3] Drivers could recognize the ``O_EXCL`` open flag. Presently this is not required, so applications cannot know if it really works. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-002.rst b/Documentation/linux_tv/media/v4l/pixfmt-002.rst index a0c8c2298bdd..1645d07eeedb 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-002.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-002.rst @@ -194,14 +194,3 @@ Single-planar format structure - This information supplements the ``colorspace`` and must be set by the driver for capture streams and by the application for output streams, see :ref:`colorspaces`. - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-003.rst b/Documentation/linux_tv/media/v4l/pixfmt-003.rst index cc8ef6137618..5abbfdf23289 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-003.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-003.rst @@ -164,14 +164,3 @@ describing all planes of that format. - Reserved for future extensions. Should be zeroed by drivers and applications. - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-004.rst b/Documentation/linux_tv/media/v4l/pixfmt-004.rst index 86d4975a95c9..4bc116aa8193 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-004.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-004.rst @@ -49,12 +49,3 @@ memory buffer, but it can also be placed in two or three separate buffers, with Y component in one buffer and CbCr components in another in the 2-planar version or with each component in its own buffer in the 3-planar case. Those sub-buffers are referred to as "*planes*". - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-006.rst b/Documentation/linux_tv/media/v4l/pixfmt-006.rst index 89a990745111..19e6a85b3400 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-006.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-006.rst @@ -278,14 +278,3 @@ R'G'B' quantization. - Use the limited range quantization encoding. I.e. the range [0…1] is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to [16…240]. - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-007.rst b/Documentation/linux_tv/media/v4l/pixfmt-007.rst index 7caceea855a0..5e39cda6147a 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-007.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-007.rst @@ -892,12 +892,3 @@ will have to set that information explicitly. Effectively ``V4L2_COLORSPACE_JPEG`` can be considered to be an abbreviation for ``V4L2_COLORSPACE_SRGB``, ``V4L2_YCBCR_ENC_601`` and ``V4L2_QUANTIZATION_FULL_RANGE``. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-008.rst b/Documentation/linux_tv/media/v4l/pixfmt-008.rst index ef3daf1a5487..4bec79784bdd 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-008.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-008.rst @@ -30,12 +30,3 @@ Transfer function: Inverse Transfer function: L = (max(L':sup:`1/m2` - c1, 0) / (c2 - c3 * L'\ :sup:`1/m2`))\ :sup:`1/m1` - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-013.rst b/Documentation/linux_tv/media/v4l/pixfmt-013.rst index b3cb7c48eb74..1f27e081a874 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-013.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-013.rst @@ -127,14 +127,3 @@ Compressed Formats - 'VP80' - VP8 video elementary stream. - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-grey.rst b/Documentation/linux_tv/media/v4l/pixfmt-grey.rst index 7a9bfe0ec53a..e1e19d558d59 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-grey.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-grey.rst @@ -76,14 +76,3 @@ Each cell is one byte. - Y'\ :sub:`32` - Y'\ :sub:`33` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-indexed.rst b/Documentation/linux_tv/media/v4l/pixfmt-indexed.rst index a85b9832035e..dccf96b3d9c4 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-indexed.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-indexed.rst @@ -71,14 +71,3 @@ the palette, this must be done with ioctls of the Linux framebuffer API. - i\ :sub:`1` - i\ :sub:`0` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-m420.rst b/Documentation/linux_tv/media/v4l/pixfmt-m420.rst index 553618ab62cf..4434ee1b1be9 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-m420.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-m420.rst @@ -225,14 +225,3 @@ Each cell is one byte. - - Y - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-nv12.rst b/Documentation/linux_tv/media/v4l/pixfmt-nv12.rst index ffbc9390e5bb..df26d495c892 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-nv12.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-nv12.rst @@ -228,14 +228,3 @@ Each cell is one byte. - - Y - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-nv12m.rst b/Documentation/linux_tv/media/v4l/pixfmt-nv12m.rst index 4a181af07724..c7db4038609a 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-nv12m.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-nv12m.rst @@ -243,14 +243,3 @@ Each cell is one byte. - - Y - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-nv12mt.rst b/Documentation/linux_tv/media/v4l/pixfmt-nv12mt.rst index 8b0b4d1812a0..6198941bb814 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-nv12mt.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-nv12mt.rst @@ -60,12 +60,3 @@ interleaved. Height of the buffer is aligned to 32. Memory layout of macroblocks of ``V4L2_PIX_FMT_NV12MT`` format in most extreme case. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-nv16.rst b/Documentation/linux_tv/media/v4l/pixfmt-nv16.rst index 4c3c638dec33..a82f46c77d2d 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-nv16.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-nv16.rst @@ -277,14 +277,3 @@ Each cell is one byte. - C - - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-nv16m.rst b/Documentation/linux_tv/media/v4l/pixfmt-nv16m.rst index e250f2c0bc7a..f6a82defe492 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-nv16m.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-nv16m.rst @@ -284,14 +284,3 @@ Each cell is one byte. - C - - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-nv24.rst b/Documentation/linux_tv/media/v4l/pixfmt-nv24.rst index 5b9716079c25..c0a8ddfd6963 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-nv24.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-nv24.rst @@ -169,14 +169,3 @@ Each cell is one byte. - Cb\ :sub:`33` - Cr\ :sub:`33` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-packed-rgb.rst b/Documentation/linux_tv/media/v4l/pixfmt-packed-rgb.rst index 2b4a6c725d4c..517a5b42151c 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-packed-rgb.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-packed-rgb.rst @@ -1468,12 +1468,3 @@ A test utility to determine which RGB formats a driver actually supports is available from the LinuxTV v4l-dvb repository. See `https://linuxtv.org/repo/ `__ for access instructions. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-packed-yuv.rst b/Documentation/linux_tv/media/v4l/pixfmt-packed-yuv.rst index 095871a50436..70d0ad54bd22 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-packed-yuv.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-packed-yuv.rst @@ -314,12 +314,3 @@ Bit 7 is the most significant bit. The value of a = alpha bits is undefined when reading from the driver, ignored when writing to the driver, except when alpha blending has been negotiated for a :ref:`Video Overlay ` or :ref:`Video Output Overlay `. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-reserved.rst b/Documentation/linux_tv/media/v4l/pixfmt-reserved.rst index 072f2843c137..73301b512b1a 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-reserved.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-reserved.rst @@ -358,14 +358,3 @@ please make a proposal on the linux-media mailing list. by RGBA values (128, 192, 255, 128), the same pixel described with premultiplied colors would be described by RGBA values (64, 96, 128, 128) - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-rgb.rst b/Documentation/linux_tv/media/v4l/pixfmt-rgb.rst index aa607332af25..4b3651cc0a96 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-rgb.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-rgb.rst @@ -21,14 +21,3 @@ RGB Formats pixfmt-srggb10alaw8 pixfmt-srggb10dpcm8 pixfmt-srggb12 - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-sbggr16.rst b/Documentation/linux_tv/media/v4l/pixfmt-sbggr16.rst index 9c1cf6d76bb6..742816ad4d41 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-sbggr16.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-sbggr16.rst @@ -112,14 +112,3 @@ Each cell is one byte. - R\ :sub:`33low` - R\ :sub:`33high` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-sbggr8.rst b/Documentation/linux_tv/media/v4l/pixfmt-sbggr8.rst index 85d6d1f6e6d9..9a8e7d27e660 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-sbggr8.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-sbggr8.rst @@ -80,14 +80,3 @@ Each cell is one byte. - G\ :sub:`32` - R\ :sub:`33` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-sdr-cs08.rst b/Documentation/linux_tv/media/v4l/pixfmt-sdr-cs08.rst index e75129d83def..201901d3f4c5 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-sdr-cs08.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-sdr-cs08.rst @@ -42,14 +42,3 @@ Each cell is one byte. - start + 1: - Q'\ :sub:`0` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-sdr-cs14le.rst b/Documentation/linux_tv/media/v4l/pixfmt-sdr-cs14le.rst index cc94ffd90444..c7e471fe722f 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-sdr-cs14le.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-sdr-cs14le.rst @@ -47,14 +47,3 @@ Each cell is one byte. - Q'\ :sub:`0[7:0]` - Q'\ :sub:`0[13:8]` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-sdr-cu08.rst b/Documentation/linux_tv/media/v4l/pixfmt-sdr-cu08.rst index 95c7b40b2d72..f97559ebcab5 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-sdr-cu08.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-sdr-cu08.rst @@ -42,14 +42,3 @@ Each cell is one byte. - start + 1: - Q'\ :sub:`0` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-sdr-cu16le.rst b/Documentation/linux_tv/media/v4l/pixfmt-sdr-cu16le.rst index cc9891dd9c4b..ee73006bdb23 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-sdr-cu16le.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-sdr-cu16le.rst @@ -46,14 +46,3 @@ Each cell is one byte. - Q'\ :sub:`0[7:0]` - Q'\ :sub:`0[15:8]` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-sdr-ru12le.rst b/Documentation/linux_tv/media/v4l/pixfmt-sdr-ru12le.rst index 8bcead790b3e..7147e6cfe6d9 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-sdr-ru12le.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-sdr-ru12le.rst @@ -37,14 +37,3 @@ Each cell is one byte. - I'\ :sub:`0[7:0]` - I'\ :sub:`0[11:8]` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-sgbrg8.rst b/Documentation/linux_tv/media/v4l/pixfmt-sgbrg8.rst index efcd5269815f..8d783f332eaa 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-sgbrg8.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-sgbrg8.rst @@ -80,14 +80,3 @@ Each cell is one byte. - R\ :sub:`32` - G\ :sub:`33` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-sgrbg8.rst b/Documentation/linux_tv/media/v4l/pixfmt-sgrbg8.rst index fd7506f17a2c..04b93d9335a6 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-sgrbg8.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-sgrbg8.rst @@ -80,14 +80,3 @@ Each cell is one byte. - B\ :sub:`32` - G\ :sub:`33` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-srggb10.rst b/Documentation/linux_tv/media/v4l/pixfmt-srggb10.rst index b8b2b7c3cd91..2ad8ef04ad32 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-srggb10.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-srggb10.rst @@ -116,14 +116,3 @@ Each cell is one byte, high 6 bits in high bytes are 0. - R\ :sub:`33low` - R\ :sub:`33high` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-srggb10alaw8.rst b/Documentation/linux_tv/media/v4l/pixfmt-srggb10alaw8.rst index 045c7a91203a..4e221629bcb3 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-srggb10alaw8.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-srggb10alaw8.rst @@ -21,12 +21,3 @@ These four pixel formats are raw sRGB / Bayer formats with 10 bits per color compressed to 8 bits each, using the A-LAW algorithm. Each color component consumes 8 bits of memory. In other respects this format is similar to :ref:`V4L2-PIX-FMT-SRGGB8`. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-srggb10dpcm8.rst b/Documentation/linux_tv/media/v4l/pixfmt-srggb10dpcm8.rst index 03a27c43be21..23e7db7333ba 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-srggb10dpcm8.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-srggb10dpcm8.rst @@ -22,12 +22,3 @@ colour compressed to 8 bits each, using DPCM compression. DPCM, differential pulse-code modulation, is lossy. Each colour component consumes 8 bits of memory. In other respects this format is similar to :ref:`V4L2-PIX-FMT-SRGGB10`. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-srggb10p.rst b/Documentation/linux_tv/media/v4l/pixfmt-srggb10p.rst index 503dd3050e02..fe2908e37d06 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-srggb10p.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-srggb10p.rst @@ -99,14 +99,3 @@ Each cell is one byte. - G\ :sub:`30low`\ (bits 7--6) R\ :sub:`31low`\ (bits 5--4) G\ :sub:`32low`\ (bits 3--2) R\ :sub:`33low`\ (bits 1--0) - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-srggb12.rst b/Documentation/linux_tv/media/v4l/pixfmt-srggb12.rst index fa10223104d7..fa2efa33be66 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-srggb12.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-srggb12.rst @@ -116,14 +116,3 @@ Each cell is one byte, high 6 bits in high bytes are 0. - R\ :sub:`33low` - R\ :sub:`33high` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-srggb8.rst b/Documentation/linux_tv/media/v4l/pixfmt-srggb8.rst index b208ea5a2f66..eb3f6b5e39ca 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-srggb8.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-srggb8.rst @@ -80,14 +80,3 @@ Each cell is one byte. - G\ :sub:`32` - B\ :sub:`33` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-uv8.rst b/Documentation/linux_tv/media/v4l/pixfmt-uv8.rst index 6e126e905ec8..033cedf85f57 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-uv8.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-uv8.rst @@ -75,14 +75,3 @@ Each cell is one byte. - Cb\ :sub:`31` - Cr\ :sub:`31` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-uyvy.rst b/Documentation/linux_tv/media/v4l/pixfmt-uyvy.rst index fcdfb36c58c2..1184dd629d21 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-uyvy.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-uyvy.rst @@ -203,14 +203,3 @@ Each cell is one byte. - C - Y - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-vyuy.rst b/Documentation/linux_tv/media/v4l/pixfmt-vyuy.rst index b086bed774b2..7e25aee4f968 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-vyuy.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-vyuy.rst @@ -203,14 +203,3 @@ Each cell is one byte. - C - Y - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-y10.rst b/Documentation/linux_tv/media/v4l/pixfmt-y10.rst index 000dc5536cb4..bb3f3229d8e5 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-y10.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-y10.rst @@ -109,14 +109,3 @@ Each cell is one byte. - Y'\ :sub:`33low` - Y'\ :sub:`33high` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-y10b.rst b/Documentation/linux_tv/media/v4l/pixfmt-y10b.rst index 83b7080643d5..5b50cd61e654 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-y10b.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-y10b.rst @@ -43,14 +43,3 @@ pixels. - Y'\ :sub:`02[5:0]`\ Y'\ :sub:`03[9:8]` - Y'\ :sub:`03[7:0]` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-y12.rst b/Documentation/linux_tv/media/v4l/pixfmt-y12.rst index 66c16aa8b3d5..24c59c911fee 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-y12.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-y12.rst @@ -109,14 +109,3 @@ Each cell is one byte. - Y'\ :sub:`33low` - Y'\ :sub:`33high` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-y12i.rst b/Documentation/linux_tv/media/v4l/pixfmt-y12i.rst index 18fffaef7f31..82a39faaad08 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-y12i.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-y12i.rst @@ -46,14 +46,3 @@ interleaved pixel. - Y'\ :sub:`0right[3:0]`\ Y'\ :sub:`0left[11:8]` - Y'\ :sub:`0right[11:4]` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-y16-be.rst b/Documentation/linux_tv/media/v4l/pixfmt-y16-be.rst index 05fef3841ed7..6dcd9251659d 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-y16-be.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-y16-be.rst @@ -110,14 +110,3 @@ Each cell is one byte. - Y'\ :sub:`33high` - Y'\ :sub:`33low` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-y16.rst b/Documentation/linux_tv/media/v4l/pixfmt-y16.rst index b3c766feb4c6..cc1565f37db8 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-y16.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-y16.rst @@ -110,14 +110,3 @@ Each cell is one byte. - Y'\ :sub:`33low` - Y'\ :sub:`33high` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-y41p.rst b/Documentation/linux_tv/media/v4l/pixfmt-y41p.rst index d050d27e7ea1..bb10de3da994 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-y41p.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-y41p.rst @@ -300,14 +300,3 @@ Each cell is one byte. - - Y - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-y8i.rst b/Documentation/linux_tv/media/v4l/pixfmt-y8i.rst index 69ec8d7e8a06..3f3dbf18357f 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-y8i.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-y8i.rst @@ -110,14 +110,3 @@ Each cell is one byte. - Y'\ :sub:`33left` - Y'\ :sub:`33right` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-yuv410.rst b/Documentation/linux_tv/media/v4l/pixfmt-yuv410.rst index f56902f6faed..642c20a038b6 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-yuv410.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-yuv410.rst @@ -206,14 +206,3 @@ Each cell is one byte. - - Y - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-yuv411p.rst b/Documentation/linux_tv/media/v4l/pixfmt-yuv411p.rst index bf4fa56b8efb..0fe1cacf7b7a 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-yuv411p.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-yuv411p.rst @@ -224,14 +224,3 @@ Each cell is one byte. - - Y - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-yuv420.rst b/Documentation/linux_tv/media/v4l/pixfmt-yuv420.rst index 0dd7e4632dd9..106afed50125 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-yuv420.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-yuv420.rst @@ -238,14 +238,3 @@ Each cell is one byte. - - Y - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-yuv420m.rst b/Documentation/linux_tv/media/v4l/pixfmt-yuv420m.rst index 5f918d0d1498..dc3d395a5731 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-yuv420m.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-yuv420m.rst @@ -252,14 +252,3 @@ Each cell is one byte. - - Y - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-yuv422m.rst b/Documentation/linux_tv/media/v4l/pixfmt-yuv422m.rst index 625d4ccf73d9..d8e438857e14 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-yuv422m.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-yuv422m.rst @@ -261,14 +261,3 @@ Each cell is one byte. - C - Y - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-yuv422p.rst b/Documentation/linux_tv/media/v4l/pixfmt-yuv422p.rst index d21794b48496..a7934540f69a 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-yuv422p.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-yuv422p.rst @@ -244,14 +244,3 @@ Each cell is one byte. - C - Y - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-yuv444m.rst b/Documentation/linux_tv/media/v4l/pixfmt-yuv444m.rst index 3d25c5e0ca00..c70e74631d4d 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-yuv444m.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-yuv444m.rst @@ -281,14 +281,3 @@ Each cell is one byte. - - YC - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-yuyv.rst b/Documentation/linux_tv/media/v4l/pixfmt-yuyv.rst index 2fed9b3c87c3..9f01ae03bd10 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-yuyv.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-yuyv.rst @@ -204,14 +204,3 @@ Each cell is one byte. - C - Y - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-yvyu.rst b/Documentation/linux_tv/media/v4l/pixfmt-yvyu.rst index 40eb6eda9fb1..45e3dcd7d222 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-yvyu.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-yvyu.rst @@ -203,14 +203,3 @@ Each cell is one byte. - C - Y - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt-z16.rst b/Documentation/linux_tv/media/v4l/pixfmt-z16.rst index 25badab393ce..8804dd5cc1c0 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt-z16.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt-z16.rst @@ -110,14 +110,3 @@ Each cell is one byte. - Z\ :sub:`33low` - Z\ :sub:`33high` - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/pixfmt.rst b/Documentation/linux_tv/media/v4l/pixfmt.rst index 417796d39f00..81222a99f7ce 100644 --- a/Documentation/linux_tv/media/v4l/pixfmt.rst +++ b/Documentation/linux_tv/media/v4l/pixfmt.rst @@ -33,14 +33,3 @@ see also :ref:`VIDIOC_G_FBUF `.) pixfmt-013 sdr-formats pixfmt-reserved - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/planar-apis.rst b/Documentation/linux_tv/media/v4l/planar-apis.rst index db1e63bd691e..5fe2e1188230 100644 --- a/Documentation/linux_tv/media/v4l/planar-apis.rst +++ b/Documentation/linux_tv/media/v4l/planar-apis.rst @@ -59,12 +59,3 @@ Calls that distinguish between single and multi-planar APIs :ref:`VIDIOC_REQBUFS ` Will allocate multi-planar buffers as requested. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/querycap.rst b/Documentation/linux_tv/media/v4l/querycap.rst index f3fa6cb6befe..c19cce7a816f 100644 --- a/Documentation/linux_tv/media/v4l/querycap.rst +++ b/Documentation/linux_tv/media/v4l/querycap.rst @@ -32,12 +32,3 @@ specific applications to reliably identify the driver. All V4L2 drivers must support :ref:`VIDIOC_QUERYCAP`. Applications should always call this ioctl after opening the device. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/remote_controllers.rst b/Documentation/linux_tv/media/v4l/remote_controllers.rst index 07add9452be2..4b36e992f59a 100644 --- a/Documentation/linux_tv/media/v4l/remote_controllers.rst +++ b/Documentation/linux_tv/media/v4l/remote_controllers.rst @@ -42,12 +42,3 @@ Added the interface description and the RC sysfs class description. :revision: 1.0 / 2009-09-06 (*mcc*) Initial revision - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/remote_controllers_sysfs_nodes.rst b/Documentation/linux_tv/media/v4l/remote_controllers_sysfs_nodes.rst index 03d2d422d4c0..6fb944fe21fd 100644 --- a/Documentation/linux_tv/media/v4l/remote_controllers_sysfs_nodes.rst +++ b/Documentation/linux_tv/media/v4l/remote_controllers_sysfs_nodes.rst @@ -141,12 +141,3 @@ scancodes which match the filter will wake the system from e.g. suspend to RAM or power off. Otherwise the write will fail with an error. This value may be reset to 0 if the wakeup protocol is altered. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/rw.rst b/Documentation/linux_tv/media/v4l/rw.rst index beab37eccb1a..9dc58651ef02 100644 --- a/Documentation/linux_tv/media/v4l/rw.rst +++ b/Documentation/linux_tv/media/v4l/rw.rst @@ -45,12 +45,3 @@ driver must also support the :ref:`select() ` and .. [2] At the driver level :c:func:`select()` and :c:func:`poll()` are the same, and :c:func:`select()` is too important to be optional. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/sdr-formats.rst b/Documentation/linux_tv/media/v4l/sdr-formats.rst index 78c373c5b678..f863c08f1add 100644 --- a/Documentation/linux_tv/media/v4l/sdr-formats.rst +++ b/Documentation/linux_tv/media/v4l/sdr-formats.rst @@ -17,14 +17,3 @@ These formats are used for :ref:`SDR ` interface only. pixfmt-sdr-cs08 pixfmt-sdr-cs14le pixfmt-sdr-ru12le - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/selection-api-002.rst b/Documentation/linux_tv/media/v4l/selection-api-002.rst index d1b2bc3d22e5..09ca93f91bf7 100644 --- a/Documentation/linux_tv/media/v4l/selection-api-002.rst +++ b/Documentation/linux_tv/media/v4l/selection-api-002.rst @@ -26,12 +26,3 @@ Rectangles for all cropping and composing targets are defined even if the device does supports neither cropping nor composing. Their size and position will be fixed in such a case. If the device does not support scaling then the cropping and composing rectangles have the same size. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/selection-api-003.rst b/Documentation/linux_tv/media/v4l/selection-api-003.rst index 9769d87407aa..15cb3b79f12c 100644 --- a/Documentation/linux_tv/media/v4l/selection-api-003.rst +++ b/Documentation/linux_tv/media/v4l/selection-api-003.rst @@ -18,12 +18,3 @@ Selection targets See :ref:`v4l2-selection-targets` for more information. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/selection-api-004.rst b/Documentation/linux_tv/media/v4l/selection-api-004.rst index 1a8f4d09bff1..d782cd5b2117 100644 --- a/Documentation/linux_tv/media/v4l/selection-api-004.rst +++ b/Documentation/linux_tv/media/v4l/selection-api-004.rst @@ -135,12 +135,3 @@ and the height of rectangles obtained using ``V4L2_SEL_TGT_CROP`` and ``V4L2_SEL_TGT_COMPOSE`` targets. If these are not equal then the scaling is applied. The application can compute the scaling ratios using these values. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/selection-api-005.rst b/Documentation/linux_tv/media/v4l/selection-api-005.rst index 78448023a79a..94731a13efdb 100644 --- a/Documentation/linux_tv/media/v4l/selection-api-005.rst +++ b/Documentation/linux_tv/media/v4l/selection-api-005.rst @@ -32,12 +32,3 @@ struct :ref:`v4l2_selection ` provides a lot of place for future extensions. Driver developers are encouraged to implement only selection API. The former cropping API would be simulated using the new one. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/selection-api-006.rst b/Documentation/linux_tv/media/v4l/selection-api-006.rst index a7c04879cb5d..54b769e2fd73 100644 --- a/Documentation/linux_tv/media/v4l/selection-api-006.rst +++ b/Documentation/linux_tv/media/v4l/selection-api-006.rst @@ -79,14 +79,3 @@ for other devices /* computing scaling factors */ hscale = (double)compose.r.width / crop.r.width; vscale = (double)compose.r.height / crop.r.height; - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/selection-api.rst b/Documentation/linux_tv/media/v4l/selection-api.rst index 1cc3b41b8435..81ea52d785b9 100644 --- a/Documentation/linux_tv/media/v4l/selection-api.rst +++ b/Documentation/linux_tv/media/v4l/selection-api.rst @@ -14,14 +14,3 @@ API for cropping, composing and scaling selection-api-004 selection-api-005 selection-api-006 - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/selections-common.rst b/Documentation/linux_tv/media/v4l/selections-common.rst index 93efdc398fa9..69dbce4e6e47 100644 --- a/Documentation/linux_tv/media/v4l/selections-common.rst +++ b/Documentation/linux_tv/media/v4l/selections-common.rst @@ -21,14 +21,3 @@ on the two APIs. v4l2-selection-targets v4l2-selection-flags - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/standard.rst b/Documentation/linux_tv/media/v4l/standard.rst index 67e295daa054..49135e260acc 100644 --- a/Documentation/linux_tv/media/v4l/standard.rst +++ b/Documentation/linux_tv/media/v4l/standard.rst @@ -177,12 +177,3 @@ standard ioctls can be used with the given input or output. Some users are already confused by technical terms PAL, NTSC and SECAM. There is no point asking them to distinguish between B, G, D, or K when the software or hardware can do that automatically. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/streaming-par.rst b/Documentation/linux_tv/media/v4l/streaming-par.rst index 643bad8cfc1a..b07b0f0b35d4 100644 --- a/Documentation/linux_tv/media/v4l/streaming-par.rst +++ b/Documentation/linux_tv/media/v4l/streaming-par.rst @@ -31,12 +31,3 @@ devices. These ioctls are optional, drivers need not implement them. If so, they return the ``EINVAL`` error code. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/subdev-formats.rst b/Documentation/linux_tv/media/v4l/subdev-formats.rst index a13c0cba3df0..02a4b20fb1e8 100644 --- a/Documentation/linux_tv/media/v4l/subdev-formats.rst +++ b/Documentation/linux_tv/media/v4l/subdev-formats.rst @@ -11688,14 +11688,3 @@ formats. - Interleaved raw UYVY and JPEG image format with embedded meta-data used by Samsung S3C73MX camera sensors. - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/tuner.rst b/Documentation/linux_tv/media/v4l/tuner.rst index 9c98e4f64c85..23d0e00aefdd 100644 --- a/Documentation/linux_tv/media/v4l/tuner.rst +++ b/Documentation/linux_tv/media/v4l/tuner.rst @@ -80,12 +80,3 @@ a pointer to a struct :ref:`v4l2_frequency `. These ioctls are used for TV and radio devices alike. Drivers must support both ioctls when the tuner or modulator ioctls are supported, or when the device is a radio device. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/user-func.rst b/Documentation/linux_tv/media/v4l/user-func.rst index daa6fd465d30..3e0413b83a33 100644 --- a/Documentation/linux_tv/media/v4l/user-func.rst +++ b/Documentation/linux_tv/media/v4l/user-func.rst @@ -79,14 +79,3 @@ Function Reference func-read func-select func-write - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/userp.rst b/Documentation/linux_tv/media/v4l/userp.rst index 23ef4b71444d..3f4df1fd984d 100644 --- a/Documentation/linux_tv/media/v4l/userp.rst +++ b/Documentation/linux_tv/media/v4l/userp.rst @@ -112,12 +112,3 @@ Drivers implementing user pointer I/O must support the At the driver level :c:func:`select()` and :c:func:`poll()` are the same, and :c:func:`select()` is too important to be optional. The rest should be evident. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/v4l2-selection-flags.rst b/Documentation/linux_tv/media/v4l/v4l2-selection-flags.rst index d72d3fb0d057..6c3531fd0017 100644 --- a/Documentation/linux_tv/media/v4l/v4l2-selection-flags.rst +++ b/Documentation/linux_tv/media/v4l/v4l2-selection-flags.rst @@ -69,14 +69,3 @@ Selection flags - No - Yes - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/v4l2-selection-targets.rst b/Documentation/linux_tv/media/v4l/v4l2-selection-targets.rst index 781c4c713394..e9dcff094c77 100644 --- a/Documentation/linux_tv/media/v4l/v4l2-selection-targets.rst +++ b/Documentation/linux_tv/media/v4l/v4l2-selection-targets.rst @@ -133,14 +133,3 @@ of the two interfaces they are used. - Yes - No - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/v4l2.rst b/Documentation/linux_tv/media/v4l/v4l2.rst index c9ba2859ebe5..9284446e3cfa 100644 --- a/Documentation/linux_tv/media/v4l/v4l2.rst +++ b/Documentation/linux_tv/media/v4l/v4l2.rst @@ -391,12 +391,3 @@ Second draft, with corrections pointed out by Gerd Knorr. First draft, based on documentation by Bill Dirks and discussions on the V4L mailing list. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/v4l2grab-example.rst b/Documentation/linux_tv/media/v4l/v4l2grab-example.rst index 8b933d7a341a..c240f0513bee 100644 --- a/Documentation/linux_tv/media/v4l/v4l2grab-example.rst +++ b/Documentation/linux_tv/media/v4l/v4l2grab-example.rst @@ -15,14 +15,3 @@ with any V4L2 driver. :maxdepth: 1 v4l2grab.c - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/v4l2grab.c.rst b/Documentation/linux_tv/media/v4l/v4l2grab.c.rst index 6934294e61d9..817cad406c6f 100644 --- a/Documentation/linux_tv/media/v4l/v4l2grab.c.rst +++ b/Documentation/linux_tv/media/v4l/v4l2grab.c.rst @@ -167,14 +167,3 @@ file: media/v4l/v4l2grab.c return 0; } - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/video.rst b/Documentation/linux_tv/media/v4l/video.rst index b8ecc774719c..b3c2b1d59f24 100644 --- a/Documentation/linux_tv/media/v4l/video.rst +++ b/Documentation/linux_tv/media/v4l/video.rst @@ -61,14 +61,3 @@ all the output ioctls when the device has one or more outputs. perror("VIDIOC_S_INPUT"); exit(EXIT_FAILURE); } - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/videodev.rst b/Documentation/linux_tv/media/v4l/videodev.rst index 4d1f26a90a68..4826416b2ab4 100644 --- a/Documentation/linux_tv/media/v4l/videodev.rst +++ b/Documentation/linux_tv/media/v4l/videodev.rst @@ -11,14 +11,3 @@ Video For Linux Two Header File :maxdepth: 1 ../../videodev2.h - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-create-bufs.rst b/Documentation/linux_tv/media/v4l/vidioc-create-bufs.rst index efd9629e099e..0535758fec14 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-create-bufs.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-create-bufs.rst @@ -143,12 +143,3 @@ ENOMEM EINVAL The buffer type (``format.type`` field), requested I/O method (``memory``) or format (``format`` field) is not valid. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-cropcap.rst b/Documentation/linux_tv/media/v4l/vidioc-cropcap.rst index 22c4268ea54f..8391fc19126f 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-cropcap.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-cropcap.rst @@ -164,12 +164,3 @@ appropriately. The generic error codes are described at the EINVAL The struct :ref:`v4l2_cropcap ` ``type`` is invalid. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-dbg-g-chip-info.rst b/Documentation/linux_tv/media/v4l/vidioc-dbg-g-chip-info.rst index 7fc1e6b3e892..da8bd46288dc 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-dbg-g-chip-info.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-dbg-g-chip-info.rst @@ -201,12 +201,3 @@ appropriately. The generic error codes are described at the EINVAL The ``match_type`` is invalid or no device could be matched. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-dbg-g-register.rst b/Documentation/linux_tv/media/v4l/vidioc-dbg-g-register.rst index 2c5afc9a4012..c1b21f3f73f0 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-dbg-g-register.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-dbg-g-register.rst @@ -207,12 +207,3 @@ appropriately. The generic error codes are described at the EPERM Insufficient permissions. Root privileges are required to execute these ioctls. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-decoder-cmd.rst b/Documentation/linux_tv/media/v4l/vidioc-decoder-cmd.rst index 3fd1da8c1132..5f7be4ee8a51 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-decoder-cmd.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-decoder-cmd.rst @@ -269,12 +269,3 @@ EINVAL EPERM The application sent a PAUSE or RESUME command when the decoder was not running. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-dqevent.rst b/Documentation/linux_tv/media/v4l/vidioc-dqevent.rst index 509f0df19746..ed37e07bbdc8 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-dqevent.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-dqevent.rst @@ -570,12 +570,3 @@ Return Value On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-dv-timings-cap.rst b/Documentation/linux_tv/media/v4l/vidioc-dv-timings-cap.rst index dbfc5e92faf3..e852b6194f4a 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-dv-timings-cap.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-dv-timings-cap.rst @@ -248,12 +248,3 @@ Return Value On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-encoder-cmd.rst b/Documentation/linux_tv/media/v4l/vidioc-encoder-cmd.rst index b62b508c83a7..cd7cc4bfd756 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-encoder-cmd.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-encoder-cmd.rst @@ -193,12 +193,3 @@ EINVAL EPERM The application sent a PAUSE or RESUME command when the encoder was not running. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-enum-dv-timings.rst b/Documentation/linux_tv/media/v4l/vidioc-enum-dv-timings.rst index a3deae4844f5..1ff64c497ff1 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enum-dv-timings.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enum-dv-timings.rst @@ -117,12 +117,3 @@ EINVAL ENODATA Digital video presets are not supported for this input or output. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-enum-fmt.rst b/Documentation/linux_tv/media/v4l/vidioc-enum-fmt.rst index a8b162ed85a0..79162755ea75 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enum-fmt.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enum-fmt.rst @@ -161,12 +161,3 @@ appropriately. The generic error codes are described at the EINVAL The struct :ref:`v4l2_fmtdesc ` ``type`` is not supported or the ``index`` is out of bounds. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-enum-frameintervals.rst b/Documentation/linux_tv/media/v4l/vidioc-enum-frameintervals.rst index 24acbd928b9c..f7e41225e6b6 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enum-frameintervals.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enum-frameintervals.rst @@ -271,12 +271,3 @@ Return Value On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-enum-framesizes.rst b/Documentation/linux_tv/media/v4l/vidioc-enum-framesizes.rst index 1d2969220857..ef9bcdee0635 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enum-framesizes.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enum-framesizes.rst @@ -288,12 +288,3 @@ Return Value On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-enum-freq-bands.rst b/Documentation/linux_tv/media/v4l/vidioc-enum-freq-bands.rst index bc0826bec1cb..5e4a6d4a8640 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enum-freq-bands.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enum-freq-bands.rst @@ -187,12 +187,3 @@ appropriately. The generic error codes are described at the EINVAL The ``tuner`` or ``index`` is out of bounds or the ``type`` field is wrong. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-enumaudio.rst b/Documentation/linux_tv/media/v4l/vidioc-enumaudio.rst index 51d783734107..9573e54271fc 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enumaudio.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enumaudio.rst @@ -52,12 +52,3 @@ appropriately. The generic error codes are described at the EINVAL The number of the audio input is out of bounds. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-enumaudioout.rst b/Documentation/linux_tv/media/v4l/vidioc-enumaudioout.rst index 660bcee62fcf..82ffb3194ed3 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enumaudioout.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enumaudioout.rst @@ -55,12 +55,3 @@ appropriately. The generic error codes are described at the EINVAL The number of the audio output is out of bounds. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-enuminput.rst b/Documentation/linux_tv/media/v4l/vidioc-enuminput.rst index 7344777e3514..b67cae1bcafd 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enuminput.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enuminput.rst @@ -364,12 +364,3 @@ appropriately. The generic error codes are described at the EINVAL The struct :ref:`v4l2_input ` ``index`` is out of bounds. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-enumoutput.rst b/Documentation/linux_tv/media/v4l/vidioc-enumoutput.rst index de0952353ad0..8dc5f8ee2eb5 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enumoutput.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enumoutput.rst @@ -219,12 +219,3 @@ appropriately. The generic error codes are described at the EINVAL The struct :ref:`v4l2_output ` ``index`` is out of bounds. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-enumstd.rst b/Documentation/linux_tv/media/v4l/vidioc-enumstd.rst index 0f4433cefc49..098251b8be30 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-enumstd.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-enumstd.rst @@ -439,12 +439,3 @@ ENODATA may be used in addition to the main sound carrier. It is modulated in differentially encoded QPSK with a 728 kbit/s sound and data multiplexer capable of carrying two sound channels. (NICAM system) - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-expbuf.rst b/Documentation/linux_tv/media/v4l/vidioc-expbuf.rst index 04216a0d658e..a1f62a33739f 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-expbuf.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-expbuf.rst @@ -194,12 +194,3 @@ appropriately. The generic error codes are described at the EINVAL A queue is not in MMAP mode or DMABUF exporting is not supported or ``flags`` or ``type`` or ``index`` or ``plane`` fields are invalid. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-audio.rst b/Documentation/linux_tv/media/v4l/vidioc-g-audio.rst index abf441a04673..5ec052165642 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-audio.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-audio.rst @@ -160,12 +160,3 @@ appropriately. The generic error codes are described at the EINVAL No audio inputs combine with the current video input, or the number of the selected audio input is out of bounds or it does not combine. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-audioout.rst b/Documentation/linux_tv/media/v4l/vidioc-g-audioout.rst index 6bfd5b1d5428..a2a492fccaed 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-audioout.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-audioout.rst @@ -120,12 +120,3 @@ EINVAL No audio outputs combine with the current video output, or the number of the selected audio output is out of bounds or it does not combine. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-crop.rst b/Documentation/linux_tv/media/v4l/vidioc-g-crop.rst index aba0dc9b4390..1610c3fc1d93 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-crop.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-crop.rst @@ -111,12 +111,3 @@ Return Value On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-ctrl.rst b/Documentation/linux_tv/media/v4l/vidioc-g-ctrl.rst index 77a5d1aca78a..db1e7b252147 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-ctrl.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-ctrl.rst @@ -103,12 +103,3 @@ EBUSY EACCES Attempt to set a read-only control or to get a write-only control. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-dv-timings.rst b/Documentation/linux_tv/media/v4l/vidioc-g-dv-timings.rst index 2b2e154a2d1f..bd3d898acd53 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-dv-timings.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-dv-timings.rst @@ -416,14 +416,3 @@ EBUSY R'G'B' values use limited range (i.e. 16-235) as opposed to full range (i.e. 0-255). All formats defined in CEA-861 except for the 640x480p59.94 format are CE formats. - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-edid.rst b/Documentation/linux_tv/media/v4l/vidioc-g-edid.rst index 26332ceb8b94..5a72bed87cbb 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-edid.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-edid.rst @@ -158,12 +158,3 @@ appropriately. The generic error codes are described at the ``E2BIG`` The EDID data you provided is more than the hardware can handle. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-enc-index.rst b/Documentation/linux_tv/media/v4l/vidioc-g-enc-index.rst index 35df295e1809..864a347e6b1a 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-enc-index.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-enc-index.rst @@ -207,12 +207,3 @@ Return Value On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-ext-ctrls.rst b/Documentation/linux_tv/media/v4l/vidioc-g-ext-ctrls.rst index d12021c6fbb8..a85778172265 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-ext-ctrls.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-ext-ctrls.rst @@ -487,12 +487,3 @@ ENOSPC EACCES Attempt to try or set a read-only control or to get a write-only control. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-fbuf.rst b/Documentation/linux_tv/media/v4l/vidioc-g-fbuf.rst index e52361001bb9..32ce2738d598 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-fbuf.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-fbuf.rst @@ -498,12 +498,3 @@ EINVAL offset instead. If you encounter problems please discuss on the linux-media mailing list: `https://linuxtv.org/lists.php `__. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-fmt.rst b/Documentation/linux_tv/media/v4l/vidioc-g-fmt.rst index 869c7cc08035..684793a47267 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-fmt.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-fmt.rst @@ -187,12 +187,3 @@ appropriately. The generic error codes are described at the EINVAL The struct :ref:`v4l2_format ` ``type`` field is invalid or the requested buffer type not supported. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-frequency.rst b/Documentation/linux_tv/media/v4l/vidioc-g-frequency.rst index 40ef31938f79..c5f6846b498c 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-frequency.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-frequency.rst @@ -121,12 +121,3 @@ EINVAL EBUSY A hardware seek is in progress. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-input.rst b/Documentation/linux_tv/media/v4l/vidioc-g-input.rst index 1c14f7dcffeb..aae135ea2a77 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-input.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-input.rst @@ -59,12 +59,3 @@ appropriately. The generic error codes are described at the EINVAL The number of the video input is out of bounds. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-jpegcomp.rst b/Documentation/linux_tv/media/v4l/vidioc-g-jpegcomp.rst index b2da34012df6..0adc8b2e2aac 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-jpegcomp.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-jpegcomp.rst @@ -180,12 +180,3 @@ Return Value On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-modulator.rst b/Documentation/linux_tv/media/v4l/vidioc-g-modulator.rst index 2342e036850b..8b213e858b39 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-modulator.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-modulator.rst @@ -253,12 +253,3 @@ appropriately. The generic error codes are described at the EINVAL The struct :ref:`v4l2_modulator ` ``index`` is out of bounds. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-output.rst b/Documentation/linux_tv/media/v4l/vidioc-g-output.rst index 03defa561e5b..cd0646eb7539 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-output.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-output.rst @@ -61,12 +61,3 @@ appropriately. The generic error codes are described at the EINVAL The number of the video output is out of bounds, or there are no video outputs at all. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-parm.rst b/Documentation/linux_tv/media/v4l/vidioc-g-parm.rst index 73974cd938b8..0f96b95ebc0e 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-parm.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-parm.rst @@ -347,12 +347,3 @@ Return Value On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-priority.rst b/Documentation/linux_tv/media/v4l/vidioc-g-priority.rst index b241970c8aee..f3fedd201c6d 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-priority.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-priority.rst @@ -115,12 +115,3 @@ EINVAL EBUSY Another application already requested higher priority. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-selection.rst b/Documentation/linux_tv/media/v4l/vidioc-g-selection.rst index 1159b012a0a1..337ad78d9a7c 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-selection.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-selection.rst @@ -207,12 +207,3 @@ ERANGE EBUSY It is not possible to apply change of the selection rectangle at the moment. Usually because streaming is in progress. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-sliced-vbi-cap.rst b/Documentation/linux_tv/media/v4l/vidioc-g-sliced-vbi-cap.rst index ac08f606fdd8..f5052093a77a 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-sliced-vbi-cap.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-sliced-vbi-cap.rst @@ -273,12 +273,3 @@ appropriately. The generic error codes are described at the EINVAL The value in the ``type`` field is wrong. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-std.rst b/Documentation/linux_tv/media/v4l/vidioc-g-std.rst index 8cacecfb8c97..e1e3bb7fa726 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-std.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-std.rst @@ -65,12 +65,3 @@ EINVAL ENODATA Standard video timings are not supported for this input or output. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-g-tuner.rst b/Documentation/linux_tv/media/v4l/vidioc-g-tuner.rst index c5f947811746..57a14811773c 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-g-tuner.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-g-tuner.rst @@ -713,12 +713,3 @@ EINVAL future drivers should produce only the primary language in this mode. Applications should request ``MODE_LANG1_LANG2`` to record both languages or a stereo signal. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-log-status.rst b/Documentation/linux_tv/media/v4l/vidioc-log-status.rst index af89f8f2dca6..afff82efe392 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-log-status.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-log-status.rst @@ -37,12 +37,3 @@ Return Value On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-overlay.rst b/Documentation/linux_tv/media/v4l/vidioc-overlay.rst index 990907643869..41ddeea5537f 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-overlay.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-overlay.rst @@ -51,12 +51,3 @@ appropriately. The generic error codes are described at the EINVAL The overlay parameters have not been set up. See :ref:`overlay` for the necessary steps. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-prepare-buf.rst b/Documentation/linux_tv/media/v4l/vidioc-prepare-buf.rst index bf31aaaf6c76..2c88d3cedecf 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-prepare-buf.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-prepare-buf.rst @@ -58,12 +58,3 @@ EINVAL The buffer ``type`` is not supported, or the ``index`` is out of bounds, or no buffers have been allocated yet, or the ``userptr`` or ``length`` are invalid. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-qbuf.rst b/Documentation/linux_tv/media/v4l/vidioc-qbuf.rst index b51db1311e9f..88179f8019fa 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-qbuf.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-qbuf.rst @@ -147,12 +147,3 @@ EPIPE ``VIDIOC_DQBUF`` returns this on an empty capture queue for mem2mem codecs if a buffer with the ``V4L2_BUF_FLAG_LAST`` was already dequeued and no new buffers are expected to become available. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-query-dv-timings.rst b/Documentation/linux_tv/media/v4l/vidioc-query-dv-timings.rst index 0c01ed49065f..6a37b6503399 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-query-dv-timings.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-query-dv-timings.rst @@ -80,12 +80,3 @@ ENOLCK ERANGE Timings were found, but they are out of range of the hardware capabilities. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-querybuf.rst b/Documentation/linux_tv/media/v4l/vidioc-querybuf.rst index 11c9c59688ae..2fae7021b511 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-querybuf.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-querybuf.rst @@ -77,12 +77,3 @@ appropriately. The generic error codes are described at the EINVAL The buffer ``type`` is not supported, or the ``index`` is out of bounds. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-querycap.rst b/Documentation/linux_tv/media/v4l/vidioc-querycap.rst index 0776232be520..a4091b482d75 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-querycap.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-querycap.rst @@ -431,12 +431,3 @@ appropriately. The generic error codes are described at the The struct :ref:`v4l2_framebuffer ` lacks an enum :ref:`v4l2_buf_type ` field, therefore the type of overlay is implied by the driver capabilities. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-queryctrl.rst b/Documentation/linux_tv/media/v4l/vidioc-queryctrl.rst index 2c8ef053a1ab..7869ca7a04c3 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-queryctrl.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-queryctrl.rst @@ -779,12 +779,3 @@ EACCES controls after hardware detection without the trouble of reordering control arrays and indices (``EINVAL`` cannot be used to skip private controls because it would prematurely end the enumeration). - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-querystd.rst b/Documentation/linux_tv/media/v4l/vidioc-querystd.rst index de2fe176fc6d..8d6769f2b5c6 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-querystd.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-querystd.rst @@ -62,12 +62,3 @@ appropriately. The generic error codes are described at the ENODATA Standard video timings are not supported for this input or output. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-reqbufs.rst b/Documentation/linux_tv/media/v4l/vidioc-reqbufs.rst index 065ea275c0df..b5a470935ce6 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-reqbufs.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-reqbufs.rst @@ -122,12 +122,3 @@ appropriately. The generic error codes are described at the EINVAL The buffer type (``type`` field) or the requested I/O method (``memory``) is not supported. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-s-hw-freq-seek.rst b/Documentation/linux_tv/media/v4l/vidioc-s-hw-freq-seek.rst index 68c96236806d..4789c5b74a0a 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-s-hw-freq-seek.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-s-hw-freq-seek.rst @@ -176,12 +176,3 @@ ENODATA EBUSY Another hardware seek is already in progress. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-streamon.rst b/Documentation/linux_tv/media/v4l/vidioc-streamon.rst index 960c5965c7a6..c3ea38c6cb5b 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-streamon.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-streamon.rst @@ -100,12 +100,3 @@ EPIPE ENOLINK The driver implements Media Controller interface and the pipeline link configuration is invalid. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-interval.rst b/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-interval.rst index 8c5298175ba5..d332897b30e8 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-interval.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-interval.rst @@ -150,12 +150,3 @@ EINVAL ``pad`` references a non-existing pad, one of the ``code``, ``width`` or ``height`` fields are invalid for the given pad or the ``index`` field is out of bounds. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-size.rst b/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-size.rst index 5ddb766f4a16..0f901d815ca5 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-size.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-frame-size.rst @@ -159,12 +159,3 @@ EINVAL :ref:`v4l2_subdev_frame_size_enum ` ``pad`` references a non-existing pad, the ``code`` is invalid for the given pad or the ``index`` field is out of bounds. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-mbus-code.rst b/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-mbus-code.rst index 13d466c2a4e1..bc8e07912d81 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-mbus-code.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subdev-enum-mbus-code.rst @@ -112,12 +112,3 @@ EINVAL :ref:`v4l2_subdev_mbus_code_enum ` ``pad`` references a non-existing pad, or the ``index`` field is out of bounds. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-crop.rst b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-crop.rst index 88416ba28d86..a4cc5f8ebf5b 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-crop.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-crop.rst @@ -134,12 +134,3 @@ EINVAL references a non-existing pad, the ``which`` field references a non-existing format, or cropping is not supported on the given subdev pad. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-fmt.rst b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-fmt.rst index b4d109943fd2..6afa4fccb9ba 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-fmt.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-fmt.rst @@ -170,12 +170,3 @@ Return Value On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-frame-interval.rst b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-frame-interval.rst index 9504e8b5de8a..3c45d4b28f43 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-frame-interval.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-frame-interval.rst @@ -120,12 +120,3 @@ EINVAL :ref:`v4l2_subdev_frame_interval ` ``pad`` references a non-existing pad, or the pad doesn't support frame intervals. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-selection.rst b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-selection.rst index d95b5431004c..738131619a4d 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subdev-g-selection.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subdev-g-selection.rst @@ -142,12 +142,3 @@ EINVAL ``pad`` references a non-existing pad, the ``which`` field references a non-existing format, or the selection target is not supported on the given subdev pad. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/vidioc-subscribe-event.rst b/Documentation/linux_tv/media/v4l/vidioc-subscribe-event.rst index a127622d47b8..8323386c93f8 100644 --- a/Documentation/linux_tv/media/v4l/vidioc-subscribe-event.rst +++ b/Documentation/linux_tv/media/v4l/vidioc-subscribe-event.rst @@ -133,12 +133,3 @@ Return Value On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter. - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/media/v4l/yuv-formats.rst b/Documentation/linux_tv/media/v4l/yuv-formats.rst index 2592d5b8527d..3334ea445657 100644 --- a/Documentation/linux_tv/media/v4l/yuv-formats.rst +++ b/Documentation/linux_tv/media/v4l/yuv-formats.rst @@ -53,14 +53,3 @@ to brightness information. pixfmt-nv16m pixfmt-nv24 pixfmt-m420 - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/net.h.rst b/Documentation/linux_tv/net.h.rst index c0a0e9310333..4b01cefdb0b7 100644 --- a/Documentation/linux_tv/net.h.rst +++ b/Documentation/linux_tv/net.h.rst @@ -57,14 +57,3 @@ file: net.h #endif /*_DVBNET_H_*/ - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/video.h.rst b/Documentation/linux_tv/video.h.rst index b332a02b8fd6..4be16680ba01 100644 --- a/Documentation/linux_tv/video.h.rst +++ b/Documentation/linux_tv/video.h.rst @@ -278,14 +278,3 @@ file: video.h #define VIDEO_TRY_COMMAND _IOWR('o', 60, struct video_command) #endif /* _UAPI_DVBVIDEO_H_ */ - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/Documentation/linux_tv/videodev2.h.rst b/Documentation/linux_tv/videodev2.h.rst index 78f19aff04a7..bd433ab201cc 100644 --- a/Documentation/linux_tv/videodev2.h.rst +++ b/Documentation/linux_tv/videodev2.h.rst @@ -2298,14 +2298,3 @@ file: videodev2.h #define BASE_VIDIOC_PRIVATE 192 /* 192-255 are private */ #endif /* _UAPI__LINUX_VIDEODEV2_H */ - - - - -.. ------------------------------------------------------------------------------ -.. This file was automatically converted from DocBook-XML with the dbxml -.. library (https://github.com/return42/sphkerneldoc). The origin XML comes -.. from the linux kernel, refer to: -.. -.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook -.. ------------------------------------------------------------------------------ diff --git a/scripts/kernel-doc b/scripts/kernel-doc old mode 100644 new mode 100755 -- cgit v1.2.3-71-gd317 From cda2c65f981d0c29805fd01ffce441c650ffe6cf Mon Sep 17 00:00:00 2001 From: James Hogan Date: Fri, 24 Jun 2016 23:42:24 +0100 Subject: kbuild: Remove stale asm-generic wrappers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a header file is removed from generic-y (often accompanied by the addition of an arch specific header), the generated wrapper file will persist, and in some cases may still take precedence over the new arch header. For example commit f1fe2d21f4e1 ("MIPS: Add definitions for extended context") removed ucontext.h from generic-y in arch/mips/include/asm/, and added an arch/mips/include/uapi/asm/ucontext.h. The continued use of the wrapper when reusing a dirty build tree resulted in build failures in arch/mips/kernel/signal.c: arch/mips/kernel/signal.c: In function ‘sc_to_extcontext’: arch/mips/kernel/signal.c:142:12: error: ‘struct ucontext’ has no member named ‘uc_extcontext’ return &uc->uc_extcontext; ^ Fix by detecting and removing wrapper headers in generated header directories that do not correspond to a filename in generic-y, genhdr-y, or the newly introduced generated-y. Reported-by: Jacek Anaszewski Reported-by: Hauke Mehrtens Reported-by: Heinrich Schuchardt Signed-off-by: James Hogan Acked-by: Arnd Bergmann Acked-by: Florian Fainelli Cc: linux-arch@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: Paul Burton Cc: linux-kbuild@vger.kernel.org Cc: Ralf Baechle Cc: Michal Marek Link: http://lkml.kernel.org/r/1466808144-23209-3-git-send-email-james.hogan@imgtec.com Signed-off-by: Thomas Gleixner --- scripts/Makefile.asm-generic | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/Makefile.asm-generic b/scripts/Makefile.asm-generic index 045e0098e962..e4d017d53819 100644 --- a/scripts/Makefile.asm-generic +++ b/scripts/Makefile.asm-generic @@ -13,11 +13,26 @@ include scripts/Kbuild.include # Create output directory if not already present _dummy := $(shell [ -d $(obj) ] || mkdir -p $(obj)) +# Stale wrappers when the corresponding files are removed from generic-y +# need removing. +generated-y := $(generic-y) $(genhdr-y) $(generated-y) +all-files := $(patsubst %, $(obj)/%, $(generated-y)) +old-headers := $(wildcard $(obj)/*.h) +unwanted := $(filter-out $(all-files),$(old-headers)) + quiet_cmd_wrap = WRAP $@ cmd_wrap = echo "\#include " >$@ -all: $(patsubst %, $(obj)/%, $(generic-y)) +quiet_cmd_remove = REMOVE $(unwanted) +cmd_remove = rm -f $(unwanted) + +all: $(patsubst %, $(obj)/%, $(generic-y)) FORCE + $(if $(unwanted),$(call cmd,remove),) @: $(obj)/%.h: $(call cmd,wrap) + +PHONY += FORCE +.PHONY: $(PHONY) +FORCE: ; -- cgit v1.2.3-71-gd317 From 7a9eb20666317794d0279843fbd091af93907780 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 3 Jun 2016 18:06:47 -0700 Subject: pmem: kill __pmem address space The __pmem address space was meant to annotate codepaths that touch persistent memory and need to coordinate a call to wmb_pmem(). Now that wmb_pmem() is gone, there is little need to keep this annotation. Cc: Christoph Hellwig Cc: Ross Zwisler Signed-off-by: Dan Williams --- Documentation/filesystems/Locking | 2 +- arch/powerpc/sysdev/axonram.c | 4 +-- arch/x86/include/asm/pmem.h | 41 ++++++++++------------- drivers/acpi/nfit.h | 2 +- drivers/block/brd.c | 4 +-- drivers/nvdimm/pmem.c | 6 ++-- drivers/nvdimm/pmem.h | 4 +-- drivers/s390/block/dcssblk.c | 6 ++-- fs/dax.c | 6 ++-- include/linux/blkdev.h | 6 ++-- include/linux/compiler.h | 2 -- include/linux/nd.h | 2 +- include/linux/pmem.h | 70 ++++++++++----------------------------- scripts/checkpatch.pl | 1 - tools/testing/nvdimm/pmem-dax.c | 2 +- 15 files changed, 56 insertions(+), 102 deletions(-) (limited to 'scripts') diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 75eea7ce3d7c..d9c37ec4c760 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking @@ -395,7 +395,7 @@ prototypes: int (*release) (struct gendisk *, fmode_t); int (*ioctl) (struct block_device *, fmode_t, unsigned, unsigned long); int (*compat_ioctl) (struct block_device *, fmode_t, unsigned, unsigned long); - int (*direct_access) (struct block_device *, sector_t, void __pmem **, + int (*direct_access) (struct block_device *, sector_t, void **, unsigned long *); int (*media_changed) (struct gendisk *); void (*unlock_native_capacity) (struct gendisk *); diff --git a/arch/powerpc/sysdev/axonram.c b/arch/powerpc/sysdev/axonram.c index ff75d70f7285..a87489d007dc 100644 --- a/arch/powerpc/sysdev/axonram.c +++ b/arch/powerpc/sysdev/axonram.c @@ -143,12 +143,12 @@ axon_ram_make_request(struct request_queue *queue, struct bio *bio) */ static long axon_ram_direct_access(struct block_device *device, sector_t sector, - void __pmem **kaddr, pfn_t *pfn, long size) + void **kaddr, pfn_t *pfn, long size) { struct axon_ram_bank *bank = device->bd_disk->private_data; loff_t offset = (loff_t)sector << AXON_RAM_SECTOR_SHIFT; - *kaddr = (void __pmem __force *) bank->io_addr + offset; + *kaddr = (void *) bank->io_addr + offset; *pfn = phys_to_pfn_t(bank->ph_addr + offset, PFN_DEV); return bank->size - offset; } diff --git a/arch/x86/include/asm/pmem.h b/arch/x86/include/asm/pmem.h index a8cf2a6b14d9..643eba42d620 100644 --- a/arch/x86/include/asm/pmem.h +++ b/arch/x86/include/asm/pmem.h @@ -28,10 +28,9 @@ * Copy data to persistent memory media via non-temporal stores so that * a subsequent pmem driver flush operation will drain posted write queues. */ -static inline void arch_memcpy_to_pmem(void __pmem *dst, const void *src, - size_t n) +static inline void arch_memcpy_to_pmem(void *dst, const void *src, size_t n) { - int unwritten; + int rem; /* * We are copying between two kernel buffers, if @@ -39,19 +38,17 @@ static inline void arch_memcpy_to_pmem(void __pmem *dst, const void *src, * fault) we would have already reported a general protection fault * before the WARN+BUG. */ - unwritten = __copy_from_user_inatomic_nocache((void __force *) dst, - (void __user *) src, n); - if (WARN(unwritten, "%s: fault copying %p <- %p unwritten: %d\n", - __func__, dst, src, unwritten)) + rem = __copy_from_user_inatomic_nocache(dst, (void __user *) src, n); + if (WARN(rem, "%s: fault copying %p <- %p unwritten: %d\n", + __func__, dst, src, rem)) BUG(); } -static inline int arch_memcpy_from_pmem(void *dst, const void __pmem *src, - size_t n) +static inline int arch_memcpy_from_pmem(void *dst, const void *src, size_t n) { if (static_cpu_has(X86_FEATURE_MCE_RECOVERY)) - return memcpy_mcsafe(dst, (void __force *) src, n); - memcpy(dst, (void __force *) src, n); + return memcpy_mcsafe(dst, src, n); + memcpy(dst, src, n); return 0; } @@ -63,15 +60,14 @@ static inline int arch_memcpy_from_pmem(void *dst, const void __pmem *src, * Write back a cache range using the CLWB (cache line write back) * instruction. */ -static inline void arch_wb_cache_pmem(void __pmem *addr, size_t size) +static inline void arch_wb_cache_pmem(void *addr, size_t size) { u16 x86_clflush_size = boot_cpu_data.x86_clflush_size; unsigned long clflush_mask = x86_clflush_size - 1; - void *vaddr = (void __force *)addr; - void *vend = vaddr + size; + void *vend = addr + size; void *p; - for (p = (void *)((unsigned long)vaddr & ~clflush_mask); + for (p = (void *)((unsigned long)addr & ~clflush_mask); p < vend; p += x86_clflush_size) clwb(p); } @@ -93,14 +89,13 @@ static inline bool __iter_needs_pmem_wb(struct iov_iter *i) * * Copy data from the iterator 'i' to the PMEM buffer starting at 'addr'. */ -static inline size_t arch_copy_from_iter_pmem(void __pmem *addr, size_t bytes, +static inline size_t arch_copy_from_iter_pmem(void *addr, size_t bytes, struct iov_iter *i) { - void *vaddr = (void __force *)addr; size_t len; /* TODO: skip the write-back by always using non-temporal stores */ - len = copy_from_iter_nocache(vaddr, bytes, i); + len = copy_from_iter_nocache(addr, bytes, i); if (__iter_needs_pmem_wb(i)) arch_wb_cache_pmem(addr, bytes); @@ -115,17 +110,15 @@ static inline size_t arch_copy_from_iter_pmem(void __pmem *addr, size_t bytes, * * Write zeros into the memory range starting at 'addr' for 'size' bytes. */ -static inline void arch_clear_pmem(void __pmem *addr, size_t size) +static inline void arch_clear_pmem(void *addr, size_t size) { - void *vaddr = (void __force *)addr; - - memset(vaddr, 0, size); + memset(addr, 0, size); arch_wb_cache_pmem(addr, size); } -static inline void arch_invalidate_pmem(void __pmem *addr, size_t size) +static inline void arch_invalidate_pmem(void *addr, size_t size) { - clflush_cache_range((void __force *) addr, size); + clflush_cache_range(addr, size); } #endif /* CONFIG_ARCH_HAS_PMEM_API */ #endif /* __ASM_X86_PMEM_H__ */ diff --git a/drivers/acpi/nfit.h b/drivers/acpi/nfit.h index 9fda77cf81da..80fb2c0ac8bf 100644 --- a/drivers/acpi/nfit.h +++ b/drivers/acpi/nfit.h @@ -164,7 +164,7 @@ enum nd_blk_mmio_selector { struct nd_blk_addr { union { void __iomem *base; - void __pmem *aperture; + void *aperture; }; }; diff --git a/drivers/block/brd.c b/drivers/block/brd.c index c04bd9bc39fd..5f1fe4e6208d 100644 --- a/drivers/block/brd.c +++ b/drivers/block/brd.c @@ -381,7 +381,7 @@ static int brd_rw_page(struct block_device *bdev, sector_t sector, #ifdef CONFIG_BLK_DEV_RAM_DAX static long brd_direct_access(struct block_device *bdev, sector_t sector, - void __pmem **kaddr, pfn_t *pfn, long size) + void **kaddr, pfn_t *pfn, long size) { struct brd_device *brd = bdev->bd_disk->private_data; struct page *page; @@ -391,7 +391,7 @@ static long brd_direct_access(struct block_device *bdev, sector_t sector, page = brd_insert_page(brd, sector); if (!page) return -ENOSPC; - *kaddr = (void __pmem *)page_address(page); + *kaddr = page_address(page); *pfn = page_to_pfn_t(page); return PAGE_SIZE; diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c index 8bfc6acc2e43..7251b4b6da84 100644 --- a/drivers/nvdimm/pmem.c +++ b/drivers/nvdimm/pmem.c @@ -74,7 +74,7 @@ static int pmem_do_bvec(struct pmem_device *pmem, struct page *page, bool bad_pmem = false; void *mem = kmap_atomic(page); phys_addr_t pmem_off = sector * 512 + pmem->data_offset; - void __pmem *pmem_addr = pmem->virt_addr + pmem_off; + void *pmem_addr = pmem->virt_addr + pmem_off; if (unlikely(is_bad_pmem(&pmem->bb, sector, len))) bad_pmem = true; @@ -173,7 +173,7 @@ static int pmem_rw_page(struct block_device *bdev, sector_t sector, /* see "strong" declaration in tools/testing/nvdimm/pmem-dax.c */ __weak long pmem_direct_access(struct block_device *bdev, sector_t sector, - void __pmem **kaddr, pfn_t *pfn, long size) + void **kaddr, pfn_t *pfn, long size) { struct pmem_device *pmem = bdev->bd_queue->queuedata; resource_size_t offset = sector * 512 + pmem->data_offset; @@ -284,7 +284,7 @@ static int pmem_attach_disk(struct device *dev, if (IS_ERR(addr)) return PTR_ERR(addr); - pmem->virt_addr = (void __pmem *) addr; + pmem->virt_addr = addr; blk_queue_write_cache(q, true, true); blk_queue_make_request(q, pmem_make_request); diff --git a/drivers/nvdimm/pmem.h b/drivers/nvdimm/pmem.h index c48d4e3aa346..b4ee4f71b4a1 100644 --- a/drivers/nvdimm/pmem.h +++ b/drivers/nvdimm/pmem.h @@ -6,7 +6,7 @@ #include long pmem_direct_access(struct block_device *bdev, sector_t sector, - void __pmem **kaddr, pfn_t *pfn, long size); + void **kaddr, pfn_t *pfn, long size); /* this definition is in it's own header for tools/testing/nvdimm to consume */ struct pmem_device { /* One contiguous memory region per device */ @@ -14,7 +14,7 @@ struct pmem_device { /* when non-zero this device is hosting a 'pfn' instance */ phys_addr_t data_offset; u64 pfn_flags; - void __pmem *virt_addr; + void *virt_addr; /* immutable base size of the namespace */ size_t size; /* trim size when namespace capacity has been section aligned */ diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c index bed53c46dd90..023c5c975dc0 100644 --- a/drivers/s390/block/dcssblk.c +++ b/drivers/s390/block/dcssblk.c @@ -31,7 +31,7 @@ static void dcssblk_release(struct gendisk *disk, fmode_t mode); static blk_qc_t dcssblk_make_request(struct request_queue *q, struct bio *bio); static long dcssblk_direct_access(struct block_device *bdev, sector_t secnum, - void __pmem **kaddr, pfn_t *pfn, long size); + void **kaddr, pfn_t *pfn, long size); static char dcssblk_segments[DCSSBLK_PARM_LEN] = "\0"; @@ -884,7 +884,7 @@ fail: static long dcssblk_direct_access (struct block_device *bdev, sector_t secnum, - void __pmem **kaddr, pfn_t *pfn, long size) + void **kaddr, pfn_t *pfn, long size) { struct dcssblk_dev_info *dev_info; unsigned long offset, dev_sz; @@ -894,7 +894,7 @@ dcssblk_direct_access (struct block_device *bdev, sector_t secnum, return -ENODEV; dev_sz = dev_info->end - dev_info->start; offset = secnum * 512; - *kaddr = (void __pmem *) (dev_info->start + offset); + *kaddr = (void *) dev_info->start + offset; *pfn = __pfn_to_pfn_t(PFN_DOWN(dev_info->start + offset), PFN_DEV); return dev_sz - offset; diff --git a/fs/dax.c b/fs/dax.c index 434f421da660..c8312f6441bc 100644 --- a/fs/dax.c +++ b/fs/dax.c @@ -75,13 +75,13 @@ static long dax_map_atomic(struct block_device *bdev, struct blk_dax_ctl *dax) struct request_queue *q = bdev->bd_queue; long rc = -EIO; - dax->addr = (void __pmem *) ERR_PTR(-EIO); + dax->addr = ERR_PTR(-EIO); if (blk_queue_enter(q, true) != 0) return rc; rc = bdev_direct_access(bdev, dax); if (rc < 0) { - dax->addr = (void __pmem *) ERR_PTR(rc); + dax->addr = ERR_PTR(rc); blk_queue_exit(q); return rc; } @@ -152,7 +152,7 @@ static ssize_t dax_io(struct inode *inode, struct iov_iter *iter, int rw = iov_iter_rw(iter), rc; long map_len = 0; struct blk_dax_ctl dax = { - .addr = (void __pmem *) ERR_PTR(-EIO), + .addr = ERR_PTR(-EIO), }; unsigned blkbits = inode->i_blkbits; sector_t file_blks = (i_size_read(inode) + (1 << blkbits) - 1) diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 3d9cf326574f..fde908b2836b 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -1659,7 +1659,7 @@ static inline bool integrity_req_gap_front_merge(struct request *req, */ struct blk_dax_ctl { sector_t sector; - void __pmem *addr; + void *addr; long size; pfn_t pfn; }; @@ -1670,8 +1670,8 @@ struct block_device_operations { int (*rw_page)(struct block_device *, sector_t, struct page *, int rw); int (*ioctl) (struct block_device *, fmode_t, unsigned, unsigned long); int (*compat_ioctl) (struct block_device *, fmode_t, unsigned, unsigned long); - long (*direct_access)(struct block_device *, sector_t, void __pmem **, - pfn_t *, long); + long (*direct_access)(struct block_device *, sector_t, void **, pfn_t *, + long); unsigned int (*check_events) (struct gendisk *disk, unsigned int clearing); /* ->media_changed() is DEPRECATED, use ->check_events() instead */ diff --git a/include/linux/compiler.h b/include/linux/compiler.h index 793c0829e3a3..b966974938ed 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@ -17,7 +17,6 @@ # define __release(x) __context__(x,-1) # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0) # define __percpu __attribute__((noderef, address_space(3))) -# define __pmem __attribute__((noderef, address_space(5))) #ifdef CONFIG_SPARSE_RCU_POINTER # define __rcu __attribute__((noderef, address_space(4))) #else /* CONFIG_SPARSE_RCU_POINTER */ @@ -45,7 +44,6 @@ extern void __chk_io_ptr(const volatile void __iomem *); # define __cond_lock(x,c) (c) # define __percpu # define __rcu -# define __pmem # define __private # define ACCESS_PRIVATE(p, member) ((p)->member) #endif /* __CHECKER__ */ diff --git a/include/linux/nd.h b/include/linux/nd.h index 1ecd64643512..f1ea426d6a5e 100644 --- a/include/linux/nd.h +++ b/include/linux/nd.h @@ -68,7 +68,7 @@ struct nd_namespace_io { struct nd_namespace_common common; struct resource res; resource_size_t size; - void __pmem *addr; + void *addr; struct badblocks bb; }; diff --git a/include/linux/pmem.h b/include/linux/pmem.h index 9e3ea94b8157..e856c2cb0fe8 100644 --- a/include/linux/pmem.h +++ b/include/linux/pmem.h @@ -26,37 +26,35 @@ * calling these symbols with arch_has_pmem_api() and redirect to the * implementation in asm/pmem.h. */ -static inline void arch_memcpy_to_pmem(void __pmem *dst, const void *src, - size_t n) +static inline void arch_memcpy_to_pmem(void *dst, const void *src, size_t n) { BUG(); } -static inline int arch_memcpy_from_pmem(void *dst, const void __pmem *src, - size_t n) +static inline int arch_memcpy_from_pmem(void *dst, const void *src, size_t n) { BUG(); return -EFAULT; } -static inline size_t arch_copy_from_iter_pmem(void __pmem *addr, size_t bytes, +static inline size_t arch_copy_from_iter_pmem(void *addr, size_t bytes, struct iov_iter *i) { BUG(); return 0; } -static inline void arch_clear_pmem(void __pmem *addr, size_t size) +static inline void arch_clear_pmem(void *addr, size_t size) { BUG(); } -static inline void arch_wb_cache_pmem(void __pmem *addr, size_t size) +static inline void arch_wb_cache_pmem(void *addr, size_t size) { BUG(); } -static inline void arch_invalidate_pmem(void __pmem *addr, size_t size) +static inline void arch_invalidate_pmem(void *addr, size_t size) { BUG(); } @@ -67,13 +65,6 @@ static inline bool arch_has_pmem_api(void) return IS_ENABLED(CONFIG_ARCH_HAS_PMEM_API); } -static inline int default_memcpy_from_pmem(void *dst, void __pmem const *src, - size_t size) -{ - memcpy(dst, (void __force *) src, size); - return 0; -} - /* * memcpy_from_pmem - read from persistent memory with error handling * @dst: destination buffer @@ -82,40 +73,13 @@ static inline int default_memcpy_from_pmem(void *dst, void __pmem const *src, * * Returns 0 on success negative error code on failure. */ -static inline int memcpy_from_pmem(void *dst, void __pmem const *src, - size_t size) +static inline int memcpy_from_pmem(void *dst, void const *src, size_t size) { if (arch_has_pmem_api()) return arch_memcpy_from_pmem(dst, src, size); else - return default_memcpy_from_pmem(dst, src, size); -} - -/* - * These defaults seek to offer decent performance and minimize the - * window between i/o completion and writes being durable on media. - * However, it is undefined / architecture specific whether - * ARCH_MEMREMAP_PMEM + default_memcpy_to_pmem is sufficient for - * making data durable relative to i/o completion. - */ -static inline void default_memcpy_to_pmem(void __pmem *dst, const void *src, - size_t size) -{ - memcpy((void __force *) dst, src, size); -} - -static inline size_t default_copy_from_iter_pmem(void __pmem *addr, - size_t bytes, struct iov_iter *i) -{ - return copy_from_iter_nocache((void __force *)addr, bytes, i); -} - -static inline void default_clear_pmem(void __pmem *addr, size_t size) -{ - if (size == PAGE_SIZE && ((unsigned long)addr & ~PAGE_MASK) == 0) - clear_page((void __force *)addr); - else - memset((void __force *)addr, 0, size); + memcpy(dst, src, size); + return 0; } /** @@ -130,12 +94,12 @@ static inline void default_clear_pmem(void __pmem *addr, size_t size) * data may still reside in cpu or platform buffers, so this operation * must be followed by a blkdev_issue_flush() on the pmem block device. */ -static inline void memcpy_to_pmem(void __pmem *dst, const void *src, size_t n) +static inline void memcpy_to_pmem(void *dst, const void *src, size_t n) { if (arch_has_pmem_api()) arch_memcpy_to_pmem(dst, src, n); else - default_memcpy_to_pmem(dst, src, n); + memcpy(dst, src, n); } /** @@ -147,12 +111,12 @@ static inline void memcpy_to_pmem(void __pmem *dst, const void *src, size_t n) * Copy data from the iterator 'i' to the PMEM buffer starting at 'addr'. * See blkdev_issue_flush() note for memcpy_to_pmem(). */ -static inline size_t copy_from_iter_pmem(void __pmem *addr, size_t bytes, +static inline size_t copy_from_iter_pmem(void *addr, size_t bytes, struct iov_iter *i) { if (arch_has_pmem_api()) return arch_copy_from_iter_pmem(addr, bytes, i); - return default_copy_from_iter_pmem(addr, bytes, i); + return copy_from_iter_nocache(addr, bytes, i); } /** @@ -163,12 +127,12 @@ static inline size_t copy_from_iter_pmem(void __pmem *addr, size_t bytes, * Write zeros into the memory range starting at 'addr' for 'size' bytes. * See blkdev_issue_flush() note for memcpy_to_pmem(). */ -static inline void clear_pmem(void __pmem *addr, size_t size) +static inline void clear_pmem(void *addr, size_t size) { if (arch_has_pmem_api()) arch_clear_pmem(addr, size); else - default_clear_pmem(addr, size); + memset(addr, 0, size); } /** @@ -179,7 +143,7 @@ static inline void clear_pmem(void __pmem *addr, size_t size) * For platforms that support clearing poison this flushes any poisoned * ranges out of the cache */ -static inline void invalidate_pmem(void __pmem *addr, size_t size) +static inline void invalidate_pmem(void *addr, size_t size) { if (arch_has_pmem_api()) arch_invalidate_pmem(addr, size); @@ -193,7 +157,7 @@ static inline void invalidate_pmem(void __pmem *addr, size_t size) * Write back the processor cache range starting at 'addr' for 'size' bytes. * See blkdev_issue_flush() note for memcpy_to_pmem(). */ -static inline void wb_cache_pmem(void __pmem *addr, size_t size) +static inline void wb_cache_pmem(void *addr, size_t size) { if (arch_has_pmem_api()) arch_wb_cache_pmem(addr, size); diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 4904ced676d4..24a08363995a 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -313,7 +313,6 @@ our $Sparse = qr{ __kernel| __force| __iomem| - __pmem| __must_check| __init_refok| __kprobes| diff --git a/tools/testing/nvdimm/pmem-dax.c b/tools/testing/nvdimm/pmem-dax.c index 1e0218ce6a8b..c9b8c48f85fc 100644 --- a/tools/testing/nvdimm/pmem-dax.c +++ b/tools/testing/nvdimm/pmem-dax.c @@ -16,7 +16,7 @@ #include long pmem_direct_access(struct block_device *bdev, sector_t sector, - void __pmem **kaddr, pfn_t *pfn, long size) + void **kaddr, pfn_t *pfn, long size) { struct pmem_device *pmem = bdev->bd_queue->queuedata; resource_size_t offset = sector * 512 + pmem->data_offset; -- cgit v1.2.3-71-gd317 From af1e45e6ab5f0f32a0b68a0d4bb28af7907c6192 Mon Sep 17 00:00:00 2001 From: Todd Brandt Date: Fri, 15 Jul 2016 23:34:14 +0200 Subject: PM / tools: scripts: AnalyzeSuspend v4.2 Update AnalyzeSuspend to v4.2: - kprobe support for function tracing - config file support in lieu of command line options - advanced callgraph support for function debug - dev mode for monitoring common sources of delay, e.g. msleep, udelay - many bug fixes and formatting upgrades Signed-off-by: Todd Brandt Signed-off-by: Rafael J. Wysocki --- scripts/analyze_suspend.py | 3641 ++++++++++++++++++++++++++++++-------------- 1 file changed, 2474 insertions(+), 1167 deletions(-) (limited to 'scripts') diff --git a/scripts/analyze_suspend.py b/scripts/analyze_suspend.py index 93e1fd40f430..a0ba48fa2c5e 100755 --- a/scripts/analyze_suspend.py +++ b/scripts/analyze_suspend.py @@ -19,6 +19,17 @@ # Authors: # Todd Brandt # +# Links: +# Home Page +# https://01.org/suspendresume +# Source repo +# https://github.com/01org/suspendresume +# Documentation +# Getting Started +# https://01.org/suspendresume/documentation/getting-started +# Command List: +# https://01.org/suspendresume/documentation/command-list +# # Description: # This tool is designed to assist kernel and OS developers in optimizing # their linux stack's suspend/resume time. Using a kernel image built @@ -35,6 +46,8 @@ # CONFIG_FTRACE=y # CONFIG_FUNCTION_TRACER=y # CONFIG_FUNCTION_GRAPH_TRACER=y +# CONFIG_KPROBES=y +# CONFIG_KPROBES_ON_FTRACE=y # # For kernel versions older than 3.15: # The following additional kernel parameters are required: @@ -52,6 +65,7 @@ import re import platform from datetime import datetime import struct +import ConfigParser # ----------------- CLASSES -------------------- @@ -60,8 +74,15 @@ import struct # A global, single-instance container used to # store system values and test parameters class SystemValues: - version = 3.0 + ansi = False + version = '4.2' verbose = False + addlogs = False + mindevlen = 0.001 + mincglen = 1.0 + srgap = 0 + cgexp = False + outdir = '' testdir = '.' tpath = '/sys/kernel/debug/tracing/' fpdtpath = '/sys/firmware/acpi/tables/FPDT' @@ -71,26 +92,21 @@ class SystemValues: 'device_pm_callback_end', 'device_pm_callback_start' ] - modename = { - 'freeze': 'Suspend-To-Idle (S0)', - 'standby': 'Power-On Suspend (S1)', - 'mem': 'Suspend-to-RAM (S3)', - 'disk': 'Suspend-to-disk (S4)' - } + testcommand = '' mempath = '/dev/mem' powerfile = '/sys/power/state' suspendmode = 'mem' hostname = 'localhost' prefix = 'test' teststamp = '' + dmesgstart = 0.0 dmesgfile = '' ftracefile = '' htmlfile = '' + embedded = False rtcwake = False rtcwaketime = 10 rtcpath = '' - android = False - adb = 'adb' devicefilter = [] stamp = 0 execcount = 1 @@ -98,16 +114,90 @@ class SystemValues: usecallgraph = False usetraceevents = False usetraceeventsonly = False + usetracemarkers = True + usekprobes = True + usedevsrc = False notestrun = False - altdevname = dict() + devprops = dict() postresumetime = 0 + devpropfmt = '# Device Properties: .*' tracertypefmt = '# tracer: (?P.*)' firmwarefmt = '# fwsuspend (?P[0-9]*) fwresume (?P[0-9]*)$' postresumefmt = '# post resume time (?P[0-9]*)$' stampfmt = '# suspend-(?P[0-9]{2})(?P[0-9]{2})(?P[0-9]{2})-'+\ '(?P[0-9]{2})(?P[0-9]{2})(?P[0-9]{2})'+\ ' (?P.*) (?P.*) (?P.*)$' + kprobecolor = 'rgba(204,204,204,0.5)' + synccolor = 'rgba(204,204,204,0.5)' + debugfuncs = [] + tracefuncs = { + 'sys_sync': dict(), + 'pm_prepare_console': dict(), + 'pm_notifier_call_chain': dict(), + 'freeze_processes': dict(), + 'freeze_kernel_threads': dict(), + 'pm_restrict_gfp_mask': dict(), + 'acpi_suspend_begin': dict(), + 'suspend_console': dict(), + 'acpi_pm_prepare': dict(), + 'syscore_suspend': dict(), + 'arch_enable_nonboot_cpus_end': dict(), + 'syscore_resume': dict(), + 'acpi_pm_finish': dict(), + 'resume_console': dict(), + 'acpi_pm_end': dict(), + 'pm_restore_gfp_mask': dict(), + 'thaw_processes': dict(), + 'pm_restore_console': dict(), + 'CPU_OFF': { + 'func':'_cpu_down', + 'args_x86_64': {'cpu':'%di:s32'}, + 'format': 'CPU_OFF[{cpu}]', + 'mask': 'CPU_.*_DOWN' + }, + 'CPU_ON': { + 'func':'_cpu_up', + 'args_x86_64': {'cpu':'%di:s32'}, + 'format': 'CPU_ON[{cpu}]', + 'mask': 'CPU_.*_UP' + }, + } + dev_tracefuncs = { + # general wait/delay/sleep + 'msleep': { 'args_x86_64': {'time':'%di:s32'} }, + 'udelay': { 'func':'__const_udelay', 'args_x86_64': {'loops':'%di:s32'} }, + 'acpi_os_stall': dict(), + # ACPI + 'acpi_resume_power_resources': dict(), + 'acpi_ps_parse_aml': dict(), + # filesystem + 'ext4_sync_fs': dict(), + # ATA + 'ata_eh_recover': { 'args_x86_64': {'port':'+36(%di):s32'} }, + # i915 + 'i915_gem_restore_gtt_mappings': dict(), + 'intel_opregion_setup': dict(), + 'intel_dp_detect': dict(), + 'intel_hdmi_detect': dict(), + 'intel_opregion_init': dict(), + } + kprobes_postresume = [ + { + 'name': 'ataportrst', + 'func': 'ata_eh_recover', + 'args': {'port':'+36(%di):s32'}, + 'format': 'ata{port}_port_reset', + 'mask': 'ata.*_port_reset' + } + ] + kprobes = dict() + timeformat = '%.3f' def __init__(self): + # if this is a phoronix test run, set some default options + if('LOG_FILE' in os.environ and 'TEST_RESULTS_IDENTIFIER' in os.environ): + self.embedded = True + self.addlogs = True + self.htmlfile = os.environ['LOG_FILE'] self.hostname = platform.node() if(self.hostname == ''): self.hostname = 'localhost' @@ -118,6 +208,12 @@ class SystemValues: if os.path.exists(rtc) and os.path.exists(rtc+'/date') and \ os.path.exists(rtc+'/time') and os.path.exists(rtc+'/wakealarm'): self.rtcpath = rtc + if (hasattr(sys.stdout, 'isatty') and sys.stdout.isatty()): + self.ansi = True + def setPrecision(self, num): + if num < 0 or num > 6: + return + self.timeformat = '%.{0}f'.format(num) def setOutputFile(self): if((self.htmlfile == '') and (self.dmesgfile != '')): m = re.match('(?P.*)_dmesg\.txt$', self.dmesgfile) @@ -129,32 +225,37 @@ class SystemValues: self.htmlfile = m.group('name')+'.html' if(self.htmlfile == ''): self.htmlfile = 'output.html' - def initTestOutput(self, subdir): - if(not self.android): - self.prefix = self.hostname - v = open('/proc/version', 'r').read().strip() - kver = string.split(v)[2] - else: - self.prefix = 'android' - v = os.popen(self.adb+' shell cat /proc/version').read().strip() - kver = string.split(v)[2] - testtime = datetime.now().strftime('suspend-%m%d%y-%H%M%S') + def initTestOutput(self, subdir, testpath=''): + self.prefix = self.hostname + v = open('/proc/version', 'r').read().strip() + kver = string.split(v)[2] + n = datetime.now() + testtime = n.strftime('suspend-%m%d%y-%H%M%S') + if not testpath: + testpath = n.strftime('suspend-%y%m%d-%H%M%S') if(subdir != "."): - self.testdir = subdir+"/"+testtime + self.testdir = subdir+"/"+testpath else: - self.testdir = testtime + self.testdir = testpath self.teststamp = \ '# '+testtime+' '+self.prefix+' '+self.suspendmode+' '+kver + if(self.embedded): + self.dmesgfile = \ + '/tmp/'+testtime+'_'+self.suspendmode+'_dmesg.txt' + self.ftracefile = \ + '/tmp/'+testtime+'_'+self.suspendmode+'_ftrace.txt' + return self.dmesgfile = \ self.testdir+'/'+self.prefix+'_'+self.suspendmode+'_dmesg.txt' self.ftracefile = \ self.testdir+'/'+self.prefix+'_'+self.suspendmode+'_ftrace.txt' self.htmlfile = \ self.testdir+'/'+self.prefix+'_'+self.suspendmode+'.html' - os.mkdir(self.testdir) + if not os.path.isdir(self.testdir): + os.mkdir(self.testdir) def setDeviceFilter(self, devnames): self.devicefilter = string.split(devnames) - def rtcWakeAlarm(self): + def rtcWakeAlarmOn(self): os.system('echo 0 > '+self.rtcpath+'/wakealarm') outD = open(self.rtcpath+'/date', 'r').read().strip() outT = open(self.rtcpath+'/time', 'r').read().strip() @@ -172,9 +273,361 @@ class SystemValues: nowtime = int(datetime.now().strftime('%s')) alarm = nowtime + self.rtcwaketime os.system('echo %d > %s/wakealarm' % (alarm, self.rtcpath)) + def rtcWakeAlarmOff(self): + os.system('echo 0 > %s/wakealarm' % self.rtcpath) + def initdmesg(self): + # get the latest time stamp from the dmesg log + fp = os.popen('dmesg') + ktime = '0' + for line in fp: + line = line.replace('\r\n', '') + idx = line.find('[') + if idx > 1: + line = line[idx:] + m = re.match('[ \t]*(\[ *)(?P[0-9\.]*)(\]) (?P.*)', line) + if(m): + ktime = m.group('ktime') + fp.close() + self.dmesgstart = float(ktime) + def getdmesg(self): + # store all new dmesg lines since initdmesg was called + fp = os.popen('dmesg') + op = open(self.dmesgfile, 'a') + for line in fp: + line = line.replace('\r\n', '') + idx = line.find('[') + if idx > 1: + line = line[idx:] + m = re.match('[ \t]*(\[ *)(?P[0-9\.]*)(\]) (?P.*)', line) + if(not m): + continue + ktime = float(m.group('ktime')) + if ktime > self.dmesgstart: + op.write(line) + fp.close() + op.close() + def addFtraceFilterFunctions(self, file): + fp = open(file) + list = fp.read().split('\n') + fp.close() + for i in list: + if len(i) < 2: + continue + self.tracefuncs[i] = dict() + def getFtraceFilterFunctions(self, current): + rootCheck(True) + if not current: + os.system('cat '+self.tpath+'available_filter_functions') + return + fp = open(self.tpath+'available_filter_functions') + master = fp.read().split('\n') + fp.close() + if len(self.debugfuncs) > 0: + for i in self.debugfuncs: + if i in master: + print i + else: + print self.colorText(i) + else: + for i in self.tracefuncs: + if 'func' in self.tracefuncs[i]: + i = self.tracefuncs[i]['func'] + if i in master: + print i + else: + print self.colorText(i) + def setFtraceFilterFunctions(self, list): + fp = open(self.tpath+'available_filter_functions') + master = fp.read().split('\n') + fp.close() + flist = '' + for i in list: + if i not in master: + continue + if ' [' in i: + flist += i.split(' ')[0]+'\n' + else: + flist += i+'\n' + fp = open(self.tpath+'set_graph_function', 'w') + fp.write(flist) + fp.close() + def kprobeMatch(self, name, target): + if name not in self.kprobes: + return False + if re.match(self.kprobes[name]['mask'], target): + return True + return False + def basicKprobe(self, name): + self.kprobes[name] = {'name': name,'func': name,'args': dict(),'format': name,'mask': name} + def defaultKprobe(self, name, kdata): + k = kdata + for field in ['name', 'format', 'mask', 'func']: + if field not in k: + k[field] = name + archargs = 'args_'+platform.machine() + if archargs in k: + k['args'] = k[archargs] + else: + k['args'] = dict() + k['format'] = name + self.kprobes[name] = k + def kprobeColor(self, name): + if name not in self.kprobes or 'color' not in self.kprobes[name]: + return '' + return self.kprobes[name]['color'] + def kprobeDisplayName(self, name, dataraw): + if name not in self.kprobes: + self.basicKprobe(name) + data = '' + quote=0 + # first remvoe any spaces inside quotes, and the quotes + for c in dataraw: + if c == '"': + quote = (quote + 1) % 2 + if quote and c == ' ': + data += '_' + elif c != '"': + data += c + fmt, args = self.kprobes[name]['format'], self.kprobes[name]['args'] + arglist = dict() + # now process the args + for arg in sorted(args): + arglist[arg] = '' + m = re.match('.* '+arg+'=(?P.*) ', data); + if m: + arglist[arg] = m.group('arg') + else: + m = re.match('.* '+arg+'=(?P.*)', data); + if m: + arglist[arg] = m.group('arg') + out = fmt.format(**arglist) + out = out.replace(' ', '_').replace('"', '') + return out + def kprobeText(self, kprobe): + name, fmt, func, args = kprobe['name'], kprobe['format'], kprobe['func'], kprobe['args'] + if re.findall('{(?P[a-z,A-Z,0-9]*)}', func): + doError('Kprobe "%s" has format info in the function name "%s"' % (name, func), False) + for arg in re.findall('{(?P[a-z,A-Z,0-9]*)}', fmt): + if arg not in args: + doError('Kprobe "%s" is missing argument "%s"' % (name, arg), False) + val = 'p:%s_cal %s' % (name, func) + for i in sorted(args): + val += ' %s=%s' % (i, args[i]) + val += '\nr:%s_ret %s $retval\n' % (name, func) + return val + def addKprobes(self): + # first test each kprobe + print('INITIALIZING KPROBES...') + rejects = [] + for name in sorted(self.kprobes): + if not self.testKprobe(self.kprobes[name]): + rejects.append(name) + # remove all failed ones from the list + for name in rejects: + vprint('Skipping KPROBE: %s' % name) + self.kprobes.pop(name) + self.fsetVal('', 'kprobe_events') + kprobeevents = '' + # set the kprobes all at once + for kp in self.kprobes: + val = self.kprobeText(self.kprobes[kp]) + vprint('Adding KPROBE: %s\n%s' % (kp, val.strip())) + kprobeevents += self.kprobeText(self.kprobes[kp]) + self.fsetVal(kprobeevents, 'kprobe_events') + # verify that the kprobes were set as ordered + check = self.fgetVal('kprobe_events') + linesout = len(kprobeevents.split('\n')) + linesack = len(check.split('\n')) + if linesack < linesout: + # if not, try appending the kprobes 1 by 1 + for kp in self.kprobes: + kprobeevents = self.kprobeText(self.kprobes[kp]) + self.fsetVal(kprobeevents, 'kprobe_events', 'a') + self.fsetVal('1', 'events/kprobes/enable') + def testKprobe(self, kprobe): + kprobeevents = self.kprobeText(kprobe) + if not kprobeevents: + return False + try: + self.fsetVal(kprobeevents, 'kprobe_events') + check = self.fgetVal('kprobe_events') + except: + return False + linesout = len(kprobeevents.split('\n')) + linesack = len(check.split('\n')) + if linesack < linesout: + return False + return True + def fsetVal(self, val, path, mode='w'): + file = self.tpath+path + if not os.path.exists(file): + return False + try: + fp = open(file, mode) + fp.write(val) + fp.close() + except: + pass + return True + def fgetVal(self, path): + file = self.tpath+path + res = '' + if not os.path.exists(file): + return res + try: + fp = open(file, 'r') + res = fp.read() + fp.close() + except: + pass + return res + def cleanupFtrace(self): + if(self.usecallgraph or self.usetraceevents): + self.fsetVal('0', 'events/kprobes/enable') + self.fsetVal('', 'kprobe_events') + def setupAllKprobes(self): + for name in self.tracefuncs: + self.defaultKprobe(name, self.tracefuncs[name]) + for name in self.dev_tracefuncs: + self.defaultKprobe(name, self.dev_tracefuncs[name]) + def isCallgraphFunc(self, name): + if len(self.debugfuncs) < 1 and self.suspendmode == 'command': + return True + if name in self.debugfuncs: + return True + funclist = [] + for i in self.tracefuncs: + if 'func' in self.tracefuncs[i]: + funclist.append(self.tracefuncs[i]['func']) + else: + funclist.append(i) + if name in funclist: + return True + return False + def initFtrace(self, testing=False): + tp = self.tpath + print('INITIALIZING FTRACE...') + # turn trace off + self.fsetVal('0', 'tracing_on') + self.cleanupFtrace() + # set the trace clock to global + self.fsetVal('global', 'trace_clock') + # set trace buffer to a huge value + self.fsetVal('nop', 'current_tracer') + self.fsetVal('100000', 'buffer_size_kb') + # go no further if this is just a status check + if testing: + return + if self.usekprobes: + # add tracefunc kprobes so long as were not using full callgraph + if(not self.usecallgraph or len(self.debugfuncs) > 0): + for name in self.tracefuncs: + self.defaultKprobe(name, self.tracefuncs[name]) + if self.usedevsrc: + for name in self.dev_tracefuncs: + self.defaultKprobe(name, self.dev_tracefuncs[name]) + else: + self.usedevsrc = False + self.addKprobes() + # initialize the callgraph trace, unless this is an x2 run + if(self.usecallgraph): + # set trace type + self.fsetVal('function_graph', 'current_tracer') + self.fsetVal('', 'set_ftrace_filter') + # set trace format options + self.fsetVal('print-parent', 'trace_options') + self.fsetVal('funcgraph-abstime', 'trace_options') + self.fsetVal('funcgraph-cpu', 'trace_options') + self.fsetVal('funcgraph-duration', 'trace_options') + self.fsetVal('funcgraph-proc', 'trace_options') + self.fsetVal('funcgraph-tail', 'trace_options') + self.fsetVal('nofuncgraph-overhead', 'trace_options') + self.fsetVal('context-info', 'trace_options') + self.fsetVal('graph-time', 'trace_options') + self.fsetVal('0', 'max_graph_depth') + if len(self.debugfuncs) > 0: + self.setFtraceFilterFunctions(self.debugfuncs) + elif self.suspendmode == 'command': + self.fsetVal('', 'set_graph_function') + else: + cf = ['dpm_run_callback'] + if(self.usetraceeventsonly): + cf += ['dpm_prepare', 'dpm_complete'] + for fn in self.tracefuncs: + if 'func' in self.tracefuncs[fn]: + cf.append(self.tracefuncs[fn]['func']) + else: + cf.append(fn) + self.setFtraceFilterFunctions(cf) + if(self.usetraceevents): + # turn trace events on + events = iter(self.traceevents) + for e in events: + self.fsetVal('1', 'events/power/'+e+'/enable') + # clear the trace buffer + self.fsetVal('', 'trace') + def verifyFtrace(self): + # files needed for any trace data + files = ['buffer_size_kb', 'current_tracer', 'trace', 'trace_clock', + 'trace_marker', 'trace_options', 'tracing_on'] + # files needed for callgraph trace data + tp = self.tpath + if(self.usecallgraph): + files += [ + 'available_filter_functions', + 'set_ftrace_filter', + 'set_graph_function' + ] + for f in files: + if(os.path.exists(tp+f) == False): + return False + return True + def verifyKprobes(self): + # files needed for kprobes to work + files = ['kprobe_events', 'events'] + tp = self.tpath + for f in files: + if(os.path.exists(tp+f) == False): + return False + return True + def colorText(self, str): + if not self.ansi: + return str + return '\x1B[31;40m'+str+'\x1B[m' sysvals = SystemValues() +# Class: DevProps +# Description: +# Simple class which holds property values collected +# for all the devices used in the timeline. +class DevProps: + syspath = '' + altname = '' + async = True + xtraclass = '' + xtrainfo = '' + def out(self, dev): + return '%s,%s,%d;' % (dev, self.altname, self.async) + def debug(self, dev): + print '%s:\n\taltname = %s\n\t async = %s' % (dev, self.altname, self.async) + def altName(self, dev): + if not self.altname or self.altname == dev: + return dev + return '%s [%s]' % (self.altname, dev) + def xtraClass(self): + if self.xtraclass: + return ' '+self.xtraclass + if not self.async: + return ' sync' + return '' + def xtraInfo(self): + if self.xtraclass: + return ' '+self.xtraclass + if self.async: + return ' async' + return ' sync' + # Class: DeviceNode # Description: # A container used to create a device hierachy, with a single root node @@ -228,6 +681,7 @@ class Data: html_device_id = 0 stamp = 0 outfile = '' + dev_ubiquitous = ['msleep', 'udelay'] def __init__(self, num): idchar = 'abcdefghijklmnopqrstuvwxyz' self.testnumber = num @@ -257,6 +711,9 @@ class Data: 'row': 0, 'color': '#FFFFCC', 'order': 9} } self.phases = self.sortedPhases() + self.devicegroups = [] + for phase in self.phases: + self.devicegroups.append([phase]) def getStart(self): return self.dmesg[self.phases[0]]['start'] def setStart(self, time): @@ -273,51 +730,61 @@ class Data: for dev in list: d = list[dev] if(d['pid'] == pid and time >= d['start'] and - time <= d['end']): + time < d['end']): return False return True - def addIntraDevTraceEvent(self, action, name, pid, time): - if(action == 'mutex_lock_try'): - color = 'red' - elif(action == 'mutex_lock_pass'): - color = 'green' - elif(action == 'mutex_unlock'): - color = 'blue' - else: - # create separate colors based on the name - v1 = len(name)*10 % 256 - v2 = string.count(name, 'e')*100 % 256 - v3 = ord(name[0])*20 % 256 - color = '#%06X' % ((v1*0x10000) + (v2*0x100) + v3) - for phase in self.phases: + def targetDevice(self, phaselist, start, end, pid=-1): + tgtdev = '' + for phase in phaselist: list = self.dmesg[phase]['list'] - for dev in list: - d = list[dev] - if(d['pid'] == pid and time >= d['start'] and - time <= d['end']): - e = TraceEvent(action, name, color, time) - if('traceevents' not in d): - d['traceevents'] = [] - d['traceevents'].append(e) - return d - break - return 0 - def capIntraDevTraceEvent(self, action, name, pid, time): - for phase in self.phases: - list = self.dmesg[phase]['list'] - for dev in list: - d = list[dev] - if(d['pid'] == pid and time >= d['start'] and - time <= d['end']): - if('traceevents' not in d): - return - for e in d['traceevents']: - if(e.action == action and - e.name == name and not e.ready): - e.length = time - e.time - e.ready = True - break - return + for devname in list: + dev = list[devname] + if(pid >= 0 and dev['pid'] != pid): + continue + devS = dev['start'] + devE = dev['end'] + if(start < devS or start >= devE or end <= devS or end > devE): + continue + tgtdev = dev + break + return tgtdev + def addDeviceFunctionCall(self, displayname, kprobename, proc, pid, start, end, cdata, rdata): + machstart = self.dmesg['suspend_machine']['start'] + machend = self.dmesg['resume_machine']['end'] + tgtdev = self.targetDevice(self.phases, start, end, pid) + if not tgtdev and start >= machstart and end < machend: + # device calls in machine phases should be serial + tgtdev = self.targetDevice(['suspend_machine', 'resume_machine'], start, end) + if not tgtdev: + if 'scsi_eh' in proc: + self.newActionGlobal(proc, start, end, pid) + self.addDeviceFunctionCall(displayname, kprobename, proc, pid, start, end, cdata, rdata) + else: + vprint('IGNORE: %s[%s](%d) [%f - %f] | %s | %s | %s' % (displayname, kprobename, + pid, start, end, cdata, rdata, proc)) + return False + # detail block fits within tgtdev + if('src' not in tgtdev): + tgtdev['src'] = [] + title = cdata+' '+rdata + mstr = '\(.*\) *(?P.*) *\((?P.*)\+.* arg1=(?P.*)' + m = re.match(mstr, title) + if m: + c = m.group('caller') + a = m.group('args').strip() + r = m.group('ret') + if len(r) > 6: + r = '' + else: + r = 'ret=%s ' % r + l = '%0.3fms' % ((end - start) * 1000) + if kprobename in self.dev_ubiquitous: + title = '%s(%s) <- %s, %s(%s)' % (displayname, a, c, r, l) + else: + title = '%s(%s) %s(%s)' % (displayname, a, r, l) + e = TraceEvent(title, kprobename, start, end - start) + tgtdev['src'].append(e) + return True def trimTimeVal(self, t, t0, dT, left): if left: if(t > t0): @@ -353,11 +820,11 @@ class Data: cg.end = self.trimTimeVal(cg.end, t0, dT, left) for line in cg.list: line.time = self.trimTimeVal(line.time, t0, dT, left) - if('traceevents' in d): - for e in d['traceevents']: + if('src' in d): + for e in d['src']: e.time = self.trimTimeVal(e.time, t0, dT, left) def normalizeTime(self, tZero): - # first trim out any standby or freeze clock time + # trim out any standby or freeze clock time if(self.tSuspended != self.tResumed): if(self.tResumed > tZero): self.trimTime(self.tSuspended, \ @@ -365,29 +832,6 @@ class Data: else: self.trimTime(self.tSuspended, \ self.tResumed-self.tSuspended, False) - # shift the timeline so that tZero is the new 0 - self.tSuspended -= tZero - self.tResumed -= tZero - self.start -= tZero - self.end -= tZero - for phase in self.phases: - p = self.dmesg[phase] - p['start'] -= tZero - p['end'] -= tZero - list = p['list'] - for name in list: - d = list[name] - d['start'] -= tZero - d['end'] -= tZero - if('ftrace' in d): - cg = d['ftrace'] - cg.start -= tZero - cg.end -= tZero - for line in cg.list: - line.time -= tZero - if('traceevents' in d): - for e in d['traceevents']: - e.time -= tZero def newPhaseWithSingleAction(self, phasename, devname, start, end, color): for phase in self.phases: self.dmesg[phase]['order'] += 1 @@ -417,6 +861,7 @@ class Data: {'list': list, 'start': start, 'end': end, 'row': 0, 'color': color, 'order': order} self.phases = self.sortedPhases() + self.devicegroups.append([phasename]) def setPhase(self, phase, ktime, isbegin): if(isbegin): self.dmesg[phase]['start'] = ktime @@ -442,7 +887,10 @@ class Data: for devname in phaselist: dev = phaselist[devname] if(dev['end'] < 0): - dev['end'] = end + for p in self.phases: + if self.dmesg[p]['end'] > dev['start']: + dev['end'] = self.dmesg[p]['end'] + break vprint('%s (%s): callback didnt return' % (devname, phase)) def deviceFilter(self, devicefilter): # remove all by the relatives of the filter devnames @@ -472,22 +920,58 @@ class Data: # if any calls never returned, clip them at system resume end for phase in self.phases: self.fixupInitcalls(phase, self.getEnd()) - def newActionGlobal(self, name, start, end): + def isInsideTimeline(self, start, end): + if(self.start <= start and self.end > start): + return True + return False + def phaseOverlap(self, phases): + rmgroups = [] + newgroup = [] + for group in self.devicegroups: + for phase in phases: + if phase not in group: + continue + for p in group: + if p not in newgroup: + newgroup.append(p) + if group not in rmgroups: + rmgroups.append(group) + for group in rmgroups: + self.devicegroups.remove(group) + self.devicegroups.append(newgroup) + def newActionGlobal(self, name, start, end, pid=-1, color=''): + # if event starts before timeline start, expand timeline + if(start < self.start): + self.setStart(start) + # if event ends after timeline end, expand the timeline + if(end > self.end): + self.setEnd(end) # which phase is this device callback or action "in" targetphase = "none" + htmlclass = '' overlap = 0.0 + phases = [] for phase in self.phases: pstart = self.dmesg[phase]['start'] pend = self.dmesg[phase]['end'] o = max(0, min(end, pend) - max(start, pstart)) - if(o > overlap): + if o > 0: + phases.append(phase) + if o > overlap: + if overlap > 0 and phase == 'post_resume': + continue targetphase = phase overlap = o + if pid == -2: + htmlclass = ' bg' + if len(phases) > 1: + htmlclass = ' bg' + self.phaseOverlap(phases) if targetphase in self.phases: - self.newAction(targetphase, name, -1, '', start, end, '') - return True + newname = self.newAction(targetphase, name, pid, '', start, end, '', htmlclass, color) + return (targetphase, newname) return False - def newAction(self, phase, name, pid, parent, start, end, drv): + def newAction(self, phase, name, pid, parent, start, end, drv, htmlclass='', color=''): # new device callback for a specific phase self.html_device_id += 1 devid = '%s%d' % (self.idstr, self.html_device_id) @@ -495,8 +979,19 @@ class Data: length = -1.0 if(start >= 0 and end >= 0): length = end - start + if pid == -2: + i = 2 + origname = name + while(name in list): + name = '%s[%d]' % (origname, i) + i += 1 list[name] = {'start': start, 'end': end, 'pid': pid, 'par': parent, 'length': length, 'row': 0, 'id': devid, 'drv': drv } + if htmlclass: + list[name]['htmlclass'] = htmlclass + if color: + list[name]['color'] = color + return name def deviceIDs(self, devlist, phase): idlist = [] list = self.dmesg[phase]['list'] @@ -536,10 +1031,21 @@ class Data: vprint(' %16s: %f - %f (%d devices)' % (phase, \ self.dmesg[phase]['start'], self.dmesg[phase]['end'], dc)) vprint(' test end: %f' % self.end) + def deviceChildrenAllPhases(self, devname): + devlist = [] + for phase in self.phases: + list = self.deviceChildren(devname, phase) + for dev in list: + if dev not in devlist: + devlist.append(dev) + return devlist def masterTopology(self, name, list, depth): node = DeviceNode(name, depth) for cname in list: - clist = self.deviceChildren(cname, 'resume') + # avoid recursions + if name == cname: + continue + clist = self.deviceChildrenAllPhases(cname) cnode = self.masterTopology(cname, clist, depth+1) node.children.append(cnode) return node @@ -580,7 +1086,8 @@ class Data: list = self.dmesg[phase]['list'] for dev in list: pdev = list[dev]['par'] - if(re.match('[0-9]*-[0-9]*\.[0-9]*[\.0-9]*\:[\.0-9]*$', pdev)): + pid = list[dev]['pid'] + if(pid < 0 or re.match('[0-9]*-[0-9]*\.[0-9]*[\.0-9]*\:[\.0-9]*$', pdev)): continue if pdev and pdev not in real and pdev not in rootlist: rootlist.append(pdev) @@ -589,22 +1096,33 @@ class Data: rootlist = self.rootDeviceList() master = self.masterTopology('', rootlist, 0) return self.printTopology(master) + def selectTimelineDevices(self, widfmt, tTotal, mindevlen): + # only select devices that will actually show up in html + self.tdevlist = dict() + for phase in self.dmesg: + devlist = [] + list = self.dmesg[phase]['list'] + for dev in list: + length = (list[dev]['end'] - list[dev]['start']) * 1000 + width = widfmt % (((list[dev]['end']-list[dev]['start'])*100)/tTotal) + if width != '0.000000' and length >= mindevlen: + devlist.append(dev) + self.tdevlist[phase] = devlist # Class: TraceEvent # Description: # A container for trace event data found in the ftrace file class TraceEvent: - ready = False - name = '' + text = '' time = 0.0 - color = '#FFFFFF' length = 0.0 - action = '' - def __init__(self, a, n, c, t): - self.action = a - self.name = n - self.color = c + title = '' + row = 0 + def __init__(self, a, n, t, l): + self.title = a + self.text = n self.time = t + self.length = l # Class: FTraceLine # Description: @@ -623,11 +1141,14 @@ class FTraceLine: fcall = False freturn = False fevent = False + fkprobe = False depth = 0 name = '' type = '' - def __init__(self, t, m, d): + def __init__(self, t, m='', d=''): self.time = float(t) + if not m and not d: + return # is this a trace event if(d == 'traceevent' or re.match('^ *\/\* *(?P.*) \*\/ *$', m)): if(d == 'traceevent'): @@ -644,6 +1165,18 @@ class FTraceLine: self.type = emm.group('call') else: self.name = msg + km = re.match('^(?P.*)_cal$', self.type) + if km: + self.fcall = True + self.fkprobe = True + self.type = km.group('n') + return + km = re.match('^(?P.*)_ret$', self.type) + if km: + self.freturn = True + self.fkprobe = True + self.type = km.group('n') + return self.fevent = True return # convert the duration to seconds @@ -662,7 +1195,7 @@ class FTraceLine: # includes comment with function name match = re.match('^} *\/\* *(?P.*) *\*\/$', m) if(match): - self.name = match.group('n') + self.name = match.group('n').strip() # function call else: self.fcall = True @@ -670,19 +1203,19 @@ class FTraceLine: if(m[-1] == '{'): match = re.match('^(?P.*) *\(.*', m) if(match): - self.name = match.group('n') + self.name = match.group('n').strip() # function call with no children (leaf) elif(m[-1] == ';'): self.freturn = True match = re.match('^(?P.*) *\(.*', m) if(match): - self.name = match.group('n') + self.name = match.group('n').strip() # something else (possibly a trace marker) else: self.name = m def getDepth(self, str): return len(str)/2 - def debugPrint(self, dev): + def debugPrint(self, dev=''): if(self.freturn and self.fcall): print('%s -- %f (%02d): %s(); (%.3f us)' % (dev, self.time, \ self.depth, self.name, self.length*1000000)) @@ -692,6 +1225,33 @@ class FTraceLine: else: print('%s -- %f (%02d): %s() { (%.3f us)' % (dev, self.time, \ self.depth, self.name, self.length*1000000)) + def startMarker(self): + global sysvals + # Is this the starting line of a suspend? + if not self.fevent: + return False + if sysvals.usetracemarkers: + if(self.name == 'SUSPEND START'): + return True + return False + else: + if(self.type == 'suspend_resume' and + re.match('suspend_enter\[.*\] begin', self.name)): + return True + return False + def endMarker(self): + # Is this the ending line of a resume? + if not self.fevent: + return False + if sysvals.usetracemarkers: + if(self.name == 'RESUME COMPLETE'): + return True + return False + else: + if(self.type == 'suspend_resume' and + re.match('thaw_processes\[.*\] end', self.name)): + return True + return False # Class: FTraceCallGraph # Description: @@ -705,54 +1265,124 @@ class FTraceCallGraph: list = [] invalid = False depth = 0 - def __init__(self): + pid = 0 + def __init__(self, pid): self.start = -1.0 self.end = -1.0 self.list = [] self.depth = 0 - def setDepth(self, line): + self.pid = pid + def addLine(self, line, debug=False): + # if this is already invalid, just leave + if(self.invalid): + return False + # invalidate on too much data or bad depth + if(len(self.list) >= 1000000 or self.depth < 0): + self.invalidate(line) + return False + # compare current depth with this lines pre-call depth + prelinedep = line.depth + if(line.freturn and not line.fcall): + prelinedep += 1 + last = 0 + lasttime = line.time + virtualfname = 'execution_misalignment' + if len(self.list) > 0: + last = self.list[-1] + lasttime = last.time + # handle low misalignments by inserting returns + if prelinedep < self.depth: + if debug and last: + print '-------- task %d --------' % self.pid + last.debugPrint() + idx = 0 + # add return calls to get the depth down + while prelinedep < self.depth: + if debug: + print 'MISALIGN LOW (add returns): C%d - eC%d' % (self.depth, prelinedep) + self.depth -= 1 + if idx == 0 and last and last.fcall and not last.freturn: + # special case, turn last call into a leaf + last.depth = self.depth + last.freturn = True + last.length = line.time - last.time + if debug: + last.debugPrint() + else: + vline = FTraceLine(lasttime) + vline.depth = self.depth + vline.name = virtualfname + vline.freturn = True + self.list.append(vline) + if debug: + vline.debugPrint() + idx += 1 + if debug: + line.debugPrint() + print '' + # handle high misalignments by inserting calls + elif prelinedep > self.depth: + if debug and last: + print '-------- task %d --------' % self.pid + last.debugPrint() + idx = 0 + # add calls to get the depth up + while prelinedep > self.depth: + if debug: + print 'MISALIGN HIGH (add calls): C%d - eC%d' % (self.depth, prelinedep) + if idx == 0 and line.freturn and not line.fcall: + # special case, turn this return into a leaf + line.fcall = True + prelinedep -= 1 + else: + vline = FTraceLine(lasttime) + vline.depth = self.depth + vline.name = virtualfname + vline.fcall = True + if debug: + vline.debugPrint() + self.list.append(vline) + self.depth += 1 + if not last: + self.start = vline.time + idx += 1 + if debug: + line.debugPrint() + print '' + # process the call and set the new depth if(line.fcall and not line.freturn): - line.depth = self.depth self.depth += 1 elif(line.freturn and not line.fcall): self.depth -= 1 - line.depth = self.depth - else: - line.depth = self.depth - def addLine(self, line, match): - if(not self.invalid): - self.setDepth(line) + if len(self.list) < 1: + self.start = line.time + self.list.append(line) if(line.depth == 0 and line.freturn): if(self.start < 0): self.start = line.time self.end = line.time - self.list.append(line) + if line.fcall: + self.end += line.length + if self.list[0].name == virtualfname: + self.invalid = True return True - if(self.invalid): - return False - if(len(self.list) >= 1000000 or self.depth < 0): - if(len(self.list) > 0): - first = self.list[0] - self.list = [] - self.list.append(first) - self.invalid = True - if(not match): - return False - id = 'task %s cpu %s' % (match.group('pid'), match.group('cpu')) - window = '(%f - %f)' % (self.start, line.time) - if(self.depth < 0): - print('Too much data for '+id+\ - ' (buffer overflow), ignoring this callback') - else: - print('Too much data for '+id+\ - ' '+window+', ignoring this callback') - return False - self.list.append(line) - if(self.start < 0): - self.start = line.time return False + def invalidate(self, line): + if(len(self.list) > 0): + first = self.list[0] + self.list = [] + self.list.append(first) + self.invalid = True + id = 'task %s' % (self.pid) + window = '(%f - %f)' % (self.start, line.time) + if(self.depth < 0): + vprint('Too much data for '+id+\ + ' (buffer overflow), ignoring this callback') + else: + vprint('Too much data for '+id+\ + ' '+window+', ignoring this callback') def slice(self, t0, tN): - minicg = FTraceCallGraph() + minicg = FTraceCallGraph(0) count = -1 firstdepth = 0 for l in self.list: @@ -764,13 +1394,26 @@ class FTraceCallGraph: firstdepth = l.depth count = 0 l.depth -= firstdepth - minicg.addLine(l, 0) + minicg.addLine(l) if((count == 0 and l.freturn and l.fcall) or (count > 0 and l.depth <= 0)): break count += 1 return minicg - def sanityCheck(self): + def repair(self, enddepth): + # bring the depth back to 0 with additional returns + fixed = False + last = self.list[-1] + for i in reversed(range(enddepth)): + t = FTraceLine(last.time) + t.depth = i + t.freturn = True + fixed = self.addLine(t) + if fixed: + self.end = last.time + return True + return False + def postProcess(self, debug=False): stack = dict() cnt = 0 for l in self.list: @@ -779,98 +1422,317 @@ class FTraceCallGraph: cnt += 1 elif(l.freturn and not l.fcall): if(l.depth not in stack): + if debug: + print 'Post Process Error: Depth missing' + l.debugPrint() return False + # transfer total time from return line to call line stack[l.depth].length = l.length - stack[l.depth] = 0 + stack.pop(l.depth) l.length = 0 cnt -= 1 if(cnt == 0): + # trace caught the whole call tree return True - return False - def debugPrint(self, filename): - if(filename == 'stdout'): - print('[%f - %f]') % (self.start, self.end) - for l in self.list: - if(l.freturn and l.fcall): - print('%f (%02d): %s(); (%.3f us)' % (l.time, \ - l.depth, l.name, l.length*1000000)) - elif(l.freturn): - print('%f (%02d): %s} (%.3f us)' % (l.time, \ - l.depth, l.name, l.length*1000000)) - else: - print('%f (%02d): %s() { (%.3f us)' % (l.time, \ - l.depth, l.name, l.length*1000000)) - print(' ') - else: - fp = open(filename, 'w') - print(filename) - for l in self.list: - if(l.freturn and l.fcall): - fp.write('%f (%02d): %s(); (%.3f us)\n' % (l.time, \ - l.depth, l.name, l.length*1000000)) - elif(l.freturn): - fp.write('%f (%02d): %s} (%.3f us)\n' % (l.time, \ - l.depth, l.name, l.length*1000000)) - else: - fp.write('%f (%02d): %s() { (%.3f us)\n' % (l.time, \ - l.depth, l.name, l.length*1000000)) - fp.close() + elif(cnt < 0): + if debug: + print 'Post Process Error: Depth is less than 0' + return False + # trace ended before call tree finished + return self.repair(cnt) + def deviceMatch(self, pid, data): + found = False + # add the callgraph data to the device hierarchy + borderphase = { + 'dpm_prepare': 'suspend_prepare', + 'dpm_complete': 'resume_complete' + } + if(self.list[0].name in borderphase): + p = borderphase[self.list[0].name] + list = data.dmesg[p]['list'] + for devname in list: + dev = list[devname] + if(pid == dev['pid'] and + self.start <= dev['start'] and + self.end >= dev['end']): + dev['ftrace'] = self.slice(dev['start'], dev['end']) + found = True + return found + for p in data.phases: + if(data.dmesg[p]['start'] <= self.start and + self.start <= data.dmesg[p]['end']): + list = data.dmesg[p]['list'] + for devname in list: + dev = list[devname] + if(pid == dev['pid'] and + self.start <= dev['start'] and + self.end >= dev['end']): + dev['ftrace'] = self + found = True + break + break + return found + def newActionFromFunction(self, data): + name = self.list[0].name + if name in ['dpm_run_callback', 'dpm_prepare', 'dpm_complete']: + return + fs = self.start + fe = self.end + if fs < data.start or fe > data.end: + return + phase = '' + for p in data.phases: + if(data.dmesg[p]['start'] <= self.start and + self.start < data.dmesg[p]['end']): + phase = p + break + if not phase: + return + out = data.newActionGlobal(name, fs, fe, -2) + if out: + phase, myname = out + data.dmesg[phase]['list'][myname]['ftrace'] = self + def debugPrint(self): + print('[%f - %f] %s (%d)') % (self.start, self.end, self.list[0].name, self.pid) + for l in self.list: + if(l.freturn and l.fcall): + print('%f (%02d): %s(); (%.3f us)' % (l.time, \ + l.depth, l.name, l.length*1000000)) + elif(l.freturn): + print('%f (%02d): %s} (%.3f us)' % (l.time, \ + l.depth, l.name, l.length*1000000)) + else: + print('%f (%02d): %s() { (%.3f us)' % (l.time, \ + l.depth, l.name, l.length*1000000)) + print(' ') # Class: Timeline # Description: -# A container for a suspend/resume html timeline. In older versions -# of the script there were multiple timelines, but in the latest -# there is only one. +# A container for a device timeline which calculates +# all the html properties to display it correctly class Timeline: html = {} - scaleH = 0.0 # height of the row as a percent of the timeline height - rowH = 0.0 # height of each row in percent of the timeline height - row_height_pixels = 30 - maxrows = 0 - height = 0 - def __init__(self): + height = 0 # total timeline height + scaleH = 20 # timescale (top) row height + rowH = 30 # device row height + bodyH = 0 # body height + rows = 0 # total timeline rows + phases = [] + rowmaxlines = dict() + rowcount = dict() + rowheight = dict() + def __init__(self, rowheight): + self.rowH = rowheight self.html = { + 'header': '', 'timeline': '', 'legend': '', - 'scale': '' } - def setRows(self, rows): - self.maxrows = int(rows) - self.scaleH = 100.0/float(self.maxrows) - self.height = self.maxrows*self.row_height_pixels - r = float(self.maxrows - 1) - if(r < 1.0): - r = 1.0 - self.rowH = (100.0 - self.scaleH)/r + # Function: getDeviceRows + # Description: + # determine how may rows the device funcs will take + # Arguments: + # rawlist: the list of devices/actions for a single phase + # Output: + # The total number of rows needed to display this phase of the timeline + def getDeviceRows(self, rawlist): + # clear all rows and set them to undefined + lendict = dict() + for item in rawlist: + item.row = -1 + lendict[item] = item.length + list = [] + for i in sorted(lendict, key=lendict.get, reverse=True): + list.append(i) + remaining = len(list) + rowdata = dict() + row = 1 + # try to pack each row with as many ranges as possible + while(remaining > 0): + if(row not in rowdata): + rowdata[row] = [] + for i in list: + if(i.row >= 0): + continue + s = i.time + e = i.time + i.length + valid = True + for ritem in rowdata[row]: + rs = ritem.time + re = ritem.time + ritem.length + if(not (((s <= rs) and (e <= rs)) or + ((s >= re) and (e >= re)))): + valid = False + break + if(valid): + rowdata[row].append(i) + i.row = row + remaining -= 1 + row += 1 + return row + # Function: getPhaseRows + # Description: + # Organize the timeline entries into the smallest + # number of rows possible, with no entry overlapping + # Arguments: + # list: the list of devices/actions for a single phase + # devlist: string list of device names to use + # Output: + # The total number of rows needed to display this phase of the timeline + def getPhaseRows(self, dmesg, devlist): + # clear all rows and set them to undefined + remaining = len(devlist) + rowdata = dict() + row = 0 + lendict = dict() + myphases = [] + for item in devlist: + if item[0] not in self.phases: + self.phases.append(item[0]) + if item[0] not in myphases: + myphases.append(item[0]) + self.rowmaxlines[item[0]] = dict() + self.rowheight[item[0]] = dict() + dev = dmesg[item[0]]['list'][item[1]] + dev['row'] = -1 + lendict[item] = float(dev['end']) - float(dev['start']) + if 'src' in dev: + dev['devrows'] = self.getDeviceRows(dev['src']) + lenlist = [] + for i in sorted(lendict, key=lendict.get, reverse=True): + lenlist.append(i) + orderedlist = [] + for item in lenlist: + dev = dmesg[item[0]]['list'][item[1]] + if dev['pid'] == -2: + orderedlist.append(item) + for item in lenlist: + if item not in orderedlist: + orderedlist.append(item) + # try to pack each row with as many ranges as possible + while(remaining > 0): + rowheight = 1 + if(row not in rowdata): + rowdata[row] = [] + for item in orderedlist: + dev = dmesg[item[0]]['list'][item[1]] + if(dev['row'] < 0): + s = dev['start'] + e = dev['end'] + valid = True + for ritem in rowdata[row]: + rs = ritem['start'] + re = ritem['end'] + if(not (((s <= rs) and (e <= rs)) or + ((s >= re) and (e >= re)))): + valid = False + break + if(valid): + rowdata[row].append(dev) + dev['row'] = row + remaining -= 1 + if 'devrows' in dev and dev['devrows'] > rowheight: + rowheight = dev['devrows'] + for phase in myphases: + self.rowmaxlines[phase][row] = rowheight + self.rowheight[phase][row] = rowheight * self.rowH + row += 1 + if(row > self.rows): + self.rows = int(row) + for phase in myphases: + self.rowcount[phase] = row + return row + def phaseRowHeight(self, phase, row): + return self.rowheight[phase][row] + def phaseRowTop(self, phase, row): + top = 0 + for i in sorted(self.rowheight[phase]): + if i >= row: + break + top += self.rowheight[phase][i] + return top + # Function: calcTotalRows + # Description: + # Calculate the heights and offsets for the header and rows + def calcTotalRows(self): + maxrows = 0 + standardphases = [] + for phase in self.phases: + total = 0 + for i in sorted(self.rowmaxlines[phase]): + total += self.rowmaxlines[phase][i] + if total > maxrows: + maxrows = total + if total == self.rowcount[phase]: + standardphases.append(phase) + self.height = self.scaleH + (maxrows*self.rowH) + self.bodyH = self.height - self.scaleH + for phase in standardphases: + for i in sorted(self.rowheight[phase]): + self.rowheight[phase][i] = self.bodyH/self.rowcount[phase] + # Function: createTimeScale + # Description: + # Create the timescale for a timeline block + # Arguments: + # m0: start time (mode begin) + # mMax: end time (mode end) + # tTotal: total timeline time + # mode: suspend or resume + # Output: + # The html code needed to display the time scale + def createTimeScale(self, m0, mMax, tTotal, mode): + timescale = '
{1}
\n' + rline = '
Resume
\n' + output = '
\n' + # set scale for timeline + mTotal = mMax - m0 + tS = 0.1 + if(tTotal <= 0): + return output+'
\n' + if(tTotal > 4): + tS = 1 + divTotal = int(mTotal/tS) + 1 + divEdge = (mTotal - tS*(divTotal-1))*100/mTotal + for i in range(divTotal): + htmlline = '' + if(mode == 'resume'): + pos = '%0.3f' % (100 - ((float(i)*tS*100)/mTotal)) + val = '%0.fms' % (float(i)*tS*1000) + htmlline = timescale.format(pos, val) + if(i == 0): + htmlline = rline + else: + pos = '%0.3f' % (100 - ((float(i)*tS*100)/mTotal) - divEdge) + val = '%0.fms' % (float(i-divTotal+1)*tS*1000) + if(i == divTotal - 1): + val = 'Suspend' + htmlline = timescale.format(pos, val) + output += htmlline + output += '\n' + return output -# Class: TestRun +# Class: TestProps # Description: -# A container for a suspend/resume test run. This is necessary as -# there could be more than one, and they need to be separate. -class TestRun: +# A list of values describing the properties of these test runs +class TestProps: + stamp = '' + tracertype = '' + S0i3 = False + fwdata = [] ftrace_line_fmt_fg = \ '^ *(?P