#!/usr/bin/perl -w use strict; ## Copyright (C) 2015 Intel Corporation ## # ## ## This software falls under the GNU General Public License. ## ## Please read the COPYING file for more information ## # # # This software reads a XML file and a list of valid interal # references to replace Docbook tags with links. # # The list of "valid internal references" must be one-per-line in the following format: # API-struct-foo # API-enum-bar # API-my-function # # The software walks over the XML file looking for xml tags representing possible references # to the Document. Each reference will be cross checked against the "Valid Internal Reference" list. If # the referece is found it replaces its content by a tag. # # usage: # kernel-doc-xml-ref -db filename # xml filename > outputfile # read arguments if ($#ARGV != 2) { usage(); } #Holds the database filename my $databasefile; my @database; #holds the inputfile my $inputfile; my $errors = 0; my %highlights = ( "(.*?)", "\"\" . convert_function(\$1, \$line) . \"\"", "(.*?)", "\"\" . convert_struct(\$1) . \"\"", "(.*?)(.*?)", "\"\" . convert_param(\$1) . \"\$2\"", "(.*?)(.*?)", "\"\" . convert_param(\$1) . \"\$2\""); while($ARGV[0] =~ m/^-(.*)/) { my $cmd = shift @ARGV; if ($cmd eq "-db") { $databasefile = shift @ARGV } else { usage(); } } $inputfile = shift @ARGV; sub open_database { open (my $handle, '<', $databasefile) or die "Cannot open $databasefile"; chomp(my @lines = <$handle>); close $handle; @database = @lines; } sub process_file { open_database(); my $dohighlight; foreach my $pattern (keys %highlights) { $dohighlight .= "\$line =~ s:$pattern:$highlights{$pattern}:eg;\n"; } open(FILE, $inputfile) or die("Could not open $inputfile") or die ("Cannot open $inputfile"); foreach my $line () { eval $dohighlight; print $line; } } sub trim($_) { my $str = $_[0]; $str =~ s/^\s+|\s+$//g; return $str } sub has_key_defined($_) { if ( grep( /^$_[0]$/, @database)) { return 1; } return 0; } # Gets a content and add it a hyperlink if possible. sub convert_function($_) { my $arg = $_[0]; my $key = $_[0]; my $line = $_[1]; $key = trim($key); $key =~ s/[^A-Za-z0-9]/-/g; $key = "API-" . $key; # We shouldn't add links to prototype if (!has_key_defined($key) || $line =~ m/\s+$head$tail"; } # Converting a struct text to link sub convert_struct($_) { my $arg = $_[0]; my $key = $_[0]; $key =~ s/(struct )?(\w)/$2/g; $key =~ s/[^A-Za-z0-9]/-/g; $key = "API-struct-" . $key; if (!has_key_defined($key)) { return $arg; } my ($head, $tail) = split_pointer($arg); return "$head$tail"; } # Identify "object *" elements sub split_pointer($_) { my $arg = $_[0]; if ($arg =~ /(.*?)( ?\* ?)/) { return ($1, $2); } return ($arg, ""); } sub convert_param($_) { my $type = $_[0]; my $keyname = convert_key_name($type); if (!has_key_defined($keyname)) { return $type; } my ($head, $tail) = split_pointer($type); return "$head$tail"; } # DocBook links are in the API-- format # This method gets an element and returns a valid DocBook reference for it. sub convert_key_name($_) { #Pattern $2 is optional and might be uninitialized no warnings 'uninitialized'; my $str = $_[0]; $str =~ s/(const|static)? ?(struct)? ?([a-zA-Z0-9_]+) ?(\*|&)?/$2 $3/g ; # trim $str =~ s/^\s+|\s+$//g; # spaces and _ to - $str =~ s/[^A-Za-z0-9]/-/g; return "API-" . $str; } sub usage { print "Usage: $0 -db database filename\n"; print " xml source file(s) > outputfile\n"; exit 1; } # starting point process_file(); if ($errors) { print STDERR "$errors errors\n"; } exit($errors); ight'>2017-02-03 15:43:30 -0800 committerLinus Torvalds <torvalds@linux-foundation.org>2017-02-03 15:43:30 -0800 commita49e6f584e29785f9e5eb8dd31435746818dd5c4 (patch) treeceb19acc16ea98335e44f5db95c7e23102ad9f64 /drivers parente9f7f17d53003ee46ccbaf057f7820bfb6e76b9d (diff)parent79134d11d030b886106bf45a5638c1ccb1f0856c (diff)
Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
Pull virtio/vhost fixes from Michael S. Tsirkin: "Last minute fixes: - ARM DMA fix revert - vhost endian-ness fix - MAINTAINERS: email address change for Amit" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: MAINTAINERS: update email address for Amit Shah vhost: fix initialization for vq->is_le Revert "vring: Force use of DMA API for ARM-based systems with legacy devices"
Diffstat (limited to 'drivers')
-rw-r--r--drivers/vhost/vhost.c10
-rw-r--r--drivers/virtio/virtio_ring.c7
2 files changed, 4 insertions, 13 deletions
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c