  % Handle batch mode
  % to overcome problems with too many open files
  \let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}
  % Set document class depending on configuration
  \documentclass[twoside]{book}
  %% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
  \usepackage{ifthen}
  \ifx\requestedLaTeXdate\undefined
    \usepackage{array}
  \else
    \usepackage{array}[=2016-10-06]
  \fi
  %%
  % Packages required by doxygen
  \usepackage{fixltx2e} % for \textsubscript
  \usepackage{doxygen}
  \usepackage{graphicx}
  \usepackage[utf8]{inputenc}
  \usepackage{makeidx}
  \PassOptionsToPackage{warn}{textcomp}
  \usepackage{textcomp}
  \usepackage[nointegrals]{wasysym}
  \usepackage{ifxetex}
  % NLS support packages
  % Define default fonts
  % Font selection
  \usepackage[T1]{fontenc}
  % set main and monospaced font
  \usepackage[scaled=.90]{helvet}
\usepackage{courier}
\renewcommand{\familydefault}{\sfdefault}
  \usepackage{sectsty}
  \allsectionsfont{%
    \fontseries{bc}\selectfont%
    \color{darkgray}%
  }
  \renewcommand{\DoxyLabelFont}{%
    \fontseries{bc}\selectfont%
    \color{darkgray}%
  }
  \newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
   % Arguments of doxygenemoji:
   % 1) ':<text>:' form of the emoji, already LaTeX-escaped
   % 2) file with the name of the emoji without the .png extension
   % in case image exist use this otherwise use the ':<text>:' form
   \newcommand{\doxygenemoji}[2]{%
     \IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}%
   }
  % Page & text layout
  \usepackage{geometry}
  \geometry{%
    a4paper,%
    top=2.5cm,%
    bottom=2.5cm,%
    left=2.5cm,%
    right=2.5cm%
  }
  % Allow a bit of overflow to go unnoticed by other means
  \tolerance=750
  \hfuzz=15pt
  \hbadness=750
  \setlength{\emergencystretch}{15pt}
  \setlength{\parindent}{0cm}
  \newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}}
  \newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}}
  \doxynormalparskip
  % Redefine paragraph/subparagraph environments, using sectsty fonts
  \makeatletter
  \renewcommand{\paragraph}{%
    \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
      \normalfont\normalsize\bfseries\SS@parafont%
    }%
  }
  \renewcommand{\subparagraph}{%
    \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
      \normalfont\normalsize\bfseries\SS@subparafont%
    }%
  }
  \makeatother
  \makeatletter
  \newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
  \makeatother
  % Headers & footers
  \usepackage{fancyhdr}
  \pagestyle{fancyplain}
  \renewcommand{\footrulewidth}{0.4pt}
  \fancypagestyle{fancyplain}{
    \fancyhf{}
    \fancyhead[LE, RO]{\bfseries\thepage}
    \fancyhead[LO]{\bfseries\rightmark}
    \fancyhead[RE]{\bfseries\leftmark}
    \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
  }
  \fancypagestyle{plain}{
    \fancyhf{}
    \fancyfoot[LO, RE]{\bfseries\scriptsize Generated by Doxygen }
    \renewcommand{\headrulewidth}{0pt}
  }
  \pagestyle{fancyplain}
  \renewcommand{\chaptermark}[1]{%
    \markboth{#1}{}%
  }
  \renewcommand{\sectionmark}[1]{%
    \markright{\thesection\ #1}%
  }
  % ToC, LoF, LoT, bibliography, and index
  % Indices & bibliography
  \usepackage{natbib}
  \usepackage[titles]{tocloft}
  \setcounter{tocdepth}{3}
  \setcounter{secnumdepth}{5}
  % creating indexes
  \makeindex
  \usepackage{newunicodechar}
  \newunicodechar{⁻}{${}^{-}$}% Superscript minus
  \newunicodechar{²}{${}^{2}$}% Superscript two
  \newunicodechar{³}{${}^{3}$}% Superscript three
  % Hyperlinks
    % Hyperlinks (required, but should be loaded last)
    \ifpdf
      \usepackage[pdftex,pagebackref=true]{hyperref}
    \else
      \ifxetex
        \usepackage[pagebackref=true]{hyperref}
      \else
        \usepackage[ps2pdf,pagebackref=true]{hyperref}
      \fi
    \fi
    \hypersetup{%
      colorlinks=true,%
      linkcolor=blue,%
      citecolor=blue,%
      unicode,%
      pdftitle=Free\+BSD kernel hyperv device code,%
      pdfsubject=%
    }
  % Custom commands used by the header
  % Custom commands
  \newcommand{\clearemptydoublepage}{%
    \newpage{\pagestyle{empty}\cleardoublepage}%
  }
  % caption style definition
  \usepackage{caption}
  \captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
  % in page table of contents
  \usepackage{etoc}
  \etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
  % prevent numbers overlap the titles in toc
  \renewcommand{\numberline}[1]{#1~}
% End of preamble, now comes the document contents
%===== C O N T E N T S =====
\begin{document}
  \raggedbottom
  % Titlepage & ToC
    % To avoid duplicate page anchors due to reuse of same numbers for
    % the index (be it as roman numbers)
    \hypersetup{pageanchor=false,
                bookmarksnumbered=true,
                pdfencoding=unicode
               }
  \pagenumbering{alph}
  \begin{titlepage}
  \vspace*{7cm}
  \begin{center}%
  {\Large Free\+BSD kernel hyperv device code}\\
  \vspace*{1cm}
  {\large Generated by Doxygen 1.9.3}\\
  \end{center}
  \end{titlepage}
  \clearemptydoublepage
  \pagenumbering{roman}
  \tableofcontents
  \clearemptydoublepage
  \pagenumbering{arabic}
  % re-enable anchors again
  \hypersetup{pageanchor=true}
%--- Begin generated contents ---
\chapter{Free\+BSD kernel hyperv device code}
\label{index}\hypertarget{index}{}\input{index}
\chapter{Data Structure Index}
\input{annotated}
\chapter{File Index}
\input{files}
\chapter{Data Structure Documentation}
\input{d2/d3d/structhn__nvs__chim__conn}
\input{d8/ddb/structhn__nvs__chim__connresp}
\input{da/d6b/structhn__nvs__chim__disconn}
\input{d4/d9d/structhn__nvs__datapath}
\input{d8/de6/structhn__nvs__hdr}
\input{d2/d05/structhn__nvs__init}
\input{d8/d62/structhn__nvs__init__resp}
\input{dc/d0b/structhn__nvs__ndis__conf}
\input{d6/d38/structhn__nvs__ndis__init}
\input{d0/dbe/structhn__nvs__rndis}
\input{df/d0a/structhn__nvs__rndis__ack}
\input{d3/d5e/structhn__nvs__rxbuf__conn}
\input{d3/dfa/structhn__nvs__rxbuf__connresp}
\input{de/d57/structhn__nvs__rxbuf__disconn}
\input{d0/da0/structhn__nvs__rxbuf__sect}
\input{d1/d12/structhn__nvs__sendctx}
\input{de/d35/structhn__nvs__subch__req}
\input{de/da0/structhn__nvs__subch__resp}
\input{d4/d9f/structhn__rx__ring}
\input{d3/d8b/structhn__rx__rsc}
\input{d3/daa/structhn__rxinfo}
\input{d9/d43/structhn__rxvf__setarg}
\input{d2/df9/structhn__softc}
\input{db/dfe/structhn__tx__ring}
\input{d0/dde/structhn__txdesc}
\input{d7/d4e/structhv__kbd__keystroke__t}
\input{dc/d26/structhv__kbd__msg__hdr__t}
\input{d5/dc7/structhv__kbd__msg__t}
\input{d5/de3/structhv__kbd__proto__req__t}
\input{d3/d8e/structhv__kbd__proto__resp__t}
\input{d2/d39/structhv__kbd__sc__t}
\input{db/dd2/structhv__kvp__exchg__msg__value}
\input{d8/d03/structhv__kvp__hdr}
\input{d5/d97/structhv__kvp__ip__msg}
\input{d8/db6/structhv__kvp__ipaddr__value}
\input{df/dc0/structhv__kvp__msg}
\input{d4/d5f/structhv__kvp__msg__delete}
\input{d5/d83/structhv__kvp__msg__enumerate}
\input{da/db6/structhv__kvp__msg__get}
\input{d6/d63/structhv__kvp__msg__set}
\input{db/d54/structhv__kvp__register}
\input{db/d68/structhv__kvp__sc}
\input{d3/d4e/structhv__sgl__node}
\input{d6/d0a/structhv__sgl__page__pool}
\input{d4/d30/structhv__sglist}
\input{d0/d05/structhv__storvsc__request}
\input{d5/d70/structhv__storvsc__sysctl}
\input{d1/dfe/structhv__vmbus__ic__version}
\input{dc/d1f/structhv__vmbus__icmsg__hdr}
\input{d1/d5e/structhv__vmbus__icmsg__negotiate}
\input{de/d8b/structhv__vmbus__pipe__hdr}
\input{da/dcc/structhv__vss__check__dm__info}
\input{d0/d9c/structhv__vss__check__feature}
\input{da/de8/structhv__vss__dev__sc}
\input{d5/ded/structhv__vss__hdr}
\input{d5/d4d/structhv__vss__msg}
\input{df/dc7/structhv__vss__opt__msg}
\input{d6/d76/structhv__vss__req}
\input{dd/d37/structhv__vss__req__internal}
\input{de/d6c/structhv__vss__sc}
\input{d2/dae/structhvs__callback__arg}
\input{d6/d9d/structhvs__pcb}
\input{d9/d9a/structhvs__pkt__header}
\input{d3/d26/structhvsock__sc}
\input{d0/d20/structhypercall__ctx}
\input{d2/de8/structhypercall__postmsg__in}
\input{db/dd0/structhyperv__dma}
\input{d4/d7d/structhyperv__guid}
\input{d9/d34/structhyperv__mon__param}
\input{da/de0/structhyperv__reftsc}
\input{dc/dd1/structhyperv__reftsc__ctx}
\input{d6/dc1/structkeystroke__info}
\input{d8/d23/structkeystroke__t}
\input{dc/d35/structndis__csum__offload}
\input{db/d82/structndis__encap__offload}
\input{dc/d3d/structndis__ipsecv1__offload}
\input{de/da3/structndis__ipsecv2__offload}
\input{dd/d52/structndis__lsov1__offload}
\input{df/ddf/structndis__lsov2__offload}
\input{de/dd5/structndis__object__hdr}
\input{d0/dfa/structndis__offload}
\input{d0/d15/structndis__offload__params}
\input{d7/dc0/structndis__rsc__offload}
\input{d1/d40/structndis__rss__caps}
\input{d1/df5/structndis__rss__params}
\input{dc/d6c/structndis__rssprm__toeplitz}
\input{d7/d91/structpacket__info__id}
\input{d1/d31/structsockaddr__hvs}
\input{d7/dae/structstorvsc__driver__props}
\input{d9/dd9/structstorvsc__gpa__range}
\input{d4/dbc/structstorvsc__softc}
\input{d4/db8/structvmbus__br}
\input{dd/de3/structvmbus__bufring}
\input{d8/d3b/structvmbus__chan__br}
\input{d0/d6d/structvmbus__chan__pollarg}
\input{df/db5/structvmbus__chanmsg__chclose}
\input{de/d1f/structvmbus__chanmsg__chfree}
\input{db/d27/structvmbus__chanmsg__choffer}
\input{d6/d8b/structvmbus__chanmsg__chopen}
\input{d1/d5b/structvmbus__chanmsg__chopen__resp}
\input{d6/d9c/structvmbus__chanmsg__chrequest}
\input{d2/dc1/structvmbus__chanmsg__chrescind}
\input{d8/d13/structvmbus__chanmsg__connect}
\input{d2/d7b/structvmbus__chanmsg__connect__resp}
\input{d3/de6/structvmbus__chanmsg__disconnect}
\input{d8/dfd/structvmbus__chanmsg__gpadl__conn}
\input{d3/dd1/structvmbus__chanmsg__gpadl__connresp}
\input{d5/d0f/structvmbus__chanmsg__gpadl__disconn}
\input{d4/d73/structvmbus__chanmsg__gpadl__subconn}
\input{de/ded/structvmbus__chanmsg__hdr}
\input{d6/df7/structvmbus__chanmsg__tl__connect}
\input{d1/db4/structvmbus__channel}
\input{d3/d29/structvmbus__chanpkt}
\input{d9/dda/structvmbus__chanpkt__hdr}
\input{d1/de5/structvmbus__chanpkt__prplist}
\input{dd/d2f/structvmbus__chanpkt__rxbuf}
\input{dd/df2/structvmbus__chanpkt__sglist}
\input{d4/da8/structvmbus__evtflags}
\input{d5/d95/structvmbus__gpa}
\input{d3/dc9/structvmbus__gpa__range}
\input{dc/d0b/structvmbus__ic__desc}
\input{d1/d53/structvmbus__ic__softc}
\input{d0/d50/structvmbus__icmsg__hdr}
\input{de/d13/structvmbus__icmsg__heartbeat}
\input{d8/d1d/structvmbus__icmsg__negotiate}
\input{d2/da8/structvmbus__icmsg__shutdown}
\input{da/dfd/structvmbus__icmsg__timesync}
\input{d3/d88/structvmbus__icmsg__timesync4}
\input{da/d46/structvmbus__message}
\input{de/daa/structvmbus__mnf}
\input{d0/da4/structvmbus__mon__trig}
\input{de/d53/structvmbus__msghc}
\input{d6/de8/structvmbus__pcpu__data}
\input{d2/d57/structvmbus__pipe__hdr}
\input{d6/d92/structvmbus__rxbr}
\input{db/d20/structvmbus__rxbuf__desc}
\input{d6/d63/structvmbus__softc}
\input{dd/dce/structvmbus__txbr}
\input{d4/df1/structvmbus__xact}
\input{dd/d0d/structvmbus__xact__ctx}
\input{d4/d4b/structvmpipe__proto__header}
\input{d4/de7/structvmscsi__req}
\input{da/d44/structvmscsi__win8__extension}
\input{d4/da1/structvmstor__chan__props}
\input{d8/d37/structvmstor__proto}
\input{d7/dff/structvmstor__proto__ver}
\input{dd/d08/structvstor__packet}
\chapter{File Documentation}
\input{d8/dc5/hv__sock_8c}
\input{d8/dc5/hv__sock_8c_source}
\input{d0/d47/hv__sock_8h}
\input{d0/d47/hv__sock_8h_source}
\input{d6/dbb/hyperv_8h}
\input{d6/dbb/hyperv_8h_source}
\input{d2/dbd/hyperv__busdma_8h}
\input{d2/dbd/hyperv__busdma_8h_source}
\input{d8/de7/vmbus_8h}
\input{d8/de7/vmbus_8h_source}
\input{da/d5c/vmbus__xact_8h}
\input{da/d5c/vmbus__xact_8h_source}
\input{d1/dad/hv__kbd_8c}
\input{d1/dad/hv__kbd_8c_source}
\input{d2/d29/hv__kbdc_8c}
\input{d2/d29/hv__kbdc_8c_source}
\input{dc/d50/hv__kbdc_8h}
\input{dc/d50/hv__kbdc_8h_source}
\input{d7/d33/hn__nvs_8c}
\input{d7/d33/hn__nvs_8c_source}
\input{d6/d85/hn__nvs_8h}
\input{d6/d85/hn__nvs_8h_source}
\input{dd/d46/hn__rndis_8c}
\input{dd/d46/hn__rndis_8c_source}
\input{d8/d2a/hn__rndis_8h}
\input{d8/d2a/hn__rndis_8h_source}
\input{d3/dbc/if__hn_8c}
\input{d3/dbc/if__hn_8c_source}
\input{d0/d08/if__hnreg_8h}
\input{d0/d08/if__hnreg_8h_source}
\input{d3/d58/if__hnvar_8h}
\input{d3/d58/if__hnvar_8h_source}
\input{d9/d16/ndis_8h}
\input{d9/d16/ndis_8h_source}
\input{d7/d59/vmbus__pcib_8c}
\input{d7/d59/vmbus__pcib_8c_source}
\input{d2/d78/hv__storvsc__drv__freebsd_8c}
\input{d2/d78/hv__storvsc__drv__freebsd_8c_source}
\input{d2/d61/hv__vstorage_8h}
\input{d2/d61/hv__vstorage_8h_source}
\input{d7/d69/hv__kvp_8c}
\input{d7/d69/hv__kvp_8c_source}
\input{d9/d68/hv__kvp_8h}
\input{d9/d68/hv__kvp_8h_source}
\input{d6/d44/hv__snapshot_8c}
\input{d6/d44/hv__snapshot_8c_source}
\input{db/da6/hv__snapshot_8h}
\input{db/da6/hv__snapshot_8h_source}
\input{d4/d3a/hv__utilreg_8h}
\input{d4/d3a/hv__utilreg_8h_source}
\input{dd/d90/unicode_8h}
\input{dd/d90/unicode_8h_source}
\input{d3/da2/vmbus__heartbeat_8c}
\input{d3/da2/vmbus__heartbeat_8c_source}
\input{db/d6e/vmbus__ic_8c}
\input{db/d6e/vmbus__ic_8c_source}
\input{d8/dac/vmbus__icreg_8h}
\input{d8/dac/vmbus__icreg_8h_source}
\input{df/dc3/vmbus__icvar_8h}
\input{df/dc3/vmbus__icvar_8h_source}
\input{d9/d17/vmbus__shutdown_8c}
\input{d9/d17/vmbus__shutdown_8c_source}
\input{d8/d58/vmbus__timesync_8c}
\input{d8/d58/vmbus__timesync_8c_source}
\input{d2/d4f/amd64_2hyperv__machdep_8c}
\input{d2/d4f/amd64_2hyperv__machdep_8c_source}
\input{d0/d7a/i386_2hyperv__machdep_8c}
\input{d0/d7a/i386_2hyperv__machdep_8c_source}
\input{d6/d11/hyperv_8c}
\input{d6/d11/hyperv_8c_source}
\input{db/d7d/hyperv__busdma_8c}
\input{db/d7d/hyperv__busdma_8c_source}
\input{d1/de7/hyperv__machdep_8h}
\input{d1/de7/hyperv__machdep_8h_source}
\input{d0/db4/hyperv__reg_8h}
\input{d0/db4/hyperv__reg_8h_source}
\input{d9/d12/hyperv__var_8h}
\input{d9/d12/hyperv__var_8h_source}
\input{d9/d80/vmbus_8c}
\input{d9/d80/vmbus_8c_source}
\input{dd/d8c/vmbus__br_8c}
\input{dd/d8c/vmbus__br_8c_source}
\input{db/ddf/vmbus__brvar_8h}
\input{db/ddf/vmbus__brvar_8h_source}
\input{dd/d8a/vmbus__chan_8c}
\input{dd/d8a/vmbus__chan_8c_source}
\input{de/d36/vmbus__chanvar_8h}
\input{de/d36/vmbus__chanvar_8h_source}
\input{d2/d04/vmbus__et_8c}
\input{d2/d04/vmbus__et_8c_source}
\input{dc/d13/vmbus__if_8m}
\input{dc/d13/vmbus__if_8m_source}
\input{dd/da8/vmbus__reg_8h}
\input{dd/da8/vmbus__reg_8h_source}
\input{d3/d65/vmbus__res_8c}
\input{d3/d65/vmbus__res_8c_source}
\input{dd/de8/vmbus__var_8h}
\input{dd/de8/vmbus__var_8h_source}
\input{d2/db2/vmbus__xact_8c}
\input{d2/db2/vmbus__xact_8c_source}
\input{d7/d63/notreviewed_8dox}
%--- End generated contents ---
% Index
  \backmatter
  \newpage
  \phantomsection
  \clearemptydoublepage
  \addcontentsline{toc}{chapter}{\indexname}
  \printindex
% Required for some languages (in combination with latexdocumentpre from the header)
\end{document}
