\hypertarget{lio__main_8h_source}{}\doxysection{lio\+\_\+main.\+h}
\label{lio__main_8h_source}\index{dev/liquidio/lio\_main.h@{dev/liquidio/lio\_main.h}}
\mbox{\hyperlink{lio__main_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00001}00001 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00002}00002 \textcolor{comment}{ *   BSD LICENSE}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00004}00004 \textcolor{comment}{ *   Copyright(c) 2017 Cavium, Inc.. All rights reserved.}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00005}00005 \textcolor{comment}{ *   All rights reserved.}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00007}00007 \textcolor{comment}{ *   Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00008}00008 \textcolor{comment}{ *   modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00009}00009 \textcolor{comment}{ *   are met:}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00010}00010 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00011}00011 \textcolor{comment}{ *     * Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00012}00012 \textcolor{comment}{ *       notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00013}00013 \textcolor{comment}{ *     * Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00014}00014 \textcolor{comment}{ *       notice, this list of conditions and the following disclaimer in}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00015}00015 \textcolor{comment}{ *       the documentation and/or other materials provided with the}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00016}00016 \textcolor{comment}{ *       distribution.}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00017}00017 \textcolor{comment}{ *     * Neither the name of Cavium, Inc. nor the names of its}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00018}00018 \textcolor{comment}{ *       contributors may be used to endorse or promote products derived}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00019}00019 \textcolor{comment}{ *       from this software without specific prior written permission.}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00020}00020 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00021}00021 \textcolor{comment}{ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00022}00022 \textcolor{comment}{ *   "{}AS IS"{} AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00023}00023 \textcolor{comment}{ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00024}00024 \textcolor{comment}{ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00025}00025 \textcolor{comment}{ *   OWNER(S) OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00026}00026 \textcolor{comment}{ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00027}00027 \textcolor{comment}{ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00028}00028 \textcolor{comment}{ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00029}00029 \textcolor{comment}{ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00030}00030 \textcolor{comment}{ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00031}00031 \textcolor{comment}{ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00032}00032 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00033}00033 \textcolor{comment}{/*\$FreeBSD\$*/}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00034}00034 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00035}00035 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00036}00036 \textcolor{comment}{ *  \(\backslash\)file lio\_main.h}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00037}00037 \textcolor{comment}{ *  \(\backslash\)brief Host Driver: This file is included by all host driver source files}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00038}00038 \textcolor{comment}{ *  to include common definitions.}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00039}00039 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00040}00040 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00041}00041 \textcolor{preprocessor}{\#ifndef \_LIO\_MAIN\_H\_}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00042}00042 \textcolor{preprocessor}{\#define  \_LIO\_MAIN\_H\_}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00043}00043 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00044}00044 \textcolor{keyword}{extern} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}    \mbox{\hyperlink{lio__main_8h_a17f570aaf869da2cc2a06e75a1d8bd41}{lio\_hwlro}};}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00045}00045 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00046}\mbox{\hyperlink{lio__main_8h_ae67a87eb5deeb31e550aa38dfa869505}{00046}} \textcolor{preprocessor}{\#define LIO\_CAST64(v)   ((long long)(long)(v))}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00047}00047 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00048}\mbox{\hyperlink{lio__main_8h_a320f3d5744e3abdf31c288d04f563c1c}{00048}} \textcolor{preprocessor}{\#define LIO\_DRV\_NAME    "{}lio"{}}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00049}00049 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00051}00051 \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00052}\mbox{\hyperlink{lio__main_8h_ab294e8e0e748bf0d78f5c1c0283a79cf}{00052}} \mbox{\hyperlink{lio__main_8h_ab294e8e0e748bf0d78f5c1c0283a79cf}{lio\_swap\_8B\_data}}(uint64\_t *data, uint32\_t blocks)}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00053}00053 \{}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00054}00054 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00055}00055         \textcolor{keywordflow}{while} (blocks) \{}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00056}00056                 *data = htobe64(*data);}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00057}00057                 blocks-\/-\/;}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00058}00058                 data++;}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00059}00059         \}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00060}00060 \}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00061}00061 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00062}00062 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00063}00063 \textcolor{comment}{ * \(\backslash\)brief unmaps a PCI BAR}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00064}00064 \textcolor{comment}{ * @param oct Pointer to Octeon device}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00065}00065 \textcolor{comment}{ * @param baridx bar index}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00066}00066 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00067}00067 \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00068}\mbox{\hyperlink{lio__main_8h_a3f71bd147840753189cbd5104b273119}{00068}} \mbox{\hyperlink{lio__main_8h_a3f71bd147840753189cbd5104b273119}{lio\_unmap\_pci\_barx}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *oct, \textcolor{keywordtype}{int} baridx)}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00069}00069 \{}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00070}00070 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00071}00071         \mbox{\hyperlink{lio__bsd_8h_a1e6b64f2d951d285e7d956ce8cd5dd04}{lio\_dev\_dbg}}(oct, \textcolor{stringliteral}{"{}Freeing PCI mapped regions for Bar\%d\(\backslash\)n"{}}, baridx);}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00072}00072 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00073}00073         \textcolor{keywordflow}{if} (oct-\/>\mbox{\hyperlink{structocteon__device_aed119d475f65551c1b3d1d9f7c4ea6fd}{mem\_bus\_space}}[baridx].\mbox{\hyperlink{structlio__mem__bus__space_a269dfc7ea080db8ab01e2db2e2f632e3}{pci\_mem}} != NULL) \{}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00074}00074                 bus\_release\_resource(oct-\/>\mbox{\hyperlink{structocteon__device_a2d1f835586ad43c0e0be46da81cd0f3c}{device}}, SYS\_RES\_MEMORY,}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00075}00075                                      PCIR\_BAR(baridx * 2),}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00076}00076                                      oct-\/>\mbox{\hyperlink{structocteon__device_aed119d475f65551c1b3d1d9f7c4ea6fd}{mem\_bus\_space}}[baridx].\mbox{\hyperlink{structlio__mem__bus__space_a269dfc7ea080db8ab01e2db2e2f632e3}{pci\_mem}});}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00077}00077                 oct-\/>\mbox{\hyperlink{structocteon__device_aed119d475f65551c1b3d1d9f7c4ea6fd}{mem\_bus\_space}}[baridx].\mbox{\hyperlink{structlio__mem__bus__space_a269dfc7ea080db8ab01e2db2e2f632e3}{pci\_mem}} = NULL;}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00078}00078         \}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00079}00079 \}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00080}00080 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00081}00081 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00082}00082 \textcolor{comment}{ * \(\backslash\)brief maps a PCI BAR}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00083}00083 \textcolor{comment}{ * @param oct Pointer to Octeon device}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00084}00084 \textcolor{comment}{ * @param baridx bar index}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00085}00085 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00086}00086 \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00087}\mbox{\hyperlink{lio__main_8h_ae3420cf1747e08aea61c80a769669a36}{00087}} \mbox{\hyperlink{lio__main_8h_ae3420cf1747e08aea61c80a769669a36}{lio\_map\_pci\_barx}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *oct, \textcolor{keywordtype}{int} baridx)}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00088}00088 \{}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00089}00089         \textcolor{keywordtype}{int}     rid = PCIR\_BAR(baridx * 2);}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00090}00090 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00091}00091         oct-\/>\mbox{\hyperlink{structocteon__device_aed119d475f65551c1b3d1d9f7c4ea6fd}{mem\_bus\_space}}[baridx].\mbox{\hyperlink{structlio__mem__bus__space_a269dfc7ea080db8ab01e2db2e2f632e3}{pci\_mem}} =}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00092}00092                 bus\_alloc\_resource\_any(oct-\/>\mbox{\hyperlink{structocteon__device_a2d1f835586ad43c0e0be46da81cd0f3c}{device}}, SYS\_RES\_MEMORY, \&rid,}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00093}00093                                        RF\_ACTIVE);}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00094}00094 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00095}00095         \textcolor{keywordflow}{if} (oct-\/>\mbox{\hyperlink{structocteon__device_aed119d475f65551c1b3d1d9f7c4ea6fd}{mem\_bus\_space}}[baridx].\mbox{\hyperlink{structlio__mem__bus__space_a269dfc7ea080db8ab01e2db2e2f632e3}{pci\_mem}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00096}00096                 \mbox{\hyperlink{lio__bsd_8h_abe414f7d7854f53de3fe9db975df03db}{lio\_dev\_err}}(oct, \textcolor{stringliteral}{"{}Unable to allocate bus resource: memory\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00097}00097                 \textcolor{keywordflow}{return} (ENXIO);}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00098}00098         \}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00099}00099 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00100}00100         \textcolor{comment}{/* Save bus\_space values for READ/WRITE\_REG macros */}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00101}00101         oct-\/>\mbox{\hyperlink{structocteon__device_aed119d475f65551c1b3d1d9f7c4ea6fd}{mem\_bus\_space}}[baridx].\mbox{\hyperlink{structlio__mem__bus__space_a24ae86625462b13aa2b06c911bb1a98f}{tag}} =}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00102}00102                 rman\_get\_bustag(oct-\/>\mbox{\hyperlink{structocteon__device_aed119d475f65551c1b3d1d9f7c4ea6fd}{mem\_bus\_space}}[baridx].\mbox{\hyperlink{structlio__mem__bus__space_a269dfc7ea080db8ab01e2db2e2f632e3}{pci\_mem}});}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00103}00103         oct-\/>\mbox{\hyperlink{structocteon__device_aed119d475f65551c1b3d1d9f7c4ea6fd}{mem\_bus\_space}}[baridx].\mbox{\hyperlink{structlio__mem__bus__space_a8619d07df912e2eba66b2ddaf05302c5}{handle}} =}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00104}00104                 rman\_get\_bushandle(oct-\/>\mbox{\hyperlink{structocteon__device_aed119d475f65551c1b3d1d9f7c4ea6fd}{mem\_bus\_space}}[baridx].\mbox{\hyperlink{structlio__mem__bus__space_a269dfc7ea080db8ab01e2db2e2f632e3}{pci\_mem}});}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00105}00105 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00106}00106         \mbox{\hyperlink{lio__bsd_8h_a1e6b64f2d951d285e7d956ce8cd5dd04}{lio\_dev\_dbg}}(oct, \textcolor{stringliteral}{"{}BAR\%d Tag 0x\%llx Handle 0x\%llx\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00107}00107                     baridx, \mbox{\hyperlink{lio__main_8h_ae67a87eb5deeb31e550aa38dfa869505}{LIO\_CAST64}}(oct-\/>\mbox{\hyperlink{structocteon__device_aed119d475f65551c1b3d1d9f7c4ea6fd}{mem\_bus\_space}}[baridx].\mbox{\hyperlink{structlio__mem__bus__space_a24ae86625462b13aa2b06c911bb1a98f}{tag}}),}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00108}00108                     \mbox{\hyperlink{lio__main_8h_ae67a87eb5deeb31e550aa38dfa869505}{LIO\_CAST64}}(oct-\/>\mbox{\hyperlink{structocteon__device_aed119d475f65551c1b3d1d9f7c4ea6fd}{mem\_bus\_space}}[baridx].\mbox{\hyperlink{structlio__mem__bus__space_a8619d07df912e2eba66b2ddaf05302c5}{handle}}));}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00109}00109 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00110}00110         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00111}00111 \}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00112}00112 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00113}00113 \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00114}\mbox{\hyperlink{lio__main_8h_ac82f1f60442fef9cf0258d63ff64cafe}{00114}} \mbox{\hyperlink{lio__main_8h_ac82f1f60442fef9cf0258d63ff64cafe}{lio\_sleep\_cond}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *oct, \textcolor{keyword}{volatile} \textcolor{keywordtype}{int} *condition)}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00115}00115 \{}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00116}00116 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00117}00117         \textcolor{keywordflow}{while} (!(*condition)) \{}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00118}00118                 \mbox{\hyperlink{lio__bsd_8h_a5c47086ad21f04cdc2b7e21dd15c3890}{lio\_mdelay}}(1);}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00119}00119                 \mbox{\hyperlink{lio__iq_8h_a963139a14cc9f08985e3a319c3b0b863}{lio\_flush\_iq}}(oct, oct-\/>\mbox{\hyperlink{structocteon__device_ad3b9d2c9e6e5c1f264886dcd3f373676}{instr\_queue}}[0], 0);}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00120}00120                 \mbox{\hyperlink{lio__response__manager_8c_a215c9a1987332f1b9da4ba17f13f43df}{lio\_process\_ordered\_list}}(oct, 0);}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00121}00121         \}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00122}00122 \}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00123}00123 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00124}00124 \textcolor{keywordtype}{int}     \mbox{\hyperlink{lio__main_8h_a686836c039ede8bae369f1fa1de65051}{lio\_console\_debug\_enabled}}(uint32\_t console);}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00125}00125 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00126}00126 \textcolor{preprocessor}{\#ifndef ROUNDUP4}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00127}\mbox{\hyperlink{lio__main_8h_a22d71f002511efb471c28a7b8dc599dc}{00127}} \textcolor{preprocessor}{\#define ROUNDUP4(val)   (((val) + 3) \& 0xfffffffc)}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00128}00128 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00129}00129 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00130}00130 \textcolor{preprocessor}{\#ifndef ROUNDUP8}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00131}\mbox{\hyperlink{lio__main_8h_a7021e7f1287cd109889e59efb1ee5c2b}{00131}} \textcolor{preprocessor}{\#define ROUNDUP8(val)   (((val) + 7) \& 0xfffffff8)}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00132}00132 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00133}00133 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00134}\mbox{\hyperlink{lio__main_8h_aed42b76522e8377b3b0e77b64ee04fae}{00134}} \textcolor{preprocessor}{\#define BIT\_ULL(nr)     (1ULL << (nr))}}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00135}00135 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00136}00136 \textcolor{keywordtype}{void}    \mbox{\hyperlink{lio__main_8h_a599a43d2ebe5cec4e42f46f5a7c0739d}{lio\_free\_mbuf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structlio__instr__queue}{lio\_instr\_queue}} *iq,}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00137}00137                       \textcolor{keyword}{struct} \mbox{\hyperlink{structlio__mbuf__free__info}{lio\_mbuf\_free\_info}} *finfo);}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00138}00138 \textcolor{keywordtype}{void}    \mbox{\hyperlink{lio__main_8h_acbc4a2c503a3cd5db0f9906596451a9e}{lio\_free\_sgmbuf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structlio__instr__queue}{lio\_instr\_queue}} *iq,}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00139}00139                         \textcolor{keyword}{struct} \mbox{\hyperlink{structlio__mbuf__free__info}{lio\_mbuf\_free\_info}} *finfo);}
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00140}00140 }
\DoxyCodeLine{\Hypertarget{lio__main_8h_source_l00141}00141 \textcolor{preprocessor}{\#endif  }\textcolor{comment}{/* \_LIO\_MAIN\_H\_ */}\textcolor{preprocessor}{}}

\end{DoxyCode}
