  % 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 MFI 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 MFI 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 MFI device code}
\label{index}\hypertarget{index}{}\input{index}
\chapter{Data Structure Index}
\input{annotated}
\chapter{File Index}
\input{files}
\chapter{Data Structure Documentation}
\input{d3/ddf/union__MFI__ADDRESS}
\input{d7/d05/struct__MFI__RAID__MFA__IO__DESCRIPTOR}
\input{d4/d1a/struct__MPI25__IEEE__SGE__CHAIN64}
\input{dd/d17/union__MPI2__IEEE__SGE__CHAIN__UNION}
\input{d9/ded/union__MPI2__IEEE__SGE__SIMPLE__UNION}
\input{dd/dea/struct__MPI2__SCSI__IO__VENDOR__UNIQUE}
\input{d0/d7f/union__MPI2__SGE__IO__UNION}
\input{d3/de1/struct__MPI2__SGE__SIMPLE__UNION}
\input{d6/d95/union__MPI2__SIMPLE__SGE__UNION}
\input{d6/d7d/uniondesc__value}
\input{d7/d62/structIO__REQUEST__INFO}
\input{da/dc0/structiovec32}
\input{d8/d0a/structmegasas__sge}
\input{dd/df1/structmfi__abort__frame}
\input{d4/d86/structmfi__aen}
\input{dc/dff/structmfi__array}
\input{da/dbe/structmfi__bbu__capacity__info}
\input{da/d40/structmfi__bbu__design__info}
\input{dd/d89/structmfi__bbu__properties}
\input{da/dca/structmfi__bbu__state}
\input{d6/d07/structmfi__bbu__status}
\input{d0/dd0/unionmfi__bbu__status__detail}
\input{d3/d59/structmfi__bios__data}
\input{d5/d0e/structmfi__cmd__tbolt}
\input{d9/d8e/structmfi__command}
\input{de/d56/structmfi__config__data}
\input{dc/ded/structmfi__ctrl__info}
\input{d6/d10/structmfi__ctrl__props}
\input{d0/d8d/structmfi__dcmd__frame}
\input{d8/dae/structmfi__defaults}
\input{dc/dd6/structmfi__disk}
\input{da/d64/structmfi__disk__pending}
\input{d2/dc6/unionmfi__evt}
\input{dc/da5/structmfi__evt__detail}
\input{d9/ded/structmfi__evt__ld}
\input{d6/de1/structmfi__evt__list}
\input{d8/d0b/structmfi__evt__log__state}
\input{d4/d4c/structmfi__evt__pd}
\input{d6/df4/structmfi__evt__queue__elm}
\input{de/dcb/unionmfi__frame}
\input{df/d37/structmfi__frame__header}
\input{df/da2/structmfi__hwcomms}
\input{da/dfc/structmfi__ibbu__state}
\input{d7/d84/structmfi__ident}
\input{db/d8f/structmfi__info__component}
\input{d3/dbf/structmfi__info__device}
\input{d8/d1e/structmfi__info__host}
\input{d0/d98/structmfi__info__pci}
\input{da/d1a/structmfi__init__frame}
\input{de/d0d/structmfi__init__qinfo}
\input{d8/d87/structmfi__io__frame}
\input{df/d21/structmfi__ioc__aen}
\input{df/d0e/structmfi__ioc__packet}
\input{d8/d76/structmfi__ioc__passthru}
\input{d5/d34/structmfi__ld__config}
\input{dd/d04/structmfi__ld__info}
\input{df/d48/structmfi__ld__list}
\input{db/dc7/structmfi__ld__params}
\input{dd/d17/structmfi__ld__progress}
\input{d1/dbe/structmfi__ld__props}
\input{d0/d95/unionmfi__ld__ref}
\input{d8/d62/structmfi__linux__ioc__aen}
\input{d0/d76/structmfi__linux__ioc__packet}
\input{d7/da7/structmfi__mpi2__reply__address}
\input{d0/d9c/structmfi__mpi2__reply__default}
\input{d6/d6b/unionmfi__mpi2__reply__descriptor}
\input{d9/d62/structmfi__mpi2__reply__header}
\input{d4/d11/structmfi__mpi2__reply__raid__accel}
\input{da/d71/structmfi__mpi2__reply__scsi__io}
\input{d9/d1b/structmfi__mpi2__reply__target__assist}
\input{d9/de0/structmfi__mpi2__reply__target__cmd__buffer}
\input{d5/d72/unionmfi__mpi2__request__descriptor}
\input{d1/dee/structmfi__mpi2__request__header}
\input{d9/d82/structmfi__mpi2__request__high__priority}
\input{d5/d21/structmfi__mpi2__request__raid__scsi__io}
\input{dc/d86/structmfi__mpi2__request__scsi__io}
\input{dc/df0/structmfi__mpi2__request__scsi__target}
\input{d0/d21/structmfi__pass__frame}
\input{d3/d47/structmfi__pd__address}
\input{df/df4/unionmfi__pd__ddf__type}
\input{df/d7a/structmfi__pd__info}
\input{d6/daf/structmfi__pd__list}
\input{d8/d41/structmfi__pd__progress}
\input{de/de8/unionmfi__pd__ref}
\input{dc/dd4/structmfi__pr__properties}
\input{da/d46/structmfi__pr__status}
\input{d1/d43/structmfi__progress}
\input{d1/d76/structmfi__qstat}
\input{d0/d19/structmfi__query__disk}
\input{d6/de1/structmfi__sense}
\input{d0/def/unionmfi__sense__ptr}
\input{d5/d74/structmfi__sg32}
\input{d7/d61/structmfi__sg64}
\input{dd/d36/structmfi__sg__skinny}
\input{d4/d92/unionmfi__sgl}
\input{dd/dcb/structmfi__skinny__dma__info}
\input{dc/d18/structmfi__smp__frame}
\input{dc/d07/structmfi__softc}
\input{df/def/structmfi__span}
\input{d9/d5f/structmfi__spare}
\input{d8/d34/unionmfi__statrequest}
\input{d6/d8b/structmfi__stp__frame}
\input{dc/dfb/structmfi__system__pd}
\input{d3/da0/structmfi__system__pending}
\input{d9/def/structmfip__softc}
\input{d9/d3b/structMPI2__IEEE__SGE__SIMPLE32}
\input{dc/dcb/structMPI2__IEEE__SGE__SIMPLE64}
\input{d6/db4/structMPI2__IOC__INIT__REQUEST}
\input{d5/dc9/structMPI2__SCSI__IO__CDB__EEDP32}
\input{df/d66/unionMPI2__SCSI__IO__CDB__UNION}
\input{db/d25/structMPI2__SGE__CHAIN__UNION}
\chapter{File Documentation}
\input{d5/d6d/mfi_8c}
\input{d5/d6d/mfi_8c_source}
\input{d1/d3d/mfi__cam_8c}
\input{d1/d3d/mfi__cam_8c_source}
\input{d9/d15/mfi__debug_8c}
\input{d9/d15/mfi__debug_8c_source}
\input{db/d05/mfi__disk_8c}
\input{db/d05/mfi__disk_8c_source}
\input{d8/d6e/mfi__ioctl_8h}
\input{d8/d6e/mfi__ioctl_8h_source}
\input{da/ded/mfi__linux_8c}
\input{da/ded/mfi__linux_8c_source}
\input{d3/dd0/mfi__pci_8c}
\input{d3/dd0/mfi__pci_8c_source}
\input{d3/d7c/mfi__syspd_8c}
\input{d3/d7c/mfi__syspd_8c_source}
\input{db/d81/mfi__tbolt_8c}
\input{db/d81/mfi__tbolt_8c_source}
\input{dc/d62/mfireg_8h}
\input{dc/d62/mfireg_8h_source}
\input{d8/d7f/mfivar_8h}
\input{d8/d7f/mfivar_8h_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}
