From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Jackson Subject: [PATCH 3/4] docs/html/hcall: Generate an "index.html" Date: Sun, 13 Nov 2011 19:21:05 +0000 Message-ID: <1321212066-10648-4-git-send-email-ian.jackson@eu.citrix.com> References: <1321212066-10648-1-git-send-email-ian.jackson@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: In-Reply-To: <1321212066-10648-1-git-send-email-ian.jackson@eu.citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com Cc: Ian Jackson List-Id: xen-devel@lists.xenproject.org Generate an "index.html" containing various useful links. Signed-off-by: Ian Jackson --- docs/xen-headers | 55 ++++++++++++++++++++++++++++++++++++++++++++++ xen/include/public/xen.h | 4 ++- 2 files changed, 58 insertions(+), 1 deletions(-) diff --git a/docs/xen-headers b/docs/xen-headers index 6918380..3cc9e40 100755 --- a/docs/xen-headers +++ b/docs/xen-headers @@ -50,6 +50,8 @@ my ($basedir,@indirs) = @ARGV; # general globals our $pass; our %sdef; +our @incontents; +our @outfiles; # $sdef{$type}{$name} => { # DefLocs => { "$leaf_path:$lineno" => $leaf_opath ,... } # Xrefs => { "$leaf_path,$lineno" => "$xref", ... } @@ -177,6 +179,19 @@ sub out_xrefs ($) { @pending_xrefs = (); } +sub incontents ($$$) { + my ($text, $seq, $anchor) = @_; + $anchor = "incontents_$anchor"; + if ($pass==2) { + push @incontents, { + Seq => $seq, + Href => "$leaf_opath#$anchor", + Title => $text, + }; + } + return "$text"; +} + sub write_file ($$) { my ($opath, $odata) = @_; my $out = new IO::File "$opath.new", '>' or die "$opath $!"; @@ -231,6 +246,8 @@ sub process_file ($$) { } } elsif (s/^( \s* \#define \s+ ) (\w+) ( \s+\S ) / $1.defmacro($2).norm($3) /xe) { + } elsif (s/( \`incontents \s+ (\d+) \s+ (\w+) \s+ )(\S .* \S) + / norm($1).incontents($4, $2, $3) /xe) { } else { if (m/^\s*\}/) { $in_enum = undef; @@ -250,11 +267,47 @@ sub process_file ($$) { warning("pending xrefs at end of file") if @pending_xrefs; if ($pass == 2) { + push @outfiles, [ $leaf, $leaf_opath ]; $o .= ""; write_file($outfile, $o); } } +sub output_index () { + my $title = "contents - $xtitle"; + $o = ''; + $o .= <$title + +

$title

+

Starting points

+
    +END + foreach my $ic (sort { $a->{Seq} <=> $b->{Seq} } @incontents) { + $o .= "
  • {Href}\">$ic->{Title}
  • \n"; + } + $o .= "
\n"; + my $forkind = sub { + my ($type,$desc,$pfx,$sfx) = @_; + $o .= "

$desc

    \n"; + foreach my $name (sort keys %{ $sdef{$type} }) { + my $href = refhref($type,$name); + next unless $href =~ m/\S/; + $o .= "
  • $pfx$name$sfx
  • \n"; + } + $o .= "
\n"; + }; + $forkind->('Func','Functions','','()'); + $forkind->('Struct','Structs','struct ',''); + $forkind->('Enum','Enums and sets of #defines','',''); + $forkind->('EnumVal','Enum values and individual #defines','',''); + $o .= "\n

Files

    \n"; + foreach my $of (sort { $a->[0] cmp $b->[0] } @outfiles) { + $o .= "
  • [1]\">$of->[0]
  • \n"; + } + $o .= "
\n"; + write_file("$outdir/index.html", $o); +} foreach $pass (qw(1 2)) { find({ wanted => @@ -279,3 +332,5 @@ foreach $pass (qw(1 2)) { }, map { "$basedir/$_" } @indirs); } + +output_index(); diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h index f2c9e6f..a5b6ad8 100644 --- a/xen/include/public/xen.h +++ b/xen/include/public/xen.h @@ -55,7 +55,9 @@ DEFINE_XEN_GUEST_HANDLE(xen_pfn_t); * HYPERCALLS */ -/* ` enum hypercall_num { // __HYPERVISOR_* => HYPERVISOR_*() */ +/* `incontents 100 hcalls List of hypercalls + * ` enum hypercall_num { // __HYPERVISOR_* => HYPERVISOR_*() + */ #define __HYPERVISOR_set_trap_table 0 #define __HYPERVISOR_mmu_update 1 -- 1.7.2.5