ia64/xen-unstable

changeset 2882:3dc3b5f86f14

bitkeeper revision 1.1159.161.1 (418a3249MX0PQyRbhsfQoMbvQ4Q62A)

finalized interface manual, user manual still needs a bit more work
author smh22@tempest.cl.cam.ac.uk
date Thu Nov 04 13:44:41 2004 +0000 (2004-11-04)
parents 9813d8e70a3b
children f6afd85efce0
files .rootkeys docs/html.sty docs/src/interface.tex docs/src/user.tex
line diff
     1.1 --- a/.rootkeys	Thu Nov 04 11:27:56 2004 +0000
     1.2 +++ b/.rootkeys	Thu Nov 04 13:44:41 2004 +0000
     1.3 @@ -14,6 +14,7 @@ 4188d881_D8HpHnhHabA46_ycKwQyw buildconf
     1.4  3f9e7d53iC47UnlfORp9iC1vai6kWw docs/Makefile
     1.5  4187c1c7IWmBinGdI19kL4MuZ6RLbQ docs/check_pkgs
     1.6  3f9e7d60PWZJeVh5xdnk0nLUdxlqEA docs/figs/xenlogo.eps
     1.7 +418a3248xjIqmNKo0v_XQSfAvlBGFw docs/html.sty
     1.8  4022a73cgxX1ryj1HgS-IwwB6NUi2A docs/misc/XenDebugger-HOWTO
     1.9  412f4bd9sm5mCQ8BkrgKcAKZGadq7Q docs/misc/blkif-drivers-explained.txt
    1.10  40d6ccbfKKBq8jE0ula4eHEzBiQuDA docs/misc/xen_config.html
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/docs/html.sty	Thu Nov 04 13:44:41 2004 +0000
     2.3 @@ -0,0 +1,887 @@
     2.4 +%
     2.5 +% $Id: html.sty,v 1.23 1998/02/26 10:32:24 latex2html Exp $
     2.6 +% LaTeX2HTML Version 96.2 : html.sty
     2.7 +% 
     2.8 +% This file contains definitions of LaTeX commands which are
     2.9 +% processed in a special way by the translator. 
    2.10 +% For example, there are commands for embedding external hypertext links,
    2.11 +% for cross-references between documents or for including raw HTML.
    2.12 +% This file includes the comments.sty file v2.0 by Victor Eijkhout
    2.13 +% In most cases these commands do nothing when processed by LaTeX.
    2.14 +%
    2.15 +% Place this file in a directory accessible to LaTeX (i.e., somewhere
    2.16 +% in the TEXINPUTS path.)
    2.17 +%
    2.18 +% NOTE: This file works with LaTeX 2.09 or (the newer) LaTeX2e.
    2.19 +%       If you only have LaTeX 2.09, some complex LaTeX2HTML features
    2.20 +%       like support for segmented documents are not available.
    2.21 +
    2.22 +% Changes:
    2.23 +% See the change log at end of file.
    2.24 +
    2.25 +
    2.26 +% Exit if the style file is already loaded
    2.27 +% (suggested by Lee Shombert <las@potomac.wash.inmet.com>
    2.28 +\ifx \htmlstyloaded\relax \endinput\else\let\htmlstyloaded\relax\fi
    2.29 +\makeatletter
    2.30 +
    2.31 +\providecommand{\latextohtml}{\LaTeX2\texttt{HTML}}
    2.32 +
    2.33 +
    2.34 +%%% LINKS TO EXTERNAL DOCUMENTS
    2.35 +%
    2.36 +% This can be used to provide links to arbitrary documents.
    2.37 +% The first argumment should be the text that is going to be
    2.38 +% highlighted and the second argument a URL.
    2.39 +% The hyperlink will appear as a hyperlink in the HTML 
    2.40 +% document and as a footnote in the dvi or ps files.
    2.41 +%
    2.42 +\newcommand{\htmladdnormallinkfoot}[2]{#1\footnote{#2}} 
    2.43 +
    2.44 +
    2.45 +% This is an alternative definition of the command above which
    2.46 +% will ignore the URL in the dvi or ps files.
    2.47 +\newcommand{\htmladdnormallink}[2]{#1}
    2.48 +
    2.49 +
    2.50 +% This command takes as argument a URL pointing to an image.
    2.51 +% The image will be embedded in the HTML document but will
    2.52 +% be ignored in the dvi and ps files.
    2.53 +%
    2.54 +\newcommand{\htmladdimg}[1]{}
    2.55 +
    2.56 +
    2.57 +%%% CROSS-REFERENCES BETWEEN (LOCAL OR REMOTE) DOCUMENTS
    2.58 +%
    2.59 +% This can be used to refer to symbolic labels in other Latex 
    2.60 +% documents that have already been processed by the translator.
    2.61 +% The arguments should be:
    2.62 +% #1 : the URL to the directory containing the external document
    2.63 +% #2 : the path to the labels.pl file of the external document.
    2.64 +% If the external document lives on a remote machine then labels.pl 
    2.65 +% must be copied on the local machine.
    2.66 +%
    2.67 +%e.g. \externallabels{http://cbl.leeds.ac.uk/nikos/WWW/doc/tex2html/latex2html}
    2.68 +%                    {/usr/cblelca/nikos/tmp/labels.pl}
    2.69 +% The arguments are ignored in the dvi and ps files.
    2.70 +%
    2.71 +\newcommand{\externallabels}[2]{}
    2.72 +
    2.73 +
    2.74 +% This complements the \externallabels command above. The argument
    2.75 +% should be a label defined in another latex document and will be
    2.76 +% ignored in the dvi and ps files.
    2.77 +%
    2.78 +\newcommand{\externalref}[1]{}
    2.79 +
    2.80 +
    2.81 +% Suggested by  Uffe Engberg (http://www.brics.dk/~engberg/)
    2.82 +% This allows the same effect for citations in external bibliographies.
    2.83 +% An  \externallabels  command must be given, locating a labels.pl file
    2.84 +% which defines the location and keys used in the external .html file.
    2.85 +%  
    2.86 +\newcommand{\externalcite}{\nocite}
    2.87 +
    2.88 +
    2.89 +%%% HTMLRULE
    2.90 +% This command adds a horizontal rule and is valid even within
    2.91 +% a figure caption.
    2.92 +% Here we introduce a stub for compatibility.
    2.93 +\newcommand{\htmlrule}{\protect\HTMLrule}
    2.94 +\newcommand{\HTMLrule}{\@ifstar\htmlrulestar\htmlrulestar}
    2.95 +\newcommand{\htmlrulestar}[1]{}
    2.96 +
    2.97 +% This command adds information within the <BODY> ... </BODY> tag
    2.98 +%
    2.99 +\newcommand{\bodytext}[1]{}
   2.100 +\newcommand{\htmlbody}{}
   2.101 +
   2.102 +
   2.103 +%%% HYPERREF 
   2.104 +% Suggested by Eric M. Carol <eric@ca.utoronto.utcc.enfm>
   2.105 +% Similar to \ref but accepts conditional text. 
   2.106 +% The first argument is HTML text which will become ``hyperized''
   2.107 +% (underlined).
   2.108 +% The second and third arguments are text which will appear only in the paper
   2.109 +% version (DVI file), enclosing the fourth argument which is a reference to a label.
   2.110 +%
   2.111 +%e.g. \hyperref{using the tracer}{using the tracer (see Section}{)}{trace}
   2.112 +% where there is a corresponding \label{trace}
   2.113 +%
   2.114 +\newcommand{\hyperref}{\hyperrefx[ref]}
   2.115 +\def\hyperrefx[#1]{{\def\next{#1}%
   2.116 + \def\tmp{ref}\ifx\next\tmp\aftergroup\hyperrefref
   2.117 + \else\def\tmp{pageref}\ifx\next\tmp\aftergroup\hyperpageref
   2.118 + \else\def\tmp{page}\ifx\next\tmp\aftergroup\hyperpageref
   2.119 + \else\def\tmp{noref}\ifx\next\tmp\aftergroup\hypernoref
   2.120 + \else\def\tmp{no}\ifx\next\tmp\aftergroup\hypernoref
   2.121 + \else\typeout{*** unknown option \next\space to  hyperref ***}%
   2.122 + \fi\fi\fi\fi\fi}}
   2.123 +\newcommand{\hyperrefref}[4]{#2\ref{#4}#3}
   2.124 +\newcommand{\hyperpageref}[4]{#2\pageref{#4}#3}
   2.125 +\newcommand{\hypernoref}[3]{#2}
   2.126 +
   2.127 +
   2.128 +%%% HYPERCITE --- added by RRM
   2.129 +% Suggested by Stephen Simpson <simpson@math.psu.edu>
   2.130 +% effects the same ideas as in  \hyperref, but for citations.
   2.131 +% It does not allow an optional argument to the \cite, in LaTeX.
   2.132 +%
   2.133 +%   \hypercite{<html-text>}{<LaTeX-text>}{<opt-text>}{<key>}
   2.134 +%
   2.135 +% uses the pre/post-texts in LaTeX, with a  \cite{<key>}
   2.136 +%
   2.137 +%   \hypercite[ext]{<html-text>}{<LaTeX-text>}{<key>}
   2.138 +%
   2.139 +% uses the pre/post-texts in LaTeX, with a  \nocite{<key>}
   2.140 +% the actual reference comes from an \externallabels  file.
   2.141 +%
   2.142 +\newcommand{\hypercite}{\hypercitex[int]}
   2.143 +\def\hypercitex[#1]{{\def\next{#1}%
   2.144 + \def\tmp{int}\ifx\next\tmp\aftergroup\hyperciteint
   2.145 + \else\def\tmp{cite}\ifx\next\tmp\aftergroup\hyperciteint
   2.146 + \else\def\tmp{ext}\ifx\next\tmp\aftergroup\hyperciteext
   2.147 + \else\def\tmp{nocite}\ifx\next\tmp\aftergroup\hyperciteext
   2.148 + \else\def\tmp{no}\ifx\next\tmp\aftergroup\hyperciteext
   2.149 + \else\typeout{*** unknown option \next\space to  hypercite ***}%
   2.150 + \fi\fi\fi\fi\fi}}
   2.151 +\newcommand{\hyperciteint}[4]{#2{\def\tmp{#3}\def\emptyopt{}%
   2.152 + \ifx\tmp\emptyopt\cite{#4}\else\cite[#3]{#4}\fi}}
   2.153 +\newcommand{\hyperciteext}[3]{#2\nocite{#3}}
   2.154 +
   2.155 +
   2.156 +
   2.157 +%%% HTMLREF
   2.158 +% Reference in HTML version only.
   2.159 +% Mix between \htmladdnormallink and \hyperref.
   2.160 +% First arg is text for in both versions, second is label for use in HTML
   2.161 +% version.
   2.162 +\newcommand{\htmlref}[2]{#1}
   2.163 +
   2.164 +%%% HTMLCITE
   2.165 +% Reference in HTML version only.
   2.166 +% Mix between \htmladdnormallink and \hypercite.
   2.167 +% First arg is text for in both versions, second is citation for use in HTML
   2.168 +% version.
   2.169 +\newcommand{\htmlcite}[2]{#1}
   2.170 +
   2.171 +
   2.172 +%%% HTMLIMAGE
   2.173 +% This command can be used inside any environment that is converted
   2.174 +% into an inlined image (eg a "figure" environment) in order to change
   2.175 +% the way the image will be translated. The argument of \htmlimage
   2.176 +% is really a string of options separated by commas ie 
   2.177 +% [scale=<scale factor>],[external],[thumbnail=<reduction factor>
   2.178 +% The scale option allows control over the size of the final image.
   2.179 +% The ``external'' option will cause the image not to be inlined 
   2.180 +% (images are inlined by default). External images will be accessible
   2.181 +% via a hypertext link. 
   2.182 +% The ``thumbnail'' option will cause a small inlined image to be 
   2.183 +% placed in the caption. The size of the thumbnail depends on the
   2.184 +% reduction factor. The use of the ``thumbnail'' option implies
   2.185 +% the ``external'' option.
   2.186 +%
   2.187 +% Example:
   2.188 +% \htmlimage{scale=1.5,external,thumbnail=0.2}
   2.189 +% will cause a small thumbnail image 1/5th of the original size to be
   2.190 +% placed in the final document, pointing to an external image 1.5
   2.191 +% times bigger than the original.
   2.192 +% 
   2.193 +\newcommand{\htmlimage}[1]{}
   2.194 +
   2.195 +
   2.196 +% \htmlborder causes a border to be placed around an image or table
   2.197 +% when the image is placed within a <TABLE> cell.
   2.198 +\newcommand{\htmlborder}[1]{}
   2.199 +
   2.200 +% Put \begin{makeimage}, \end{makeimage} around LaTeX to ensure its
   2.201 +% translation into an image.
   2.202 +% This shields sensitive text from being translated.
   2.203 +\newenvironment{makeimage}{}{}
   2.204 +
   2.205 +
   2.206 +% A dummy environment that can be useful to alter the order
   2.207 +% in which commands are processed, in LaTeX2HTML
   2.208 +\newenvironment{tex2html_deferred}{}{}
   2.209 +
   2.210 +
   2.211 +%%% HTMLADDTONAVIGATION
   2.212 +% This command appends its argument to the buttons in the navigation
   2.213 +% panel. It is ignored by LaTeX.
   2.214 +%
   2.215 +% Example:
   2.216 +% \htmladdtonavigation{\htmladdnormallink
   2.217 +%              {\htmladdimg{http://server/path/to/gif}}
   2.218 +%              {http://server/path}}
   2.219 +\newcommand{\htmladdtonavigation}[1]{}
   2.220 +
   2.221 +
   2.222 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   2.223 +% Comment.sty   version 2.0, 19 June 1992
   2.224 +% selectively in/exclude pieces of text: the user can define new
   2.225 +% comment versions, and each is controlled separately.
   2.226 +% This style can be used with plain TeX or LaTeX, and probably
   2.227 +% most other packages too.
   2.228 +%
   2.229 +% Examples of use in LaTeX and TeX follow \endinput
   2.230 +%
   2.231 +% Author
   2.232 +%    Victor Eijkhout
   2.233 +%    Department of Computer Science
   2.234 +%    University Tennessee at Knoxville
   2.235 +%    104 Ayres Hall
   2.236 +%    Knoxville, TN 37996
   2.237 +%    USA
   2.238 +%
   2.239 +%    eijkhout@cs.utk.edu
   2.240 +%
   2.241 +% Usage: all text included in between
   2.242 +%    \comment ... \endcomment
   2.243 +% or \begin{comment} ... \end{comment}
   2.244 +% is discarded. The closing command should appear on a line
   2.245 +% of its own. No starting spaces, nothing after it.
   2.246 +% This environment should work with arbitrary amounts
   2.247 +% of comment.
   2.248 +%
   2.249 +% Other 'comment' environments are defined by
   2.250 +% and are selected/deselected with
   2.251 +% \includecomment{versiona}
   2.252 +% \excludecoment{versionb}
   2.253 +%
   2.254 +% These environments are used as
   2.255 +% \versiona ... \endversiona
   2.256 +% or \begin{versiona} ... \end{versiona}
   2.257 +% with the closing command again on a line of its own.
   2.258 +%
   2.259 +% Basic approach:
   2.260 +% to comment something out, scoop up  every line in verbatim mode
   2.261 +% as macro argument, then throw it away.
   2.262 +% For inclusions, both the opening and closing comands
   2.263 +% are defined as noop
   2.264 +%
   2.265 +% Changed \next to \html@next to prevent clashes with other sty files
   2.266 +% (mike@emn.fr)
   2.267 +% Changed \html@next to \htmlnext so the \makeatletter and
   2.268 +% \makeatother commands could be removed (they were causing other
   2.269 +% style files - changebar.sty - to crash) (nikos@cbl.leeds.ac.uk)
   2.270 +% Changed \htmlnext back to \html@next...
   2.271 +
   2.272 +\def\makeinnocent#1{\catcode`#1=12 }
   2.273 +\def\csarg#1#2{\expandafter#1\csname#2\endcsname}
   2.274 +
   2.275 +\def\ThrowAwayComment#1{\begingroup
   2.276 +    \def\CurrentComment{#1}%
   2.277 +    \let\do\makeinnocent \dospecials
   2.278 +    \makeinnocent\^^L% and whatever other special cases
   2.279 +    \endlinechar`\^^M \catcode`\^^M=12 \xComment}
   2.280 +{\catcode`\^^M=12 \endlinechar=-1 %
   2.281 + \gdef\xComment#1^^M{\def\test{#1}\edef\test{\meaning\test}
   2.282 +      \csarg\ifx{PlainEnd\CurrentComment Test}\test
   2.283 +          \let\html@next\endgroup
   2.284 +      \else \csarg\ifx{LaLaEnd\CurrentComment Test}\test
   2.285 +            \edef\html@next{\endgroup\noexpand\end{\CurrentComment}}
   2.286 +      \else \csarg\ifx{LaInnEnd\CurrentComment Test}\test
   2.287 +            \edef\html@next{\endgroup\noexpand\end{\CurrentComment}}
   2.288 +      \else \let\html@next\xComment
   2.289 +      \fi \fi \fi \html@next}
   2.290 +}
   2.291 +
   2.292 +\def\includecomment
   2.293 + #1{\expandafter\def\csname#1\endcsname{}%
   2.294 +    \expandafter\def\csname end#1\endcsname{}}
   2.295 +\def\excludecomment
   2.296 + #1{\expandafter\def\csname#1\endcsname{\ThrowAwayComment{#1}}%
   2.297 +    {\escapechar=-1\relax
   2.298 +     \edef\tmp{\string\\end#1}%
   2.299 +      \csarg\xdef{PlainEnd#1Test}{\meaning\tmp}%
   2.300 +     \edef\tmp{\string\\end\string\{#1\string\}}%
   2.301 +      \csarg\xdef{LaLaEnd#1Test}{\meaning\tmp}%
   2.302 +     \edef\tmp{\string\\end \string\{#1\string\}}%
   2.303 +      \csarg\xdef{LaInnEnd#1Test}{\meaning\tmp}%
   2.304 +    }}
   2.305 +
   2.306 +\excludecomment{comment}
   2.307 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   2.308 +% end Comment.sty
   2.309 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   2.310 +
   2.311 +%
   2.312 +% Alternative code by Robin Fairbairns, 22 September 1997
   2.313 +%
   2.314 +\newcommand\@gobbleenv{\let\reserved@a\@currenvir\@gobble@nv}
   2.315 +\long\def\@gobble@nv#1\end#2{\def\reserved@b{#2}%
   2.316 + \ifx\reserved@a\reserved@b
   2.317 +  \edef\reserved@a{\noexpand\end{\reserved@a}}%
   2.318 +  \expandafter\reserved@a
   2.319 + \else
   2.320 +  \expandafter\@gobble@nv
   2.321 + \fi}
   2.322 +
   2.323 +\renewcommand{\excludecomment}[1]{%
   2.324 +    \csname newenvironment\endcsname{#1}{\@gobbleenv}{}}
   2.325 +
   2.326 +%%% RAW HTML 
   2.327 +% 
   2.328 +% Enclose raw HTML between a \begin{rawhtml} and \end{rawhtml}.
   2.329 +% The html environment ignores its body
   2.330 +%
   2.331 +\excludecomment{rawhtml}
   2.332 +
   2.333 +
   2.334 +%%% HTML ONLY
   2.335 +%
   2.336 +% Enclose LaTeX constructs which will only appear in the 
   2.337 +% HTML output and will be ignored by LaTeX with 
   2.338 +% \begin{htmlonly} and \end{htmlonly}
   2.339 +%
   2.340 +\excludecomment{htmlonly}
   2.341 +% Shorter version
   2.342 +\newcommand{\html}[1]{}
   2.343 +
   2.344 +% for images.tex only
   2.345 +\excludecomment{imagesonly}
   2.346 +
   2.347 +%%% LaTeX ONLY
   2.348 +% Enclose LaTeX constructs which will only appear in the 
   2.349 +% DVI output and will be ignored by latex2html with 
   2.350 +%\begin{latexonly} and \end{latexonly}
   2.351 +%
   2.352 +\newenvironment{latexonly}{}{}
   2.353 +% Shorter version
   2.354 +\newcommand{\latex}[1]{#1}
   2.355 +
   2.356 +
   2.357 +%%% LaTeX or HTML
   2.358 +% Combination of \latex and \html.
   2.359 +% Say \latexhtml{this should be latex text}{this html text}
   2.360 +%
   2.361 +%\newcommand{\latexhtml}[2]{#1}
   2.362 +\long\def\latexhtml#1#2{#1}
   2.363 +
   2.364 +
   2.365 +%%% tracing the HTML conversions
   2.366 +% This alters the tracing-level within the processing
   2.367 +% performed by  latex2html  by adjusting  $VERBOSITY
   2.368 +% (see  latex2html.config  for the appropriate values)
   2.369 +%
   2.370 +\newcommand{\htmltracing}[1]{}
   2.371 +\newcommand{\htmltracenv}[1]{}
   2.372 +
   2.373 +
   2.374 +%%%  \strikeout for HTML only
   2.375 +% uses <STRIKE>...</STRIKE> tags on the argument
   2.376 +% LaTeX just gobbles it up.
   2.377 +\newcommand{\strikeout}[1]{}
   2.378 +
   2.379 +
   2.380 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   2.381 +%%% JCL - stop input here if LaTeX2e is not present
   2.382 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   2.383 +\ifx\if@compatibility\undefined
   2.384 +  %LaTeX209
   2.385 +  \makeatother\relax\expandafter\endinput
   2.386 +\fi
   2.387 +\if@compatibility
   2.388 +  %LaTeX2e in LaTeX209 compatibility mode
   2.389 +  \makeatother\relax\expandafter\endinput
   2.390 +\fi
   2.391 +
   2.392 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   2.393 +%
   2.394 +% Start providing LaTeX2e extension:
   2.395 +% This is currently:
   2.396 +%  - additional optional argument for \htmladdimg
   2.397 +%  - support for segmented documents
   2.398 +%
   2.399 +
   2.400 +\ProvidesPackage{html}
   2.401 +          [1996/12/22 v1.1 hypertext commands for latex2html (nd, hws, rrm)]
   2.402 +%%%%MG
   2.403 +
   2.404 +% This command takes as argument a URL pointing to an image.
   2.405 +% The image will be embedded in the HTML document but will
   2.406 +% be ignored in the dvi and ps files.  The optional argument
   2.407 +% denotes additional HTML tags.
   2.408 +%
   2.409 +% Example:  \htmladdimg[ALT="portrait" ALIGN=CENTER]{portrait.gif}
   2.410 +%
   2.411 +\renewcommand{\htmladdimg}[2][]{}
   2.412 +
   2.413 +%%% HTMLRULE for LaTeX2e
   2.414 +% This command adds a horizontal rule and is valid even within
   2.415 +% a figure caption.
   2.416 +%
   2.417 +% This command is best used with LaTeX2e and HTML 3.2 support.
   2.418 +% It is like \hrule, but allows for options via key--value pairs
   2.419 +% as follows:  \htmlrule[key1=value1, key2=value2, ...] .
   2.420 +% Use \htmlrule* to suppress the <BR> tag.
   2.421 +% Eg. \htmlrule[left, 15, 5pt, "none", NOSHADE] produces
   2.422 +% <BR CLEAR="left"><HR NOSHADE SIZE="15">.
   2.423 +% Renew the necessary part.
   2.424 +\renewcommand{\htmlrulestar}[1][all]{}
   2.425 +
   2.426 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   2.427 +%
   2.428 +%  renew some definitions to allow optional arguments
   2.429 +%
   2.430 +% The description of the options is missing, as yet.
   2.431 +%
   2.432 +\renewcommand{\latextohtml}{\textup{\LaTeX2\texttt{HTML}}}
   2.433 +\renewcommand{\htmladdnormallinkfoot}[3][]{#2\footnote{#3}} 
   2.434 +\renewcommand{\htmladdnormallink}[3][]{#2}
   2.435 +\renewcommand{\htmlbody}[1][]{}
   2.436 +\renewcommand{\hyperref}[1][ref]{\hyperrefx[#1]}
   2.437 +\renewcommand{\hypercite}[1][int]{\hypercitex[#1]}
   2.438 +\renewcommand{\htmlref}[3][]{#2}
   2.439 +\renewcommand{\htmlcite}[1]{#1\htmlcitex}
   2.440 +\newcommand{\htmlcitex}[2][]{{\def\tmp{#1}\ifx\tmp\@empty\else~[#1]\fi}}
   2.441 +\renewcommand{\htmlimage}[2][]{}
   2.442 +\renewcommand{\htmlborder}[2][]{}
   2.443 +
   2.444 +
   2.445 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   2.446 +%
   2.447 +%  HTML  HTMLset  HTMLsetenv
   2.448 +%
   2.449 +%  These commands do nothing in LaTeX, but can be used to place
   2.450 +%  HTML tags or set Perl variables during the LaTeX2HTML processing;
   2.451 +%  They are intended for expert use only.
   2.452 +
   2.453 +\newcommand{\HTMLcode}[2][]{}
   2.454 +\ifx\undefined\HTML\newcommand{\HTML}[2][]{}\else
   2.455 +\typeout{*** Warning: \string\HTML\space had an incompatible definition ***}%
   2.456 +\typeout{*** instead use \string\HTMLcode\space for raw HTML code ***}%
   2.457 +\fi 
   2.458 +\newcommand{\HTMLset}[3][]{}
   2.459 +\newcommand{\HTMLsetenv}[3][]{}
   2.460 +
   2.461 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   2.462 +%
   2.463 +% The following commands pertain to document segmentation, and
   2.464 +% were added by Herbert Swan <dprhws@edp.Arco.com> (with help from
   2.465 +% Michel Goossens <goossens@cern.ch>):
   2.466 +%
   2.467 +%
   2.468 +% This command inputs internal latex2html tables so that large
   2.469 +% documents can to partitioned into smaller (more manageable)
   2.470 +% segments.
   2.471 +%
   2.472 +\newcommand{\internal}[2][internals]{}
   2.473 +
   2.474 +%
   2.475 +%  Define a dummy stub \htmlhead{}.  This command causes latex2html
   2.476 +%  to define the title of the start of a new segment.  It is not
   2.477 +%  normally placed in the user's document.  Rather, it is passed to
   2.478 +%  latex2html via a .ptr file written by \segment.
   2.479 +%
   2.480 +\newcommand{\htmlhead}[3][]{}
   2.481 +
   2.482 +%  In the LaTeX2HTML version this will eliminate the title line
   2.483 +%  generated by a \segment command, but retains the title string
   2.484 +%  for use in other places.
   2.485 +%
   2.486 +\newcommand{\htmlnohead}{}
   2.487 +
   2.488 +
   2.489 +%  In the LaTeX2HTML version this put a URL into a <BASE> tag
   2.490 +%  within the <HEAD>...</HEAD> portion of a document.
   2.491 +%
   2.492 +\newcommand{\htmlbase}[1]{}
   2.493 +%
   2.494 +
   2.495 +%
   2.496 +%  The dummy command \endpreamble is needed by latex2html to
   2.497 +%  mark the end of the preamble in document segments that do
   2.498 +%  not contain a \begin{document}
   2.499 +%
   2.500 +\newcommand{\startdocument}{}
   2.501 +
   2.502 +
   2.503 +% \tableofchildlinks, \htmlinfo
   2.504 +%     by Ross Moore  ---  extensions dated 27 September 1997
   2.505 +%
   2.506 +%  These do nothing in LaTeX but for LaTeX2HTML they mark 
   2.507 +%  where the table of child-links and info-page should be placed,
   2.508 +%  when the user wants other than the default.
   2.509 +%	\tableofchildlinks	 % put mini-TOC at this location
   2.510 +%	\tableofchildlinks[off]	 % not on current page
   2.511 +%	\tableofchildlinks[none] % not on current and subsequent pages
   2.512 +%	\tableofchildlinks[on]   % selectively on current page
   2.513 +%	\tableofchildlinks[all]  % on current and all subsequent pages
   2.514 +%	\htmlinfo	 	 % put info-page at this location
   2.515 +%	\htmlinfo[off]		 % no info-page in current document
   2.516 +%	\htmlinfo[none]		 % no info-page in current document
   2.517 +%  *-versions omit the preceding <BR> tag.
   2.518 +%
   2.519 +\newcommand{\tableofchildlinks}{%
   2.520 +  \@ifstar\tableofchildlinksstar\tableofchildlinksstar}
   2.521 +\newcommand{\tableofchildlinksstar}[1][]{}
   2.522 +
   2.523 +\newcommand{\htmlinfo}{\@ifstar\htmlinfostar\htmlinfostar}
   2.524 +\newcommand{\htmlinfostar}[1][]{}
   2.525 +
   2.526 +
   2.527 +%  This redefines  \begin  to allow for an optional argument
   2.528 +%  which is used by LaTeX2HTML to specify `style-sheet' information
   2.529 +
   2.530 +\let\realLaTeX@begin=\begin
   2.531 +\renewcommand{\begin}[1][]{\realLaTeX@begin}
   2.532 +
   2.533 +
   2.534 +%
   2.535 +%  Allocate a new set of section counters, which will get incremented
   2.536 +%  for "*" forms of sectioning commands, and for a few miscellaneous
   2.537 +%  commands.
   2.538 +%
   2.539 +
   2.540 +\newcounter{lpart}
   2.541 +\newcounter{lchapter}[part]
   2.542 +\@ifundefined{c@chapter}%
   2.543 + {\let\Hchapter\relax \newcounter{lsection}[part]}%
   2.544 + {\let\Hchapter=\chapter \newcounter{lsection}[chapter]}
   2.545 +\newcounter{lsubsection}[section]
   2.546 +\newcounter{lsubsubsection}[subsection]
   2.547 +\newcounter{lparagraph}[subsubsection]
   2.548 +\newcounter{lsubparagraph}[paragraph]
   2.549 +\newcounter{lequation}
   2.550 +
   2.551 +%
   2.552 +%  Redefine "*" forms of sectioning commands to increment their
   2.553 +%  respective counters.
   2.554 +%
   2.555 +\let\Hpart=\part
   2.556 +%\let\Hchapter=\chapter
   2.557 +\let\Hsection=\section
   2.558 +\let\Hsubsection=\subsection
   2.559 +\let\Hsubsubsection=\subsubsection
   2.560 +\let\Hparagraph=\paragraph
   2.561 +\let\Hsubparagraph=\subparagraph
   2.562 +\let\Hsubsubparagraph=\subsubparagraph
   2.563 +
   2.564 +\ifx\c@subparagraph\undefined
   2.565 + \newcounter{lsubsubparagraph}[lsubparagraph]
   2.566 +\else
   2.567 + \newcounter{lsubsubparagraph}[subparagraph]
   2.568 +\fi
   2.569 +
   2.570 +%
   2.571 +%  The following definitions are specific to LaTeX2e:
   2.572 +%  (They must be commented out for LaTeX 2.09)
   2.573 +%
   2.574 +\renewcommand{\part}{\@ifstar{\stepcounter{lpart}%
   2.575 +  \bgroup\def\tmp{*}\H@part}{\bgroup\def\tmp{}\H@part}}
   2.576 +\newcommand{\H@part}[1][]{\def\tmp@a{#1}\check@align
   2.577 + \expandafter\egroup\expandafter\Hpart\tmp}
   2.578 +
   2.579 +\ifx\Hchapter\relax\else
   2.580 + \def\chapter{\resetsections \@ifstar{\stepcounter{lchapter}%
   2.581 +   \bgroup\def\tmp{*}\H@chapter}{\bgroup\def\tmp{}\H@chapter}}\fi
   2.582 +\newcommand{\H@chapter}[1][]{\def\tmp@a{#1}\check@align
   2.583 + \expandafter\egroup\expandafter\Hchapter\tmp}
   2.584 +
   2.585 +\renewcommand{\section}{\resetsubsections
   2.586 + \@ifstar{\stepcounter{lsection}\bgroup\def\tmp{*}%
   2.587 +   \H@section}{\bgroup\def\tmp{}\H@section}}
   2.588 +\newcommand{\H@section}[1][]{\def\tmp@a{#1}\check@align
   2.589 + \expandafter\egroup\expandafter\Hsection\tmp}
   2.590 +
   2.591 +\renewcommand{\subsection}{\resetsubsubsections
   2.592 + \@ifstar{\stepcounter{lsubsection}\bgroup\def\tmp{*}%
   2.593 +   \H@subsection}{\bgroup\def\tmp{}\H@subsection}}
   2.594 +\newcommand{\H@subsection}[1][]{\def\tmp@a{#1}\check@align
   2.595 + \expandafter\egroup\expandafter\Hsubsection\tmp}
   2.596 +
   2.597 +\renewcommand{\subsubsection}{\resetparagraphs
   2.598 + \@ifstar{\stepcounter{lsubsubsection}\bgroup\def\tmp{*}%
   2.599 +   \H@subsubsection}{\bgroup\def\tmp{}\H@subsubsection}}
   2.600 +\newcommand{\H@subsubsection}[1][]{\def\tmp@a{#1}\check@align
   2.601 + \expandafter\egroup\expandafter\Hsubsubsection\tmp}
   2.602 +
   2.603 +\renewcommand{\paragraph}{\resetsubparagraphs
   2.604 + \@ifstar{\stepcounter{lparagraph}\bgroup\def\tmp{*}%
   2.605 +   \H@paragraph}{\bgroup\def\tmp{}\H@paragraph}}
   2.606 +\newcommand\H@paragraph[1][]{\def\tmp@a{#1}\check@align
   2.607 + \expandafter\egroup\expandafter\Hparagraph\tmp}
   2.608 +
   2.609 +\renewcommand{\subparagraph}{\resetsubsubparagraphs
   2.610 + \@ifstar{\stepcounter{lsubparagraph}\bgroup\def\tmp{*}%
   2.611 +   \H@subparagraph}{\bgroup\def\tmp{}\H@subparagraph}}
   2.612 +\newcommand\H@subparagraph[1][]{\def\tmp@a{#1}\check@align
   2.613 + \expandafter\egroup\expandafter\Hsubparagraph\tmp}
   2.614 +
   2.615 +\ifx\Hsubsubparagraph\relax\else\@ifundefined{subsubparagraph}{}{%
   2.616 +\def\subsubparagraph{%
   2.617 + \@ifstar{\stepcounter{lsubsubparagraph}\bgroup\def\tmp{*}%
   2.618 +   \H@subsubparagraph}{\bgroup\def\tmp{}\H@subsubparagraph}}}\fi
   2.619 +\newcommand\H@subsubparagraph[1][]{\def\tmp@a{#1}\check@align
   2.620 + \expandafter\egroup\expandafter\Hsubsubparagraph\tmp}
   2.621 +
   2.622 +\def\check@align{\def\empty{}\ifx\tmp@a\empty
   2.623 + \else\def\tmp@b{center}\ifx\tmp@a\tmp@b\let\tmp@a\empty
   2.624 + \else\def\tmp@b{left}\ifx\tmp@a\tmp@b\let\tmp@a\empty
   2.625 + \else\def\tmp@b{right}\ifx\tmp@a\tmp@b\let\tmp@a\empty
   2.626 + \else\expandafter\def\expandafter\tmp@a\expandafter{\expandafter[\tmp@a]}%
   2.627 + \fi\fi\fi \def\empty{}\ifx\tmp\empty\let\tmp=\tmp@a \else 
   2.628 +  \expandafter\def\expandafter\tmp\expandafter{\expandafter*\tmp@a}%
   2.629 + \fi\fi}
   2.630 +%
   2.631 +\def\resetsections{\setcounter{section}{0}\setcounter{lsection}{0}%
   2.632 + \reset@dependents{section}\resetsubsections }
   2.633 +\def\resetsubsections{\setcounter{subsection}{0}\setcounter{lsubsection}{0}%
   2.634 + \reset@dependents{subsection}\resetsubsubsections }
   2.635 +\def\resetsubsubsections{\setcounter{subsubsection}{0}\setcounter{lsubsubsection}{0}%
   2.636 + \reset@dependents{subsubsection}\resetparagraphs }
   2.637 +%
   2.638 +\def\resetparagraphs{\setcounter{lparagraph}{0}\setcounter{lparagraph}{0}%
   2.639 + \reset@dependents{paragraph}\resetsubparagraphs }
   2.640 +\def\resetsubparagraphs{\ifx\c@subparagraph\undefined\else
   2.641 +  \setcounter{subparagraph}{0}\fi \setcounter{lsubparagraph}{0}%
   2.642 + \reset@dependents{subparagraph}\resetsubsubparagraphs }
   2.643 +\def\resetsubsubparagraphs{\ifx\c@subsubparagraph\undefined\else
   2.644 +  \setcounter{subsubparagraph}{0}\fi \setcounter{lsubsubparagraph}{0}}
   2.645 +%
   2.646 +\def\reset@dependents#1{\begingroup\let \@elt \@stpelt
   2.647 + \csname cl@#1\endcsname\endgroup}
   2.648 +%
   2.649 +%
   2.650 +%  Define a helper macro to dump a single \secounter command to a file.
   2.651 +%
   2.652 +\newcommand{\DumpPtr}[2]{%
   2.653 +\count255=\arabic{#1}\def\dummy{dummy}\def\tmp{#2}%
   2.654 +\ifx\tmp\dummy\else\advance\count255 by \arabic{#2}\fi
   2.655 +\immediate\write\ptrfile{%
   2.656 +\noexpand\setcounter{#1}{\number\count255}}}
   2.657 +
   2.658 +%
   2.659 +%  Define a helper macro to dump all counters to the file.
   2.660 +%  The value for each counter will be the sum of the l-counter
   2.661 +%      actual LaTeX section counter.
   2.662 +%  Also dump an \htmlhead{section-command}{section title} command
   2.663 +%      to the file.
   2.664 +%
   2.665 +\newwrite\ptrfile
   2.666 +\def\DumpCounters#1#2#3#4{%
   2.667 +\begingroup\let\protect=\noexpand
   2.668 +\immediate\openout\ptrfile = #1.ptr
   2.669 +\DumpPtr{part}{lpart}%
   2.670 +\ifx\Hchapter\relax\else\DumpPtr{chapter}{lchapter}\fi
   2.671 +\DumpPtr{section}{lsection}%
   2.672 +\DumpPtr{subsection}{lsubsection}%
   2.673 +\DumpPtr{subsubsection}{lsubsubsection}%
   2.674 +\DumpPtr{paragraph}{lparagraph}%
   2.675 +\DumpPtr{subparagraph}{lsubparagraph}%
   2.676 +\DumpPtr{equation}{lequation}%
   2.677 +\DumpPtr{footnote}{dummy}%
   2.678 +\def\tmp{#4}\ifx\tmp\@empty
   2.679 +\immediate\write\ptrfile{\noexpand\htmlhead{#2}{#3}}\else
   2.680 +\immediate\write\ptrfile{\noexpand\htmlhead[#4]{#2}{#3}}\fi
   2.681 +\dumpcitestatus \dumpcurrentcolor
   2.682 +\immediate\closeout\ptrfile
   2.683 +\endgroup }
   2.684 +
   2.685 +
   2.686 +%% interface to natbib.sty
   2.687 +
   2.688 +\def\dumpcitestatus{}
   2.689 +\def\loadcitestatus{\def\dumpcitestatus{%
   2.690 +  \ifciteindex\immediate\write\ptrfile{\noexpand\citeindextrue}%
   2.691 +  \else\immediate\write\ptrfile{\noexpand\citeindexfalse}\fi }%
   2.692 +}
   2.693 +\@ifpackageloaded{natbib}{\loadcitestatus}{%
   2.694 + \AtBeginDocument{\@ifpackageloaded{natbib}{\loadcitestatus}{}}}
   2.695 +
   2.696 +
   2.697 +%% interface to color.sty
   2.698 +
   2.699 +\def\dumpcurrentcolor{}
   2.700 +\def\loadsegmentcolors{%
   2.701 + \let\real@pagecolor=\pagecolor
   2.702 + \let\pagecolor\segmentpagecolor
   2.703 + \let\segmentcolor\color
   2.704 + \ifx\current@page@color\undefined \def\current@page@color{{}}\fi
   2.705 + \def\dumpcurrentcolor{\bgroup\def\@empty@{{}}%
   2.706 +   \expandafter\def\expandafter\tmp\space####1@{\def\thiscol{####1}}%
   2.707 +  \ifx\current@color\@empty@\def\thiscol{}\else
   2.708 +   \expandafter\tmp\current@color @\fi
   2.709 +  \immediate\write\ptrfile{\noexpand\segmentcolor{\thiscol}}%
   2.710 +  \ifx\current@page@color\@empty@\def\thiscol{}\else
   2.711 +   \expandafter\tmp\current@page@color @\fi
   2.712 +  \immediate\write\ptrfile{\noexpand\segmentpagecolor{\thiscol}}%
   2.713 + \egroup}%
   2.714 + \global\let\loadsegmentcolors=\relax
   2.715 +}
   2.716 +
   2.717 +% These macros are needed within  images.tex  since this inputs
   2.718 +% the <segment>.ptr files for a segment, so that counters are
   2.719 +% colors are synchronised.
   2.720 +%
   2.721 +\newcommand{\segmentpagecolor}[1][]{%
   2.722 + \@ifpackageloaded{color}{\loadsegmentcolors\bgroup
   2.723 +  \def\tmp{#1}\ifx\@empty\tmp\def\next{[]}\else\def\next{[#1]}\fi
   2.724 +  \expandafter\segmentpagecolor@\next}%
   2.725 + {\@gobble}}
   2.726 +\def\segmentpagecolor@[#1]#2{\def\tmp{#1}\def\tmpB{#2}%
   2.727 + \ifx\tmpB\@empty\let\next=\egroup
   2.728 + \else
   2.729 +  \let\realendgroup=\endgroup
   2.730 +  \def\endgroup{\edef\next{\noexpand\realendgroup
   2.731 +   \def\noexpand\current@page@color{\current@color}}\next}%
   2.732 +  \ifx\tmp\@empty\real@pagecolor{#2}\def\model{}%
   2.733 +  \else\real@pagecolor[#1]{#2}\def\model{[#1]}%
   2.734 +  \fi
   2.735 +  \edef\next{\egroup\def\noexpand\current@page@color{\current@page@color}%
   2.736 +  \noexpand\real@pagecolor\model{#2}}%
   2.737 + \fi\next}
   2.738 +%
   2.739 +\newcommand{\segmentcolor}[2][named]{\@ifpackageloaded{color}%
   2.740 + {\loadsegmentcolors\segmentcolor[#1]{#2}}{}}
   2.741 +
   2.742 +\@ifpackageloaded{color}{\loadsegmentcolors}{\let\real@pagecolor=\@gobble
   2.743 + \AtBeginDocument{\@ifpackageloaded{color}{\loadsegmentcolors}{}}}
   2.744 +
   2.745 +
   2.746 +%  Define the \segment[align]{file}{section-command}{section-title} command,
   2.747 +%  and its helper macros.  This command does four things:
   2.748 +%       1)  Begins a new LaTeX section;
   2.749 +%       2)  Writes a list of section counters to file.ptr, each
   2.750 +%           of which represents the sum of the LaTeX section
   2.751 +%           counters, and the l-counters, defined above;
   2.752 +%       3)  Write an \htmlhead{section-title} command to file.ptr;
   2.753 +%       4)  Inputs file.tex.
   2.754 +
   2.755 +\def\segment{\@ifstar{\@@htmls}{\@@html}}
   2.756 +\def\endsegment{}
   2.757 +\newcommand{\@@htmls}[1][]{\@@htmlsx{#1}}
   2.758 +\newcommand{\@@html}[1][]{\@@htmlx{#1}}
   2.759 +\def\@@htmlsx#1#2#3#4{\csname #3\endcsname* {#4}%
   2.760 +                   \DumpCounters{#2}{#3*}{#4}{#1}\input{#2}}
   2.761 +\def\@@htmlx#1#2#3#4{\csname #3\endcsname {#4}%
   2.762 +                   \DumpCounters{#2}{#3}{#4}{#1}\input{#2}}
   2.763 +
   2.764 +\makeatother
   2.765 +\endinput
   2.766 +
   2.767 +
   2.768 +% Modifications:
   2.769 +%
   2.770 +% (The listing of Initiales see Changes)
   2.771 +
   2.772 +% $Log: html.sty,v $
   2.773 +% Revision 1.23  1998/02/26 10:32:24  latex2html
   2.774 +%  --  use \providecommand for  \latextohtml
   2.775 +%  --  implemented \HTMLcode to do what \HTML did previously
   2.776 +% 	\HTML still works, unless already defined by another package
   2.777 +%  --  fixed problems remaining with undefined \chapter
   2.778 +%  --  defined \endsegment
   2.779 +%
   2.780 +% Revision 1.22  1997/12/05 11:38:18  RRM
   2.781 +%  --  implemented an optional argument to \begin for style-sheet info.
   2.782 +%  --  modified use of an optional argument with sectioning-commands
   2.783 +%
   2.784 +% Revision 1.21  1997/11/05 10:28:56  RRM
   2.785 +%  --  replaced redefinition of \@htmlrule with \htmlrulestar
   2.786 +%
   2.787 +% Revision 1.20  1997/10/28 02:15:58  RRM
   2.788 +%  --  altered the way some special html-macros are defined, so that
   2.789 +% 	star-variants are explicitly defined for LaTeX
   2.790 +% 	 -- it is possible for these to occur within  images.tex
   2.791 +% 	e.g. \htmlinfostar \htmlrulestar \tableofchildlinksstar
   2.792 +%
   2.793 +% Revision 1.19  1997/10/11 05:47:48  RRM
   2.794 +%  --  allow the dummy {tex2html_nowrap} environment in LaTeX
   2.795 +% 	use it to make its contents be evaluated in environment order
   2.796 +%
   2.797 +% Revision 1.18  1997/10/04 06:56:50  RRM
   2.798 +%  --  uses Robin Fairbairns' code for ignored environments,
   2.799 +%      replacing the previous  comment.sty  stuff.
   2.800 +%  --  extensions to the \tableofchildlinks command
   2.801 +%  --  extensions to the \htmlinfo command
   2.802 +%
   2.803 +% Revision 1.17  1997/07/08 11:23:39  RRM
   2.804 +%     include value of footnote counter in .ptr files for segments
   2.805 +%
   2.806 +% Revision 1.16  1997/07/03 08:56:34  RRM
   2.807 +%     use \textup  within the \latextohtml macro
   2.808 +%
   2.809 +% Revision 1.15  1997/06/15 10:24:58  RRM
   2.810 +%      new command  \htmltracenv  as environment-ordered \htmltracing
   2.811 +%
   2.812 +% Revision 1.14  1997/06/06 10:30:37  RRM
   2.813 +%  -   new command:  \htmlborder  puts environment into a <TABLE> cell
   2.814 +%      with a border of specified width, + other attributes.
   2.815 +%  -   new commands: \HTML  for setting arbitrary HTML tags, with attributes
   2.816 +%                    \HTMLset  for setting Perl variables, while processing
   2.817 +%                    \HTMLsetenv  same as \HTMLset , but it gets processed
   2.818 +%                                 as if it were an environment.
   2.819 +%  -   new command:  \latextohtml  --- to set the LaTeX2HTML name/logo
   2.820 +%  -   fixed some remaining problems with \segmentcolor & \segmentpagecolor
   2.821 +%
   2.822 +% Revision 1.13  1997/05/19 13:55:46  RRM
   2.823 +%      alterations and extra options to  \hypercite
   2.824 +%
   2.825 +% Revision 1.12  1997/05/09 12:28:39  RRM
   2.826 +%  -  Added the optional argument to \htmlhead, also in \DumpCounters
   2.827 +%  -  Implemented \HTMLset as a no-op in LaTeX.
   2.828 +%  -  Fixed a bug in accessing the page@color settings.
   2.829 +%
   2.830 +% Revision 1.11  1997/03/26 09:32:40  RRM
   2.831 +%  -  Implements LaTeX versions of  \externalcite  and  \hypercite  commands.
   2.832 +%     Thanks to  Uffe Engberg  and  Stephen Simpson  for the suggestions.
   2.833 +%
   2.834 +% Revision 1.10  1997/03/06 07:37:58  RRM
   2.835 +% Added the  \htmltracing  command, for altering  $VERBOSITY .
   2.836 +%
   2.837 +% Revision 1.9  1997/02/17 02:26:26  RRM
   2.838 +% - changes to counter handling (RRM)
   2.839 +% - shuffled around some definitions
   2.840 +% - changed \htmlrule of 209 mode
   2.841 +%
   2.842 +% Revision 1.8  1997/01/26 09:04:12  RRM
   2.843 +% RRM: added optional argument to sectioning commands
   2.844 +%      \htmlbase  sets the <BASE HREF=...> tag
   2.845 +%      \htmlinfo  and  \htmlinfo* allow the document info to be positioned
   2.846 +%
   2.847 +% Revision 1.7  1997/01/03 12:15:44  L2HADMIN
   2.848 +% % - fixes to the  color  and  natbib  interfaces
   2.849 +% % - extended usage of  \hyperref, via an optional argument.
   2.850 +% % - extended use comment environments to allow shifting expansions
   2.851 +% %     e.g. within \multicolumn  (`bug' reported by Luc De Coninck).
   2.852 +% % - allow optional argument to: \htmlimage, \htmlhead,
   2.853 +% %     \htmladdimg, \htmladdnormallink, \htmladdnormallinkfoot
   2.854 +% % - added new commands: \htmlbody, \htmlnohead
   2.855 +% % - added new command: \tableofchildlinks
   2.856 +%
   2.857 +% Revision 1.6  1996/12/25 03:04:54  JCL
   2.858 +% added patches to segment feature from Martin Wilck
   2.859 +%
   2.860 +% Revision 1.5  1996/12/23 01:48:06  JCL
   2.861 +%  o introduced the environment makeimage, which may be used to force
   2.862 +%    LaTeX2HTML to generate an image from the contents.
   2.863 +%    There's no magic, all what we have now is a defined empty environment
   2.864 +%    which LaTeX2HTML will not recognize and thus pass it to images.tex.
   2.865 +%  o provided \protect to the \htmlrule commands to allow for usage
   2.866 +%    within captions.
   2.867 +%
   2.868 +% Revision 1.4  1996/12/21 19:59:22  JCL
   2.869 +% - shuffled some entries
   2.870 +% - added \latexhtml command
   2.871 +%
   2.872 +% Revision 1.3  1996/12/21 12:22:59  JCL
   2.873 +% removed duplicate \htmlrule, changed \htmlrule back not to create a \hrule
   2.874 +% to allow occurrence in caption
   2.875 +%
   2.876 +% Revision 1.2  1996/12/20 04:03:41  JCL
   2.877 +% changed occurrence of \makeatletter, \makeatother
   2.878 +% added new \htmlrule command both for the LaTeX2.09 and LaTeX2e
   2.879 +% sections
   2.880 +%
   2.881 +%
   2.882 +% jcl 30-SEP-96
   2.883 +%  - Stuck the commands commonly used by both LaTeX versions to the top,
   2.884 +%    added a check which stops input or reads further if the document
   2.885 +%    makes use of LaTeX2e.
   2.886 +%  - Introduced rrm's \dumpcurrentcolor and \bodytext
   2.887 +% hws 31-JAN-96 - Added support for document segmentation
   2.888 +% hws 10-OCT-95 - Added \htmlrule command
   2.889 +% jz 22-APR-94 - Added support for htmlref
   2.890 +% nd  - Created
     3.1 --- a/docs/src/interface.tex	Thu Nov 04 11:27:56 2004 +0000
     3.2 +++ b/docs/src/interface.tex	Thu Nov 04 13:44:41 2004 +0000
     3.3 @@ -1,5 +1,5 @@
     3.4  \documentclass[11pt,twoside,final,openright]{xenstyle}
     3.5 -\usepackage{a4,graphicx,setspace,times}
     3.6 +\usepackage{a4,graphicx,html,setspace,times}
     3.7  \usepackage{comment,parskip}
     3.8  \setstretch{1.15}
     3.9  
    3.10 @@ -50,7 +50,7 @@ Contributions of material, suggestions a
    3.11  \renewcommand{\bottomfraction}{.8}
    3.12  \renewcommand{\textfraction}{.2}
    3.13  \renewcommand{\floatpagefraction}{.8}
    3.14 -\setstretch{1.15}
    3.15 +\setstretch{1.1}
    3.16  
    3.17  \chapter{Introduction}
    3.18  
    3.19 @@ -109,7 +109,7 @@ in later chapters.
    3.20  All privileged state must be handled by Xen.  The guest OS has no
    3.21  direct access to CR3 and is not permitted to update privileged bits in
    3.22  EFLAGS. Guest OSes use \emph{hypercalls} to invoke operations in Xen; 
    3.23 -these are analagous to system calls but occur from ring 1 to ring 0. 
    3.24 +these are analogous to system calls but occur from ring 1 to ring 0. 
    3.25  
    3.26  A list of all hypercalls is given in Appendix~\ref{a:hypercalls}. 
    3.27  
    3.28 @@ -125,11 +125,13 @@ handler is somewhat different.
    3.29  
    3.30  \section{Interrupts and events}
    3.31  
    3.32 -Interrupts are virtualized by mapping them to events, which are
    3.33 -delivered asynchronously to the target domain.  A guest OS can map
    3.34 -these events onto its standard interrupt dispatch mechanisms.  Xen 
    3.35 -is responsible for determining the target domain that will handle 
    3.36 -each physical interrupt source. 
    3.37 +Interrupts are virtualized by mapping them to \emph{events}, which are
    3.38 +delivered asynchronously to the target domain using a callback
    3.39 +supplied via the {\tt set\_callbacks()} hypercall.  A guest OS can map
    3.40 +these events onto its standard interrupt dispatch mechanisms.  Xen is
    3.41 +responsible for determining the target domain that will handle each
    3.42 +physical interrupt source. For more details on the binding of event
    3.43 +sources to events, see Chapter~\ref{c:devices}. 
    3.44  
    3.45  
    3.46  
    3.47 @@ -146,7 +148,7 @@ time are provided:
    3.48  
    3.49  This provides a fine-grained time reference.  The cycle counter time is
    3.50  used to accurately extrapolate the other time references.  On SMP machines
    3.51 -it is currently assumed that the cycle counter time is synchronised between
    3.52 +it is currently assumed that the cycle counter time is synchronized between
    3.53  CPUs.  The current x86-based implementation achieves this within inter-CPU
    3.54  communication latencies.
    3.55  
    3.56 @@ -196,6 +198,40 @@ set\_timer\_op()} hypercall.  Guest OSes
    3.57  implement timeout values when they block.
    3.58  
    3.59  
    3.60 +
    3.61 +%% % akw: demoting this to a section -- not sure if there is any point
    3.62 +%% % though, maybe just remove it.
    3.63 +
    3.64 +\section{Xen CPU Scheduling}
    3.65 +
    3.66 +Xen offers a uniform API for CPU schedulers.  It is possible to choose
    3.67 +from a number of schedulers at boot and it should be easy to add more.
    3.68 +The BVT, Atropos and Round Robin schedulers are part of the normal
    3.69 +Xen distribution.  BVT provides proportional fair shares of the CPU to
    3.70 +the running domains.  Atropos can be used to reserve absolute shares
    3.71 +of the CPU for each domain.  Round-robin is provided as an example of
    3.72 +Xen's internal scheduler API.
    3.73 +
    3.74 +\paragraph*{Note: SMP host support}
    3.75 +Xen has always supported SMP host systems.  Domains are statically assigned to
    3.76 +CPUs, either at creation time or when manually pinning to a particular CPU.
    3.77 +The current schedulers then run locally on each CPU to decide which of the
    3.78 +assigned domains should be run there. The user-level control software 
    3.79 +can be used to perform coarse-grain load-balancing between CPUs. 
    3.80 +
    3.81 +
    3.82 +%% More information on the characteristics and use of these schedulers is
    3.83 +%% available in {\tt Sched-HOWTO.txt}.
    3.84 +
    3.85 +
    3.86 +\section{Privileged operations}
    3.87 +
    3.88 +Xen exports an extended interface to privileged domains (viz.\ {\it
    3.89 +  Domain 0}). This allows such domains to build and boot other domains 
    3.90 +on the server, and provides control interfaces for managing 
    3.91 +scheduling, memory, networking, and block devices. 
    3.92 +
    3.93 +
    3.94  \chapter{Memory}
    3.95  \label{c:memory} 
    3.96  
    3.97 @@ -229,11 +265,11 @@ current memory allocation up to its limi
    3.98  \section{Pseudo-Physical Memory}
    3.99  
   3.100  Since physical memory is allocated and freed on a page granularity,
   3.101 -there is no gaurantee that a domain will receive a contiguous stretch
   3.102 +there is no guarantee that a domain will receive a contiguous stretch
   3.103  of physical memory. However most operating systems do not have good
   3.104  support for operating in a fragmented physical address space. To aid
   3.105  porting such operating systems to run on top of Xen, we make a
   3.106 -distinction between \emph{machine memory} and \emph{pseduo-physical
   3.107 +distinction between \emph{machine memory} and \emph{pseudo-physical
   3.108  memory}.
   3.109  
   3.110  Put simply, machine memory refers to the entire amount of memory
   3.111 @@ -305,6 +341,13 @@ example, when the guest modifies a diffe
   3.112  domain is preempted, or whenever the guest uses Xen's explicit
   3.113  page-table update interfaces.
   3.114  
   3.115 +Finally, Xen also supports a form of \emph{shadow page tables} in
   3.116 +which the guest OS uses a independent copy of page tables which are
   3.117 +unknown to the hardware (i.e.\ which are never pointed to by {\tt
   3.118 +cr3}). Instead Xen propagates changes made to the guest's tables to the
   3.119 +real ones, and vice versa. This is useful for logging page writes
   3.120 +(e.g.\ for live migration or checkpoint). A full version of the shadow
   3.121 +page tables also allows guest OS porting with less effort.
   3.122  
   3.123  \section{Segment Descriptor Tables}
   3.124  
   3.125 @@ -314,7 +357,7 @@ than the default `flat' ring-1 and ring-
   3.126  provides, it must register a custom GDT and/or LDT with Xen,
   3.127  allocated from its own memory. Note that a number of GDT 
   3.128  entries are reserved by Xen -- any custom GDT must also include
   3.129 -sufficent space for these entries. 
   3.130 +sufficient space for these entries. 
   3.131  
   3.132  For example, the following hypercall is used to specify a new GDT: 
   3.133  
   3.134 @@ -345,7 +388,7 @@ the processor is already executing in pr
   3.135  enabled.
   3.136  
   3.137  {\it Domain 0} is created and booted by Xen itself. For all subsequent
   3.138 -donains, the analogue of the boot-loader is the {\it domain builder},
   3.139 +domains, the analogue of the boot-loader is the {\it domain builder},
   3.140  user-space software running in {\it domain 0}. The domain builder 
   3.141  is responsible for building the initial page tables for a domain  
   3.142  and loading its kernel image at the appropriate virtual address. 
   3.143 @@ -353,6 +396,7 @@ and loading its kernel image at the appr
   3.144  
   3.145  
   3.146  \chapter{Devices}
   3.147 +\label{c:devices}
   3.148  
   3.149  Devices such as network and disk are exported to guests using a
   3.150  split device driver.  The device driver domain, which accesses the
   3.151 @@ -363,17 +407,31 @@ domains is composed of two parts:  First
   3.152  memory page between the domains.  Second, an event channel between the
   3.153  two domains is used to pass notification that data is outstanding.
   3.154  This separation of notification from data transfer allows message
   3.155 -batching, and results in very efficient device access.  Specific
   3.156 -details on inter-domain communication are available in
   3.157 -Appendix~\ref{s:idc}.
   3.158 +batching, and results in very efficient device access.  
   3.159  
   3.160 -This chapter provides details on some individual device interfaces
   3.161 +Even channels are used extensively in device virtualization; each
   3.162 +domain has a number of end-points or \emph{ports} each of which
   3.163 +may be bound to one of the following \emph{event sources}:
   3.164 +\begin{itemize} 
   3.165 +  \item a physical interrupt from a real device, 
   3.166 +  \item a virtual interrupt (callback) from Xen, or 
   3.167 +  \item a signal from another domain 
   3.168 +\end{itemize}
   3.169 +
   3.170 +Events are lightweight and do not carry much information beyond 
   3.171 +the source of the notification. Hence when performing bulk data
   3.172 +transfer, events are typically used as synchronization primitives
   3.173 +over a shared memory transport. Event channels are managed via 
   3.174 +the {\tt event\_channel\_op()} hypercall; for more details see
   3.175 +Section~\ref{s:idc}. 
   3.176 +
   3.177 +This chapter focuses on some individual device interfaces
   3.178  available to Xen guests. 
   3.179  
   3.180  \section{Network I/O}
   3.181  
   3.182  Virtual network device services are provided by shared memory
   3.183 -communications with a backend domain.  From the point of view of
   3.184 +communication with a backend domain.  From the point of view of
   3.185  other domains, the backend may be viewed as a virtual ethernet switch
   3.186  element with each domain having one or more virtual network interfaces
   3.187  connected to it.
   3.188 @@ -476,7 +534,7 @@ can be exported as a VBD.  Each VBD is m
   3.189  guest, specified in the guest's startup configuration.
   3.190  
   3.191  Old (Xen 1.2) virtual disks are not supported under Xen 2.0, since
   3.192 -similar functionality can be achieved using the (more advanced) LVM
   3.193 +similar functionality can be achieved using the more complete LVM
   3.194  system, which is already in widespread use.
   3.195  
   3.196  \subsection{Data Transfer}
   3.197 @@ -514,34 +572,51 @@ messages:
   3.198  %% %block API here 
   3.199  
   3.200  
   3.201 -% akw: demoting this to a section -- not sure if there is any point
   3.202 -% though, maybe just remove it.
   3.203 -\section{Privileged operations}
   3.204 -{\it Domain0} is responsible for building all other domains on the server
   3.205 -and providing control interfaces for managing scheduling, networking, and
   3.206 -blocks.
   3.207 -
   3.208 -\chapter{CPU Scheduler}
   3.209 -
   3.210 -Xen offers a uniform API for CPU schedulers.  It is possible to choose
   3.211 -from a number of schedulers at boot and it should be easy to add more.
   3.212 +\chapter{Further Information} 
   3.213  
   3.214 -\paragraph*{Note: SMP host support}
   3.215 -Xen has always supported SMP host systems.  Domains are statically assigned to
   3.216 -CPUs, either at creation time or when manually pinning to a particular CPU.
   3.217 -The current schedulers then run locally on each CPU to decide which of the
   3.218 -assigned domains should be run there.
   3.219 -
   3.220 -\section{Standard Schedulers}
   3.221  
   3.222 -These BVT, Atropos and Round Robin schedulers are part of the normal
   3.223 -Xen distribution.  BVT provides proportional fair shares of the CPU to
   3.224 -the running domains.  Atropos can be used to reserve absolute shares
   3.225 -of the CPU for each domain.  Round-robin is provided as an example of
   3.226 -Xen's internal scheduler API.
   3.227 +If you have questions that are not answered by this manual, the
   3.228 +sources of information listed below may be of interest to you.  Note
   3.229 +that bug reports, suggestions and contributions related to the
   3.230 +software (or the documentation) should be sent to the Xen developers'
   3.231 +mailing list (address below).
   3.232  
   3.233 -More information on the characteristics and use of these schedulers is
   3.234 -available in {\tt Sched-HOWTO.txt}.
   3.235 +\section{Other documentation}
   3.236 +
   3.237 +If you are mainly interested in using (rather than developing for)
   3.238 +Xen, the {\em Xen Users' Manual} is distributed in the {\tt docs/}
   3.239 +directory of the Xen source distribution.  
   3.240 +
   3.241 +% Various HOWTOs are also available in {\tt docs/HOWTOS}.
   3.242 +
   3.243 +\section{Online references}
   3.244 +
   3.245 +The official Xen web site is found at:
   3.246 +\begin{quote}
   3.247 +{\tt http://www.cl.cam.ac.uk/Research/SRG/netos/xen/}
   3.248 +\end{quote}
   3.249 +
   3.250 +This contains links to the latest versions of all on-line 
   3.251 +documentation. 
   3.252 +
   3.253 +\section{Mailing lists}
   3.254 +
   3.255 +There are currently three official Xen mailing lists:
   3.256 +
   3.257 +\begin{description}
   3.258 +\item[xen-devel@lists.sourceforge.net] Used for development
   3.259 +discussions and requests for help.  Subscribe at: \\
   3.260 +{\small {\tt http://lists.sourceforge.net/mailman/listinfo/xen-devel}}
   3.261 +\item[xen-announce@lists.sourceforge.net] Used for announcements only.
   3.262 +Subscribe at: \\
   3.263 +{\small {\tt http://lists.sourceforge.net/mailman/listinfo/xen-announce}}
   3.264 +\item[xen-changelog@lists.sourceforge.net]  Changelog feed
   3.265 +from the unstable and 2.0 trees - developer oriented.  Subscribe at: \\
   3.266 +{\small {\tt http://lists.sourceforge.net/mailman/listinfo/xen-changelog}}
   3.267 +\end{description}
   3.268 +
   3.269 +Of these, xen-devel is the most active; it is currently used for 
   3.270 +both developer and user-related discussions. 
   3.271  
   3.272  
   3.273  
   3.274 @@ -635,7 +710,7 @@ install a `virtual IDT' by using the fol
   3.275  Install one or more entries into the per-domain 
   3.276  trap handler table (essentially a software version of the IDT). 
   3.277  Each entry in the array pointed to by {\tt table} includes the 
   3.278 -exception vector number with the corresponding segement selector 
   3.279 +exception vector number with the corresponding segment selector 
   3.280  and entry point. Most guest OSes can use the same handlers on 
   3.281  Xen as when running on the real hardware; an exception is the 
   3.282  page fault handler (exception vector 14) where a modified 
   3.283 @@ -666,10 +741,10 @@ to {\tt set\_trap\_table()}).
   3.284  
   3.285  \section{Scheduling and Timer}
   3.286  
   3.287 -Domains are premptively scheduled by Xen according to the 
   3.288 +Domains are preemptively scheduled by Xen according to the 
   3.289  parameters installed by domain 0 (see Section~\ref{s:dom0ops}). 
   3.290  In addition, however, a domain may choose to explicitly 
   3.291 -control certain behaviour with the following hypercall: 
   3.292 +control certain behavior with the following hypercall: 
   3.293  
   3.294  \begin{quote} 
   3.295  \hypercall{sched\_op(unsigned long op)} 
   3.296 @@ -713,7 +788,7 @@ a new page-table base pointer, and more.
   3.297  
   3.298  Update the page table for the domain; a set of {\tt count} updates are
   3.299  submitted for processing in a batch, with {\tt success\_count} being 
   3.300 -updated to report the number of successfull updates.  
   3.301 +updated to report the number of successful updates.  
   3.302  
   3.303  Each element of {\tt req[]} contains a pointer (address) and value; 
   3.304  the least significant 2-bits of the pointer are used to distinguish 
   3.305 @@ -752,7 +827,7 @@ efficient, but can require a number of a
   3.306  OS. Using the writable page table mode (Chapter~\ref{c:memory}) is
   3.307  recommended for new OS ports.
   3.308  
   3.309 -Regardlesss of which page table update mode is being used, however,
   3.310 +Regardless of which page table update mode is being used, however,
   3.311  there are some occasions (notably handling a demand page fault) where
   3.312  a guest OS will wish to modify exactly one PTE rather than a
   3.313  batch. This is catered for by the following:
   3.314 @@ -805,7 +880,7 @@ reserved entries (see {\tt xen/include/p
   3.315  \end{quote}
   3.316  
   3.317  Many guest OSes will also wish to install LDTs; this is achieved by
   3.318 -using {\tt mmu\_update()} with an extended commmand, passing the
   3.319 +using {\tt mmu\_update()} with an extended command, passing the
   3.320  linear address of the LDT base along with the number of entries. No
   3.321  special safety checks are required; Xen needs to perform this task
   3.322  simply since {\tt lldt} requires CPL 0.
   3.323 @@ -840,7 +915,7 @@ stack pointer:
   3.324  \hypercall{stack\_switch(unsigned long ss, unsigned long esp)} 
   3.325  
   3.326  Request kernel stack switch from hypervisor; {\tt ss} is the new 
   3.327 -stack segement, which {\tt esp} is the new stack pointer. 
   3.328 +stack segment, which {\tt esp} is the new stack pointer. 
   3.329  
   3.330  \end{quote} 
   3.331  
   3.332 @@ -935,18 +1010,42 @@ bandwidth for communication {\sl per se}
   3.333  married with a piece of shared memory to produce effective and 
   3.334  high-performance inter-domain communication. 
   3.335  
   3.336 -Safe sharing of memory pages between guest OSes is carried out granting
   3.337 -access on a per page basis to individual domains. This is achieved 
   3.338 -by using the {\tt grant\_table\_op()} hypercall. 
   3.339 +Safe sharing of memory pages between guest OSes is carried out by
   3.340 +granting access on a per page basis to individual domains. This is
   3.341 +achieved by using the {\tt grant\_table\_op()} hypercall.
   3.342  
   3.343 -XXX SMH: damn, found some more calls - needs little bit more yet.
   3.344 -
   3.345 +\begin{quote}
   3.346  \hypercall{grant\_table\_op(unsigned int cmd, void *uop, unsigned int count)}
   3.347  
   3.348 +Grant or remove access to a particular page to a particular domain. 
   3.349 +
   3.350 +\end{quote} 
   3.351 +
   3.352 +This is not currently widely in use by guest operating systems, but 
   3.353 +we intend to integrate support more fully in the near future. 
   3.354 +
   3.355 +\section{PCI Configuration} 
   3.356 +
   3.357 +Domains with physical device access (i.e.\ driver domains) receive
   3.358 +limited access to certain PCI devices (bus address space and
   3.359 +interrupts). However many guest operating systems attempt to 
   3.360 +determine the PCI configuration by directly access the PCI BIOS, 
   3.361 +which cannot be allowed for safety. 
   3.362 +
   3.363 +Instead, Xen provides the following hypercall: 
   3.364 +
   3.365 +\begin{quote}
   3.366  \hypercall{physdev\_op(void *physdev\_op)}
   3.367  
   3.368 -\hypercall{vm\_assist(unsigned int cmd, unsigned int type)}
   3.369 +Perform a PCI configuration option; depending on the value 
   3.370 +of {\tt physdev\_op} this can be a PCI config read, a PCI config 
   3.371 +write, or a small number of other queries. 
   3.372  
   3.373 +\end{quote} 
   3.374 +
   3.375 +
   3.376 +For examples of using {\tt physdev\_op()}, see the 
   3.377 +Xen-specific PCI code in the linux sparse tree. 
   3.378  
   3.379  \section{Administrative Operations}
   3.380  \label{s:dom0ops}
   3.381 @@ -1020,13 +1119,13 @@ with a domain
   3.382  \end{description} 
   3.383  \end{quote} 
   3.384  
   3.385 -
   3.386 -
   3.387 -
   3.388 +Most of the above are best understood by looking at the code 
   3.389 +implementing them (in {\tt xen/common/dom0\_ops.c}) and in 
   3.390 +the user-space tools that use them (mostly in {\tt tools/libxc}). 
   3.391  
   3.392  \section{Debugging Hypercalls} 
   3.393  
   3.394 -A few additional hypercalls are maintly useful for debugging: 
   3.395 +A few additional hypercalls are mainly useful for debugging: 
   3.396  
   3.397  \begin{quote} 
   3.398  \hypercall{console\_io(int cmd, int count, char *str)}
   3.399 @@ -1049,13 +1148,35 @@ Set debug register {\tt reg} to {\tt val
   3.400  Return the contents of the debug register {\tt reg}
   3.401  \end{quote}
   3.402  
   3.403 -And finally, a sometimes useful call is: 
   3.404 +And finally: 
   3.405  \begin{quote}
   3.406  \hypercall{xen\_version(int cmd)}
   3.407  
   3.408  Request Xen version number.
   3.409  \end{quote} 
   3.410  
   3.411 +This is useful to ensure that user-space tools are in sync 
   3.412 +with the underlying hypervisor. 
   3.413 +
   3.414 +\section{Deprecated Hypercalls}
   3.415 +
   3.416 +Xen is under constant development and refinement; as such there 
   3.417 +are plans to improve the way in which various pieces of functionality 
   3.418 +are exposed to guest OSes. 
   3.419 +
   3.420 +\begin{quote} 
   3.421 +\hypercall{vm\_assist(unsigned int cmd, unsigned int type)}
   3.422 +
   3.423 +Toggle various memory management modes (in particular wrritable page
   3.424 +tables and superpage support). 
   3.425 +
   3.426 +\end{quote} 
   3.427 +
   3.428 +This is likely to be replaced with mode values in the shared 
   3.429 +information page since this is more resilient for resumption 
   3.430 +after migration or checkpoint. 
   3.431 +
   3.432 +
   3.433  
   3.434  
   3.435  
     4.1 --- a/docs/src/user.tex	Thu Nov 04 11:27:56 2004 +0000
     4.2 +++ b/docs/src/user.tex	Thu Nov 04 13:44:41 2004 +0000
     4.3 @@ -1,6 +1,6 @@
     4.4  \documentclass[11pt,twoside,final,openright]{xenstyle}
     4.5 -\usepackage{a4,graphicx,parskip,setspace,times,xspace}
     4.6 -\setstretch{1.1}
     4.7 +\usepackage{a4,graphicx,html,parskip,setspace,times,xspace}
     4.8 +\setstretch{1.15}
     4.9  
    4.10  
    4.11  \def\Xend{{Xend}\xspace}
    4.12 @@ -56,8 +56,7 @@ Contributions of material, suggestions a
    4.13  \renewcommand{\floatpagefraction}{.8}
    4.14  \setstretch{1.1}
    4.15  
    4.16 -\newcommand{\path}[1]{{\small {\tt #1}}}
    4.17 -
    4.18 +\latexhtml{\newcommand{\path}[1]{{\small {\tt #1}}}}{\newcommand{\path}[1]{{\tt #1}}}
    4.19  
    4.20  \part{Introduction and Tutorial}
    4.21  \chapter{Introduction}
    4.22 @@ -551,7 +550,7 @@ fills in parts of this template.
    4.23  
    4.24  Both of them can be found in \path{/etc/xen/}
    4.25  
    4.26 -\section{Editing \path{xmdefconfig}}
    4.27 +\section{Editing {\tt xmdefconfig}}
    4.28  
    4.29  At minimum, you should edit the following 
    4.30  variables in \path{/etc/xen/xmdefconfig}:
    4.31 @@ -1511,9 +1510,10 @@ mailing list (address below).
    4.32  
    4.33  For developers interested in porting operating systems to Xen, the
    4.34  {\em Xen Interface Manual} is distributed in the \path{docs/}
    4.35 -directory of the Xen source distribution.  Various HOWTOs are
    4.36 -available in \path{docs/HOWTOS} but this content is being integrated
    4.37 -into this manual.
    4.38 +directory of the Xen source distribution.  
    4.39 +
    4.40 +%Various HOWTOs are available in \path{docs/HOWTOS} but this content is
    4.41 +%being integrated into this manual.
    4.42  
    4.43  \section{Online references}
    4.44