  % 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 etherswitch 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 etherswitch 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 etherswitch device code}
\label{index}\hypertarget{index}{}\input{index}
\chapter{Data Structure Index}
\input{annotated}
\chapter{File Index}
\input{files}
\chapter{Data Structure Documentation}
\input{d0/dc0/structadm6996fc__softc}
\input{d0/d04/structar40xx__mib__desc}
\input{df/dae/structar40xx__softc}
\input{db/d28/structar8327__led__cfg}
\input{d2/d94/structar8327__led__mapping}
\input{dc/d30/structar8327__pad__cfg}
\input{d3/d13/structar8327__port__cfg}
\input{db/d90/structar8327__sgmii__cfg}
\input{d8/d6b/structarswitch__dev__led}
\input{da/d29/structarswitch__softc}
\input{d7/deb/structatu__opt}
\input{da/d18/structe6000sw__softc}
\input{df/d52/structe6060sw__softc}
\input{db/d17/structetherswitch__atu__entry}
\input{d9/dd7/structetherswitch__atu__flush__macentry}
\input{df/de6/structetherswitch__atu__table}
\input{db/dd0/structetherswitch__conf}
\input{d5/df9/structetherswitch__info}
\input{d5/d36/structetherswitch__phyreg}
\input{db/da2/structetherswitch__port}
\input{d8/d6f/structetherswitch__portid}
\input{d4/d4e/structetherswitch__reg}
\input{da/d80/structetherswitch__softc}
\input{d2/da6/structetherswitch__vlangroup}
\input{d3/d62/structfelix__pci__id}
\input{d8/d88/structfelix__port}
\input{d3/d84/structfelix__softc}
\input{d8/d28/structip17x__softc}
\input{d5/d35/structip17x__vlan}
\input{d9/da8/structksz8995ma__softc}
\input{d9/d9c/structmdioproxy__softc}
\input{df/d67/structmiiproxy__softc}
\input{d5/d10/structmtkswitch__softc}
\input{db/db3/structrendezvous__entry}
\input{db/d04/structrtl8366rb__softc}
\input{d3/d27/structukswitch__softc}
\chapter{File Documentation}
\input{da/deb/ar40xx__debug_8h}
\input{da/deb/ar40xx__debug_8h_source}
\input{d7/d95/ar40xx__hw_8c}
\input{d7/d95/ar40xx__hw_8c_source}
\input{dc/d8f/ar40xx__hw_8h}
\input{dc/d8f/ar40xx__hw_8h_source}
\input{de/d24/ar40xx__hw__atu_8c}
\input{de/d24/ar40xx__hw__atu_8c_source}
\input{d6/d22/ar40xx__hw__atu_8h}
\input{d6/d22/ar40xx__hw__atu_8h_source}
\input{d5/de1/ar40xx__hw__mdio_8c}
\input{d5/de1/ar40xx__hw__mdio_8c_source}
\input{db/d33/ar40xx__hw__mdio_8h}
\input{db/d33/ar40xx__hw__mdio_8h_source}
\input{de/d7e/ar40xx__hw__mib_8c}
\input{de/d7e/ar40xx__hw__mib_8c_source}
\input{d5/d04/ar40xx__hw__mib_8h}
\input{d5/d04/ar40xx__hw__mib_8h_source}
\input{d0/da8/ar40xx__hw__mirror_8c}
\input{d0/da8/ar40xx__hw__mirror_8c_source}
\input{d7/d9d/ar40xx__hw__mirror_8h}
\input{d7/d9d/ar40xx__hw__mirror_8h_source}
\input{d6/db3/ar40xx__hw__port_8c}
\input{d6/db3/ar40xx__hw__port_8c_source}
\input{d8/dcc/ar40xx__hw__port_8h}
\input{d8/dcc/ar40xx__hw__port_8h_source}
\input{de/d8b/ar40xx__hw__psgmii_8c}
\input{de/d8b/ar40xx__hw__psgmii_8c_source}
\input{d5/d08/ar40xx__hw__psgmii_8h}
\input{d5/d08/ar40xx__hw__psgmii_8h_source}
\input{d2/d79/ar40xx__hw__vtu_8c}
\input{d2/d79/ar40xx__hw__vtu_8c_source}
\input{da/d19/ar40xx__hw__vtu_8h}
\input{da/d19/ar40xx__hw__vtu_8h_source}
\input{d1/d30/ar40xx__main_8c}
\input{d1/d30/ar40xx__main_8c_source}
\input{da/d29/ar40xx__phy_8c}
\input{da/d29/ar40xx__phy_8c_source}
\input{d0/d98/ar40xx__phy_8h}
\input{d0/d98/ar40xx__phy_8h_source}
\input{d6/def/ar40xx__reg_8h}
\input{d6/def/ar40xx__reg_8h_source}
\input{d8/de2/ar40xx__var_8h}
\input{d8/de2/ar40xx__var_8h_source}
\input{d3/d8c/arswitch_8c}
\input{d3/d8c/arswitch_8c_source}
\input{d8/dd6/arswitch__7240_8c}
\input{d8/dd6/arswitch__7240_8c_source}
\input{de/d68/arswitch__7240_8h}
\input{de/d68/arswitch__7240_8h_source}
\input{d9/d2b/arswitch__8216_8c}
\input{d9/d2b/arswitch__8216_8c_source}
\input{d3/d11/arswitch__8216_8h}
\input{d3/d11/arswitch__8216_8h_source}
\input{df/d0e/arswitch__8226_8c}
\input{df/d0e/arswitch__8226_8c_source}
\input{d6/d75/arswitch__8226_8h}
\input{d6/d75/arswitch__8226_8h_source}
\input{da/df6/arswitch__8316_8c}
\input{da/df6/arswitch__8316_8c_source}
\input{dc/d3c/arswitch__8316_8h}
\input{dc/d3c/arswitch__8316_8h_source}
\input{d4/d31/arswitch__8327_8c}
\input{d4/d31/arswitch__8327_8c_source}
\input{d7/d02/arswitch__8327_8h}
\input{d7/d02/arswitch__8327_8h_source}
\input{df/da9/arswitch__9340_8c}
\input{df/da9/arswitch__9340_8c_source}
\input{de/d69/arswitch__9340_8h}
\input{de/d69/arswitch__9340_8h_source}
\input{d4/d51/arswitch__phy_8c}
\input{d4/d51/arswitch__phy_8c_source}
\input{d1/de1/arswitch__phy_8h}
\input{d1/de1/arswitch__phy_8h_source}
\input{db/df5/arswitch__reg_8c}
\input{db/df5/arswitch__reg_8c_source}
\input{de/dfa/arswitch__reg_8h}
\input{de/dfa/arswitch__reg_8h_source}
\input{d2/d27/arswitch__vlans_8c}
\input{d2/d27/arswitch__vlans_8c_source}
\input{dc/d5e/arswitch__vlans_8h}
\input{dc/d5e/arswitch__vlans_8h_source}
\input{dc/d9b/arswitchreg_8h}
\input{dc/d9b/arswitchreg_8h_source}
\input{df/dab/arswitchvar_8h}
\input{df/dab/arswitchvar_8h_source}
\input{d2/d97/e6000sw_8c}
\input{d2/d97/e6000sw_8c_source}
\input{db/d7f/e6000swreg_8h}
\input{db/d7f/e6000swreg_8h_source}
\input{dc/d7f/e6060sw_8c}
\input{dc/d7f/e6060sw_8c_source}
\input{d2/dda/etherswitch_8c}
\input{d2/dda/etherswitch_8c_source}
\input{d0/d32/etherswitch_8h}
\input{d0/d32/etherswitch_8h_source}
\input{d1/de8/etherswitch__if_8m}
\input{d1/de8/etherswitch__if_8m_source}
\input{de/d17/felix_8c}
\input{de/d17/felix_8c_source}
\input{db/d94/felix__reg_8h}
\input{db/d94/felix__reg_8h_source}
\input{d7/d89/felix__var_8h}
\input{d7/d89/felix__var_8h_source}
\input{dd/d11/adm6996fc_8c}
\input{dd/d11/adm6996fc_8c_source}
\input{de/dde/ip175c_8c}
\input{de/dde/ip175c_8c_source}
\input{da/d06/ip175c_8h}
\input{da/d06/ip175c_8h_source}
\input{d1/d8e/ip175d_8c}
\input{d1/d8e/ip175d_8c_source}
\input{df/dbb/ip175d_8h}
\input{df/dbb/ip175d_8h_source}
\input{da/d03/ip17x_8c}
\input{da/d03/ip17x_8c_source}
\input{d5/dc2/ip17x__phy_8c}
\input{d5/dc2/ip17x__phy_8c_source}
\input{d2/df9/ip17x__phy_8h}
\input{d2/df9/ip17x__phy_8h_source}
\input{d5/d96/ip17x__reg_8h}
\input{d5/d96/ip17x__reg_8h_source}
\input{dc/dbf/ip17x__var_8h}
\input{dc/dbf/ip17x__var_8h_source}
\input{dc/de1/ip17x__vlans_8c}
\input{dc/de1/ip17x__vlans_8c_source}
\input{de/dfd/ip17x__vlans_8h}
\input{de/dfd/ip17x__vlans_8h_source}
\input{df/d79/ksz8995ma_8c}
\input{df/d79/ksz8995ma_8c_source}
\input{d3/dcb/miiproxy_8c}
\input{d3/dcb/miiproxy_8c_source}
\input{df/d7d/miiproxy_8h}
\input{df/d7d/miiproxy_8h_source}
\input{d7/d37/mtkswitch_8c}
\input{d7/d37/mtkswitch_8c_source}
\input{de/d09/mtkswitch__mt7620_8c}
\input{de/d09/mtkswitch__mt7620_8c_source}
\input{d1/d1b/mtkswitch__mt7620_8h}
\input{d1/d1b/mtkswitch__mt7620_8h_source}
\input{da/d62/mtkswitch__rt3050_8c}
\input{da/d62/mtkswitch__rt3050_8c_source}
\input{db/d49/mtkswitch__rt3050_8h}
\input{db/d49/mtkswitch__rt3050_8h_source}
\input{d9/df8/mtkswitchvar_8h}
\input{d9/df8/mtkswitchvar_8h_source}
\input{d8/d14/rtl8366rb_8c}
\input{d8/d14/rtl8366rb_8c_source}
\input{dd/d63/rtl8366rbvar_8h}
\input{dd/d63/rtl8366rbvar_8h_source}
\input{df/d05/ukswitch_8c}
\input{df/d05/ukswitch_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}
