\hypertarget{lio__iq_8h_source}{}\doxysection{lio\+\_\+iq.\+h}
\label{lio__iq_8h_source}\index{dev/liquidio/base/lio\_iq.h@{dev/liquidio/base/lio\_iq.h}}
\mbox{\hyperlink{lio__iq_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00001}00001 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00002}00002 \textcolor{comment}{ *   BSD LICENSE}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00004}00004 \textcolor{comment}{ *   Copyright(c) 2017 Cavium, Inc.. All rights reserved.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00005}00005 \textcolor{comment}{ *   All rights reserved.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00007}00007 \textcolor{comment}{ *   Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00008}00008 \textcolor{comment}{ *   modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00009}00009 \textcolor{comment}{ *   are met:}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00010}00010 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00011}00011 \textcolor{comment}{ *     * Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00012}00012 \textcolor{comment}{ *       notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00013}00013 \textcolor{comment}{ *     * Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00014}00014 \textcolor{comment}{ *       notice, this list of conditions and the following disclaimer in}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00015}00015 \textcolor{comment}{ *       the documentation and/or other materials provided with the}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00016}00016 \textcolor{comment}{ *       distribution.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00017}00017 \textcolor{comment}{ *     * Neither the name of Cavium, Inc. nor the names of its}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00018}00018 \textcolor{comment}{ *       contributors may be used to endorse or promote products derived}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00019}00019 \textcolor{comment}{ *       from this software without specific prior written permission.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00020}00020 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00021}00021 \textcolor{comment}{ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00022}00022 \textcolor{comment}{ *   "{}AS IS"{} AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00023}00023 \textcolor{comment}{ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00024}00024 \textcolor{comment}{ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00025}00025 \textcolor{comment}{ *   OWNER(S) OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00026}00026 \textcolor{comment}{ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00027}00027 \textcolor{comment}{ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00028}00028 \textcolor{comment}{ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00029}00029 \textcolor{comment}{ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00030}00030 \textcolor{comment}{ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00031}00031 \textcolor{comment}{ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00032}00032 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00033}00033 \textcolor{comment}{/*\$FreeBSD\$*/}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00034}00034 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00035}00035 \textcolor{comment}{/*   \(\backslash\)file  lio\_iq.h}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00036}00036 \textcolor{comment}{ *   \(\backslash\)brief Host Driver: Implementation of Octeon input queues. "{}Input"{} is}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00037}00037 \textcolor{comment}{ *   with respect to the Octeon device on the NIC. From this driver's}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00038}00038 \textcolor{comment}{ *   point of view they are egress queues.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00039}00039 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00040}00040 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00041}00041 \textcolor{preprocessor}{\#ifndef \_\_LIO\_IQ\_H\_\_}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00042}00042 \textcolor{preprocessor}{\#define \_\_LIO\_IQ\_H\_\_}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00043}00043 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00044}\mbox{\hyperlink{lio__iq_8h_a8d27f24cbaef8cd667c4ef0d3f31f5b3}{00044}} \textcolor{preprocessor}{\#define LIO\_IQ\_SEND\_OK          0}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00045}\mbox{\hyperlink{lio__iq_8h_a104488f61352352c0e0de2403a18c58f}{00045}} \textcolor{preprocessor}{\#define LIO\_IQ\_SEND\_STOP        1}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00046}\mbox{\hyperlink{lio__iq_8h_a7a8baba01e32a87bd344a3ec2c8f703a}{00046}} \textcolor{preprocessor}{\#define LIO\_IQ\_SEND\_FAILED     -\/1}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00047}00047 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00048}00048 \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/  INSTRUCTION QUEUE -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/*/}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00049}00049 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00050}\mbox{\hyperlink{lio__iq_8h_a9dbc5f26deb0c5285e6cac2e35eaebe0}{00050}} \textcolor{preprocessor}{\#define LIO\_REQTYPE\_NONE                 0}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00051}\mbox{\hyperlink{lio__iq_8h_a39c656cae9d6ced0d82d1a3ee980a472}{00051}} \textcolor{preprocessor}{\#define LIO\_REQTYPE\_NORESP\_NET           1}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00052}\mbox{\hyperlink{lio__iq_8h_ae9a1a7ccae115012756db05cc36ade19}{00052}} \textcolor{preprocessor}{\#define LIO\_REQTYPE\_NORESP\_NET\_SG        2}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00053}\mbox{\hyperlink{lio__iq_8h_a531e027b22887b321cb1773db6808e77}{00053}} \textcolor{preprocessor}{\#define LIO\_REQTYPE\_RESP\_NET             3}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00054}\mbox{\hyperlink{lio__iq_8h_a565fd3fdcde5b63b6ee2ad4ee3ce867a}{00054}} \textcolor{preprocessor}{\#define LIO\_REQTYPE\_SOFT\_COMMAND         4}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00055}00055 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00056}00056 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00057}00057 \textcolor{comment}{ * This structure is used by NIC driver to store information required}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00058}00058 \textcolor{comment}{ * to free the mbuf when the packet has been fetched by Octeon.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00059}00059 \textcolor{comment}{ * Bytes offset below assume worst-\/case of a 64-\/bit system.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00060}00060 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00061}\mbox{\hyperlink{structlio__mbuf__free__info}{00061}} \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__mbuf__free__info}{lio\_mbuf\_free\_info}} \{}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00062}00062         \textcolor{comment}{/* Pointer to mbuf. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00063}\mbox{\hyperlink{structlio__mbuf__free__info_a8fd8ae090b47b0674bdf9b8a9c6f0f96}{00063}}         \textcolor{keyword}{struct }mbuf             *\mbox{\hyperlink{structlio__mbuf__free__info_a8fd8ae090b47b0674bdf9b8a9c6f0f96}{mb}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00064}00064 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00065}00065         \textcolor{comment}{/* Pointer to gather list. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00066}\mbox{\hyperlink{structlio__mbuf__free__info_ad02cacc15814394734987994710848fd}{00066}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__gather}{lio\_gather}}     *\mbox{\hyperlink{structlio__mbuf__free__info_ad02cacc15814394734987994710848fd}{g}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00067}00067 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00068}\mbox{\hyperlink{structlio__mbuf__free__info_a2a4d1a328ae532fdc96a06e972ed3565}{00068}}         bus\_dmamap\_t            \mbox{\hyperlink{structlio__mbuf__free__info_a2a4d1a328ae532fdc96a06e972ed3565}{map}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00069}00069 \};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00070}00070 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00071}\mbox{\hyperlink{structlio__request__list}{00071}} \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__request__list}{lio\_request\_list}} \{}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00072}\mbox{\hyperlink{structlio__request__list_a1f3e4dd70f337e354058c11e4972388b}{00072}}         uint32\_t                        \mbox{\hyperlink{structlio__request__list_a1f3e4dd70f337e354058c11e4972388b}{reqtype}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00073}\mbox{\hyperlink{structlio__request__list_aaebfd6050d7e1644a8baf54771babbc9}{00073}}         \textcolor{keywordtype}{void}                            *\mbox{\hyperlink{structlio__request__list_aaebfd6050d7e1644a8baf54771babbc9}{buf}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00074}\mbox{\hyperlink{structlio__request__list_a485e722002f5ce766f41e9947b56726b}{00074}}         bus\_dmamap\_t                    \mbox{\hyperlink{structlio__request__list_a485e722002f5ce766f41e9947b56726b}{map}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00075}\mbox{\hyperlink{structlio__request__list_a75892855cd84b730e9a420ec9c8f1266}{00075}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__mbuf__free__info}{lio\_mbuf\_free\_info}}     \mbox{\hyperlink{structlio__request__list_a75892855cd84b730e9a420ec9c8f1266}{finfo}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00076}00076 \};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00077}00077 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00078}00078 \textcolor{comment}{/* Input Queue statistics. Each input queue has four stats fields. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00079}\mbox{\hyperlink{structlio__iq__stats}{00079}} \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__iq__stats}{lio\_iq\_stats}} \{}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00080}\mbox{\hyperlink{structlio__iq__stats_aa4c6a5870801fa0a5b47554d4304125c}{00080}}         uint64\_t        \mbox{\hyperlink{structlio__iq__stats_aa4c6a5870801fa0a5b47554d4304125c}{instr\_posted}};               }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00081}\mbox{\hyperlink{structlio__iq__stats_ad0cc8adf88fc1996abb440ab8c24aab6}{00081}}         uint64\_t        \mbox{\hyperlink{structlio__iq__stats_ad0cc8adf88fc1996abb440ab8c24aab6}{instr\_processed}}; }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00082}\mbox{\hyperlink{structlio__iq__stats_ab1a83a44099c52cb984f2b07e623cf7f}{00082}}         uint64\_t        \mbox{\hyperlink{structlio__iq__stats_ab1a83a44099c52cb984f2b07e623cf7f}{instr\_dropped}};             }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00083}\mbox{\hyperlink{structlio__iq__stats_a0e68866312e6df5e4b86b30e4a3e8f42}{00083}}         uint64\_t        \mbox{\hyperlink{structlio__iq__stats_a0e68866312e6df5e4b86b30e4a3e8f42}{bytes\_sent}};           }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00084}\mbox{\hyperlink{structlio__iq__stats_af98525e2310276008b6d974414613f90}{00084}}         uint64\_t        \mbox{\hyperlink{structlio__iq__stats_af98525e2310276008b6d974414613f90}{sgentry\_sent}};               }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00085}\mbox{\hyperlink{structlio__iq__stats_a05b3db5300ff3030adcc8150a672cfda}{00085}}         uint64\_t        \mbox{\hyperlink{structlio__iq__stats_a05b3db5300ff3030adcc8150a672cfda}{tx\_done}};         }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00086}\mbox{\hyperlink{structlio__iq__stats_ac661f273d6f4afe3b13971db559755b2}{00086}}         uint64\_t        \mbox{\hyperlink{structlio__iq__stats_ac661f273d6f4afe3b13971db559755b2}{tx\_iq\_busy}};           }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00087}\mbox{\hyperlink{structlio__iq__stats_af990b38eef526802f42c3578f22669ad}{00087}}         uint64\_t        \mbox{\hyperlink{structlio__iq__stats_af990b38eef526802f42c3578f22669ad}{tx\_dropped}};           }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00088}\mbox{\hyperlink{structlio__iq__stats_a6d899154a9db06c055c017201ff9938d}{00088}}         uint64\_t        \mbox{\hyperlink{structlio__iq__stats_a6d899154a9db06c055c017201ff9938d}{tx\_tot\_bytes}};               }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00089}\mbox{\hyperlink{structlio__iq__stats_afc2ce43993ad2d1c36a62a4c2acef9bf}{00089}}         uint64\_t        \mbox{\hyperlink{structlio__iq__stats_afc2ce43993ad2d1c36a62a4c2acef9bf}{tx\_gso}};                   \textcolor{comment}{/* count of tso */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00090}\mbox{\hyperlink{structlio__iq__stats_aad71b6fc2c8e80986b4c52b9a035e3c3}{00090}}         uint64\_t        \mbox{\hyperlink{structlio__iq__stats_aad71b6fc2c8e80986b4c52b9a035e3c3}{tx\_vxlan}};               \textcolor{comment}{/* tunnel */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00091}\mbox{\hyperlink{structlio__iq__stats_a8188e3d1514d2dd8b61d72a5e09b9d6a}{00091}}         uint64\_t        \mbox{\hyperlink{structlio__iq__stats_a8188e3d1514d2dd8b61d72a5e09b9d6a}{tx\_dmamap\_fail}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00092}\mbox{\hyperlink{structlio__iq__stats_ae78eb5b8998bb95240d3693ecbf02dee}{00092}}         uint64\_t        \mbox{\hyperlink{structlio__iq__stats_ae78eb5b8998bb95240d3693ecbf02dee}{tx\_restart}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00093}\mbox{\hyperlink{structlio__iq__stats_a39ed3e8f048c90a4a0357b2b4d6e2e77}{00093}}         uint64\_t        \mbox{\hyperlink{structlio__iq__stats_a39ed3e8f048c90a4a0357b2b4d6e2e77}{mbuf\_defrag\_failed}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00094}00094 \};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00095}00095 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00096}00096 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00097}00097 \textcolor{comment}{ *  The instruction (input) queue.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00098}00098 \textcolor{comment}{ *  The input queue is used to post raw (instruction) mode data or packet}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00099}00099 \textcolor{comment}{ *  data to Octeon device from the host. Each input queue for}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00100}00100 \textcolor{comment}{ *  a Octeon device has one such structure to represent it.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00101}00101 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00102}\mbox{\hyperlink{structlio__instr__queue}{00102}} \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__instr__queue}{lio\_instr\_queue}} \{}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00103}\mbox{\hyperlink{structlio__instr__queue_a93a4882d7471320902b3445ee35f1a88}{00103}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structocteon__device}{octeon\_device}}       *\mbox{\hyperlink{structlio__instr__queue_a93a4882d7471320902b3445ee35f1a88}{oct\_dev}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00104}00104 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00105}00105         \textcolor{comment}{/* A lock to protect access to the input ring.  */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00106}\mbox{\hyperlink{structlio__instr__queue_a2c7a4073945f78eec5cf43a652cb314f}{00106}}         \textcolor{keyword}{struct }mtx              \mbox{\hyperlink{structlio__instr__queue_a2c7a4073945f78eec5cf43a652cb314f}{lock}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00107}00107 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00108}00108         \textcolor{comment}{/* A lock to protect while enqueue to the input ring.  */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00109}\mbox{\hyperlink{structlio__instr__queue_aedf00f27438279abe25f4926facac1ef}{00109}}         \textcolor{keyword}{struct }mtx              \mbox{\hyperlink{structlio__instr__queue_aedf00f27438279abe25f4926facac1ef}{enq\_lock}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00110}00110 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00111}00111         \textcolor{comment}{/* A lock to protect while posting on the ring.  */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00112}\mbox{\hyperlink{structlio__instr__queue_a366d8e34b6bb0ca7591ecb6487c15fea}{00112}}         \textcolor{keyword}{struct }mtx              \mbox{\hyperlink{structlio__instr__queue_a366d8e34b6bb0ca7591ecb6487c15fea}{post\_lock}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00113}00113 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00114}\mbox{\hyperlink{structlio__instr__queue_a07a0313d8dd09042fcde3f7e325fa71e}{00114}}         uint32\_t                \mbox{\hyperlink{structlio__instr__queue_a07a0313d8dd09042fcde3f7e325fa71e}{pkt\_in\_done}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00115}00115 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00116}00116         \textcolor{comment}{/* A lock to protect access to the input ring. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00117}\mbox{\hyperlink{structlio__instr__queue_ac5b2a9335c1e5a6e6ee201417d1e0d02}{00117}}         \textcolor{keyword}{struct }mtx              \mbox{\hyperlink{structlio__instr__queue_ac5b2a9335c1e5a6e6ee201417d1e0d02}{iq\_flush\_running\_lock}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00118}00118 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00119}00119         \textcolor{comment}{/* Flag that indicates if the queue uses 64 byte commands. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00120}\mbox{\hyperlink{structlio__instr__queue_af6cb01a60fa855d01289da864d76a336}{00120}}         uint32\_t                \mbox{\hyperlink{structlio__instr__queue_af6cb01a60fa855d01289da864d76a336}{iqcmd\_64B}}:1;}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00121}00121 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00122}00122         \textcolor{comment}{/* Queue info. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00123}\mbox{\hyperlink{structlio__instr__queue_a0f80e25acea3c55a342c247a68038dec}{00123}}         \textcolor{keyword}{union }\mbox{\hyperlink{unionocteon__txpciq}{octeon\_txpciq}}        \mbox{\hyperlink{structlio__instr__queue_a0f80e25acea3c55a342c247a68038dec}{txpciq}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00124}00124 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00125}\mbox{\hyperlink{structlio__instr__queue_a9d32eaa7f32656fd8164ee32665e550c}{00125}}         uint32\_t                \mbox{\hyperlink{structlio__instr__queue_a9d32eaa7f32656fd8164ee32665e550c}{rsvd}}:17;}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00126}00126 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00127}\mbox{\hyperlink{structlio__instr__queue_a449941f96c3ca413780c2d4e5d1299a7}{00127}}         uint32\_t                \mbox{\hyperlink{structlio__instr__queue_a449941f96c3ca413780c2d4e5d1299a7}{status}}:8;}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00128}00128 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00129}00129         \textcolor{comment}{/* Maximum no. of instructions in this queue. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00130}\mbox{\hyperlink{structlio__instr__queue_aacc240455d509d0f895ff0cefa62ec16}{00130}}         uint32\_t                \mbox{\hyperlink{structlio__instr__queue_aacc240455d509d0f895ff0cefa62ec16}{max\_count}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00131}00131 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00132}00132         \textcolor{comment}{/* Index in input ring where the driver should write the next packet */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00133}\mbox{\hyperlink{structlio__instr__queue_ae41b850d5975e90e5d817eeacfa1d19e}{00133}}         uint32\_t                \mbox{\hyperlink{structlio__instr__queue_ae41b850d5975e90e5d817eeacfa1d19e}{host\_write\_index}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00134}00134 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00135}00135         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00136}00136 \textcolor{comment}{         * Index in input ring where Octeon is expected to read the next}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00137}00137 \textcolor{comment}{         * packet.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00138}00138 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00139}\mbox{\hyperlink{structlio__instr__queue_a0018c29f49eb103d7247a4edd05ac9e4}{00139}}         uint32\_t                \mbox{\hyperlink{structlio__instr__queue_a0018c29f49eb103d7247a4edd05ac9e4}{octeon\_read\_index}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00140}00140 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00141}00141         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00142}00142 \textcolor{comment}{         * This index aids in finding the window in the queue where Octeon}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00143}00143 \textcolor{comment}{         * has read the commands.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00144}00144 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00145}\mbox{\hyperlink{structlio__instr__queue_a709e16cc840bcc752004517c429e0666}{00145}}         uint32\_t                \mbox{\hyperlink{structlio__instr__queue_a709e16cc840bcc752004517c429e0666}{flush\_index}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00146}00146 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00147}00147         \textcolor{comment}{/* This field keeps track of the instructions pending in this queue. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00148}\mbox{\hyperlink{structlio__instr__queue_a2ba81d22f0552e9e2dab0dbed1c378b2}{00148}}         \textcolor{keyword}{volatile} \textcolor{keywordtype}{int}            \mbox{\hyperlink{structlio__instr__queue_a2ba81d22f0552e9e2dab0dbed1c378b2}{instr\_pending}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00149}00149 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00150}\mbox{\hyperlink{structlio__instr__queue_ae6eba660ab81c26f34e30aad4a7c28ac}{00150}}         uint32\_t                \mbox{\hyperlink{structlio__instr__queue_ae6eba660ab81c26f34e30aad4a7c28ac}{reset\_instr\_cnt}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00151}00151 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00152}00152         \textcolor{comment}{/* Pointer to the Virtual Base addr of the input ring. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00153}\mbox{\hyperlink{structlio__instr__queue_a352264619cfcb0f84542717aeec26e38}{00153}}         uint8\_t                 *\mbox{\hyperlink{structlio__instr__queue_a352264619cfcb0f84542717aeec26e38}{base\_addr}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00154}\mbox{\hyperlink{structlio__instr__queue_abe0999a1b9ad355655c815c85eefd061}{00154}}         bus\_dma\_tag\_t           \mbox{\hyperlink{structlio__instr__queue_abe0999a1b9ad355655c815c85eefd061}{txtag}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00155}00155 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00156}\mbox{\hyperlink{structlio__instr__queue_a4e5bff40aeeea3e15a6624aecee178ea}{00156}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__request__list}{lio\_request\_list}} *\mbox{\hyperlink{structlio__instr__queue_a4e5bff40aeeea3e15a6624aecee178ea}{request\_list}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00157}00157 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00158}\mbox{\hyperlink{structlio__instr__queue_ad8faf8e3254cabbbe74d35048cfd88a5}{00158}}         \textcolor{keyword}{struct }buf\_ring         *\mbox{\hyperlink{structlio__instr__queue_ad8faf8e3254cabbbe74d35048cfd88a5}{br}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00159}00159 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00160}00160         \textcolor{comment}{/* Octeon doorbell register for the ring. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00161}\mbox{\hyperlink{structlio__instr__queue_a4e3f0715ac3bce49e550b145ec686966}{00161}}         uint32\_t                \mbox{\hyperlink{structlio__instr__queue_a4e3f0715ac3bce49e550b145ec686966}{doorbell\_reg}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00162}00162 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00163}00163         \textcolor{comment}{/* Octeon instruction count register for this ring. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00164}\mbox{\hyperlink{structlio__instr__queue_a18a281e260db157a4acaf05869860d80}{00164}}         uint32\_t                \mbox{\hyperlink{structlio__instr__queue_a18a281e260db157a4acaf05869860d80}{inst\_cnt\_reg}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00165}00165 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00166}00166         \textcolor{comment}{/* Number of instructions pending to be posted to Octeon. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00167}\mbox{\hyperlink{structlio__instr__queue_a8b79a25fe03aae8b247b6b357bd2f499}{00167}}         uint32\_t                \mbox{\hyperlink{structlio__instr__queue_a8b79a25fe03aae8b247b6b357bd2f499}{fill\_cnt}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00168}00168 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00169}00169         \textcolor{comment}{/* The last time that the doorbell was rung. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00170}\mbox{\hyperlink{structlio__instr__queue_a3555c31a9990cd2523de71fccd404382}{00170}}         uint64\_t                \mbox{\hyperlink{structlio__instr__queue_a3555c31a9990cd2523de71fccd404382}{last\_db\_time}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00171}00171 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00172}00172         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00173}00173 \textcolor{comment}{         * The doorbell timeout. If the doorbell was not rung for this time}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00174}00174 \textcolor{comment}{         * and fill\_cnt is non-\/zero, ring the doorbell again.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00175}00175 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00176}\mbox{\hyperlink{structlio__instr__queue_a4261e2e3810f01eb8894e1adcafda6a8}{00176}}         uint32\_t                \mbox{\hyperlink{structlio__instr__queue_a4261e2e3810f01eb8894e1adcafda6a8}{db\_timeout}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00177}00177 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00178}00178         \textcolor{comment}{/* Statistics for this input queue. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00179}\mbox{\hyperlink{structlio__instr__queue_ae643e92210d775f5ab51b3ea613abbad}{00179}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__iq__stats}{lio\_iq\_stats}} \mbox{\hyperlink{structlio__instr__queue_ae643e92210d775f5ab51b3ea613abbad}{stats}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00180}00180 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00181}00181         \textcolor{comment}{/* DMA mapped base address of the input descriptor ring. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00182}\mbox{\hyperlink{structlio__instr__queue_a0b99fe6257fd909148240bf295b82501}{00182}}         uint64\_t                \mbox{\hyperlink{structlio__instr__queue_a0b99fe6257fd909148240bf295b82501}{base\_addr\_dma}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00183}00183 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00184}00184         \textcolor{comment}{/* Application context */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00185}\mbox{\hyperlink{structlio__instr__queue_a2003bc06e8366c1382cce010e187aa85}{00185}}         \textcolor{keywordtype}{void}                    *\mbox{\hyperlink{structlio__instr__queue_a2003bc06e8366c1382cce010e187aa85}{app\_ctx}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00186}00186 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00187}00187         \textcolor{comment}{/* network stack queue index */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00188}\mbox{\hyperlink{structlio__instr__queue_a8d5da19e9a0e075f5cb5b02c6b713968}{00188}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structlio__instr__queue_a8d5da19e9a0e075f5cb5b02c6b713968}{q\_index}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00189}00189 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00190}00190         \textcolor{comment}{/* os ifidx associated with this queue */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00191}\mbox{\hyperlink{structlio__instr__queue_acd81cfb9b1ca36b7c1c5bc1e3ad1c262}{00191}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structlio__instr__queue_acd81cfb9b1ca36b7c1c5bc1e3ad1c262}{ifidx}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00192}00192 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00193}00193 \};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00194}00194 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00195}00195 \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/  INSTRUCTION FORMAT -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/*/}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00196}00196 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00197}\mbox{\hyperlink{structlio__instr3__64B}{00197}} \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__instr3__64B}{lio\_instr3\_64B}} \{}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00198}00198         \textcolor{comment}{/* Pointer where the input data is available. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00199}\mbox{\hyperlink{structlio__instr3__64B_ac19df0c9adaeb4d8532352ea9006d317}{00199}}         uint64\_t        \mbox{\hyperlink{structlio__instr3__64B_ac19df0c9adaeb4d8532352ea9006d317}{dptr}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00200}00200 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00201}00201         \textcolor{comment}{/* Instruction Header. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00202}\mbox{\hyperlink{structlio__instr3__64B_af412fd769c61734b9ec13857601e4ca7}{00202}}         uint64\_t        \mbox{\hyperlink{structlio__instr3__64B_af412fd769c61734b9ec13857601e4ca7}{ih3}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00203}00203 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00204}00204         \textcolor{comment}{/* Instruction Header. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00205}\mbox{\hyperlink{structlio__instr3__64B_aefccce1ab81fe0fe0b73e9570a174cf1}{00205}}         uint64\_t        \mbox{\hyperlink{structlio__instr3__64B_aefccce1ab81fe0fe0b73e9570a174cf1}{pki\_ih3}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00206}00206 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00207}00207         \textcolor{comment}{/* Input Request Header. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00208}\mbox{\hyperlink{structlio__instr3__64B_af53f292fb39e1eb4f33adbffaa00f7d3}{00208}}         uint64\_t        \mbox{\hyperlink{structlio__instr3__64B_af53f292fb39e1eb4f33adbffaa00f7d3}{irh}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00209}00209 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00210}00210         \textcolor{comment}{/* opcode/subcode specific parameters */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00211}\mbox{\hyperlink{structlio__instr3__64B_a3ad43b3219f365687cd6535ca3c029f7}{00211}}         uint64\_t        \mbox{\hyperlink{structlio__instr3__64B_a3ad43b3219f365687cd6535ca3c029f7}{ossp}}[2];}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00212}00212 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00213}00213         \textcolor{comment}{/* Return Data Parameters */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00214}\mbox{\hyperlink{structlio__instr3__64B_a8023c4063c9f46f1adf4b391ff48d2be}{00214}}         uint64\_t        \mbox{\hyperlink{structlio__instr3__64B_a8023c4063c9f46f1adf4b391ff48d2be}{rdp}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00215}00215 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00216}00216         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00217}00217 \textcolor{comment}{         * Pointer where the response for a RAW mode packet will be written}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00218}00218 \textcolor{comment}{         * by Octeon.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00219}00219 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00220}\mbox{\hyperlink{structlio__instr3__64B_a6db448de70bce721d96ef8122f32895d}{00220}}         uint64\_t        \mbox{\hyperlink{structlio__instr3__64B_a6db448de70bce721d96ef8122f32895d}{rptr}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00221}00221 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00222}00222 \};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00223}00223 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00224}\mbox{\hyperlink{unionlio__instr__64B}{00224}} \textcolor{keyword}{union }\mbox{\hyperlink{unionlio__instr__64B}{lio\_instr\_64B}} \{}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00225}\mbox{\hyperlink{unionlio__instr__64B_aa7ec9f85a5dee448e720d3779e0363c4}{00225}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__instr3__64B}{lio\_instr3\_64B}}     \mbox{\hyperlink{unionlio__instr__64B_aa7ec9f85a5dee448e720d3779e0363c4}{cmd3}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00226}00226 \};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00227}00227 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00228}00228 \textcolor{comment}{/* The size of each buffer in soft command buffer pool */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00229}\mbox{\hyperlink{lio__iq_8h_a5c2b5ef28df0842ea26bc630ca8b67f1}{00229}} \textcolor{preprocessor}{\#define LIO\_SOFT\_COMMAND\_BUFFER\_SIZE    2048}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00230}00230 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00231}\mbox{\hyperlink{structlio__soft__command}{00231}} \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__soft__command}{lio\_soft\_command}} \{}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00232}00232         \textcolor{comment}{/* Soft command buffer info. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00233}\mbox{\hyperlink{structlio__soft__command_abddb60881d4717d684ca6a1707b5c960}{00233}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__stailq__node}{lio\_stailq\_node}}   \mbox{\hyperlink{structlio__soft__command_abddb60881d4717d684ca6a1707b5c960}{node}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00234}\mbox{\hyperlink{structlio__soft__command_a61048369d550bbfb3b1060d54cae12ba}{00234}}         uint64\_t                \mbox{\hyperlink{structlio__soft__command_a61048369d550bbfb3b1060d54cae12ba}{dma\_addr}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00235}\mbox{\hyperlink{structlio__soft__command_aee6c6c4584fc15c588a4345eae4b5592}{00235}}         uint32\_t                \mbox{\hyperlink{structlio__soft__command_aee6c6c4584fc15c588a4345eae4b5592}{size}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00236}00236 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00237}00237         \textcolor{comment}{/* Command and return status */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00238}\mbox{\hyperlink{structlio__soft__command_a700d56e1f724f6dbb50abb77fd2d98f2}{00238}}         \textcolor{keyword}{union }\mbox{\hyperlink{unionlio__instr__64B}{lio\_instr\_64B}}        \mbox{\hyperlink{structlio__soft__command_a700d56e1f724f6dbb50abb77fd2d98f2}{cmd}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00239}00239 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00240}\mbox{\hyperlink{lio__iq_8h_a54ac797cb9154664456e42f47a4ab860}{00240}} \textcolor{preprocessor}{\#define COMPLETION\_WORD\_INIT    0xffffffffffffffffULL}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00241}\mbox{\hyperlink{structlio__soft__command_a01a8cb64ee068bdd3ba55f404a99af56}{00241}}         uint64\_t                *\mbox{\hyperlink{structlio__soft__command_a01a8cb64ee068bdd3ba55f404a99af56}{status\_word}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00242}00242 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00243}00243         \textcolor{comment}{/* Data buffer info */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00244}\mbox{\hyperlink{structlio__soft__command_acaf5313ed39db3b404d471eb73a6494d}{00244}}         \textcolor{keywordtype}{void}                    *\mbox{\hyperlink{structlio__soft__command_acaf5313ed39db3b404d471eb73a6494d}{virtdptr}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00245}\mbox{\hyperlink{structlio__soft__command_a851e9f1d363b95b092bc4c84c45b1dcf}{00245}}         uint64\_t                \mbox{\hyperlink{structlio__soft__command_a851e9f1d363b95b092bc4c84c45b1dcf}{dmadptr}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00246}\mbox{\hyperlink{structlio__soft__command_a1de9fae89229b51c7a51950253bbe3e1}{00246}}         uint32\_t                \mbox{\hyperlink{structlio__soft__command_a1de9fae89229b51c7a51950253bbe3e1}{datasize}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00247}00247 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00248}00248         \textcolor{comment}{/* Return buffer info */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00249}\mbox{\hyperlink{structlio__soft__command_aacfcbb9eb30a919cbc55077f21490974}{00249}}         \textcolor{keywordtype}{void}                    *\mbox{\hyperlink{structlio__soft__command_aacfcbb9eb30a919cbc55077f21490974}{virtrptr}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00250}\mbox{\hyperlink{structlio__soft__command_ad671da5c5547b1cfcded8f9f07b9ae61}{00250}}         uint64\_t                \mbox{\hyperlink{structlio__soft__command_ad671da5c5547b1cfcded8f9f07b9ae61}{dmarptr}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00251}\mbox{\hyperlink{structlio__soft__command_a604102083dd4445c12ca625394e8ebd5}{00251}}         uint32\_t                \mbox{\hyperlink{structlio__soft__command_a604102083dd4445c12ca625394e8ebd5}{rdatasize}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00252}00252 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00253}00253         \textcolor{comment}{/* Context buffer info */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00254}\mbox{\hyperlink{structlio__soft__command_a288d7c6ce348f6c917681748ebf432fd}{00254}}         \textcolor{keywordtype}{void}                    *\mbox{\hyperlink{structlio__soft__command_a288d7c6ce348f6c917681748ebf432fd}{ctxptr}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00255}\mbox{\hyperlink{structlio__soft__command_ac0d64906eafcf10c7130bd5d8ef56119}{00255}}         uint32\_t                \mbox{\hyperlink{structlio__soft__command_ac0d64906eafcf10c7130bd5d8ef56119}{ctxsize}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00256}00256 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00257}00257         \textcolor{comment}{/* Time out and callback */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00258}\mbox{\hyperlink{structlio__soft__command_a8e77d97141a049d956998e5bc28bc90d}{00258}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structlio__soft__command_a8e77d97141a049d956998e5bc28bc90d}{wait\_time}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00259}\mbox{\hyperlink{structlio__soft__command_aac44b9c90f9a025341b26e9fc101ec86}{00259}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structlio__soft__command_aac44b9c90f9a025341b26e9fc101ec86}{timeout}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00260}\mbox{\hyperlink{structlio__soft__command_ad15512a7fe14de8f48679ea491ceef6d}{00260}}         uint32\_t                \mbox{\hyperlink{structlio__soft__command_ad15512a7fe14de8f48679ea491ceef6d}{iq\_no}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00261}\mbox{\hyperlink{structlio__soft__command_a912a296891fe84dc401a7219a8847063}{00261}}         void                    (*\mbox{\hyperlink{structlio__soft__command_a912a296891fe84dc401a7219a8847063}{callback}}) (\textcolor{keyword}{struct }\mbox{\hyperlink{structocteon__device}{octeon\_device}} *, uint32\_t,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00262}00262                                              \textcolor{keywordtype}{void} *);}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00263}\mbox{\hyperlink{structlio__soft__command_a998df93b613de98f6a4f5f47ac72f64a}{00263}}         \textcolor{keywordtype}{void}                    *\mbox{\hyperlink{structlio__soft__command_a998df93b613de98f6a4f5f47ac72f64a}{callback\_arg}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00264}00264 \};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00265}00265 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00266}00266 \textcolor{comment}{/* Maximum number of buffers to allocate into soft command buffer pool */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00267}\mbox{\hyperlink{lio__iq_8h_ad9bf9b88d763153073169d375e885554}{00267}} \textcolor{preprocessor}{\#define LIO\_MAX\_SOFT\_COMMAND\_BUFFERS    256}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00268}00268 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00269}00269 \textcolor{comment}{/* Head of a soft command buffer pool. */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00270}\mbox{\hyperlink{structlio__sc__buffer__pool}{00270}} \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__sc__buffer__pool}{lio\_sc\_buffer\_pool}} \{}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00271}00271         \textcolor{comment}{/* List structure to add delete pending entries to */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00272}\mbox{\hyperlink{structlio__sc__buffer__pool_a84b1088b35244439ac4619b614f93f5c}{00272}}         \textcolor{keyword}{struct }lio\_stailq\_head  \mbox{\hyperlink{structlio__sc__buffer__pool_a84b1088b35244439ac4619b614f93f5c}{head}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00273}00273 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00274}00274         \textcolor{comment}{/* A lock for this response list */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00275}\mbox{\hyperlink{structlio__sc__buffer__pool_aa004e6ffb17d79efacb80020f2a476c6}{00275}}         \textcolor{keyword}{struct }mtx              \mbox{\hyperlink{structlio__sc__buffer__pool_aa004e6ffb17d79efacb80020f2a476c6}{lock}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00276}00276 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00277}\mbox{\hyperlink{structlio__sc__buffer__pool_a5eabd8deebddfaa8e7263955ddc7e91b}{00277}}         \textcolor{keyword}{volatile} uint32\_t       \mbox{\hyperlink{structlio__sc__buffer__pool_a5eabd8deebddfaa8e7263955ddc7e91b}{alloc\_buf\_count}};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00278}00278 \};}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00279}00279 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00280}\mbox{\hyperlink{lio__iq_8h_a55cd3ee6558fb874a3f6a96dd5d2426c}{00280}} \textcolor{preprocessor}{\#define LIO\_INCR\_INSTRQUEUE\_PKT\_COUNT(octeon\_dev\_ptr, iq\_no, field, count) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00281}00281 \textcolor{preprocessor}{                (((octeon\_dev\_ptr)-\/>instr\_queue[iq\_no]-\/>stats.field) += count)}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00282}00282 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00283}00283 \textcolor{keywordtype}{int}     \mbox{\hyperlink{lio__iq_8h_a25bafee1c52d75d9725a7b40406e9990}{lio\_setup\_sc\_buffer\_pool}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *oct);}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00284}00284 \textcolor{keywordtype}{int}     \mbox{\hyperlink{lio__iq_8h_a1a098b81a6c70e9715022bff13860b4f}{lio\_free\_sc\_buffer\_pool}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *oct);}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00285}00285 \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__soft__command}{lio\_soft\_command}} *\mbox{\hyperlink{lio__iq_8h_add1cd4d610e5132e206f17aa347c6116}{lio\_alloc\_soft\_command}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *oct,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00286}00286                                                 uint32\_t \mbox{\hyperlink{structlio__soft__command_a1de9fae89229b51c7a51950253bbe3e1}{datasize}},}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00287}00287                                                 uint32\_t \mbox{\hyperlink{structlio__soft__command_a604102083dd4445c12ca625394e8ebd5}{rdatasize}},}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00288}00288                                                 uint32\_t \mbox{\hyperlink{structlio__soft__command_ac0d64906eafcf10c7130bd5d8ef56119}{ctxsize}});}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00289}00289 \textcolor{keywordtype}{void}    \mbox{\hyperlink{lio__iq_8h_aeacdddc60eaf524a3482cbd54a8e6fb0}{lio\_free\_soft\_command}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *oct,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00290}00290                               \textcolor{keyword}{struct} \mbox{\hyperlink{structlio__soft__command}{lio\_soft\_command}} *sc);}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00291}00291 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00292}00292 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00293}00293 \textcolor{comment}{ *  lio\_init\_instr\_queue()}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00294}00294 \textcolor{comment}{ *  @param octeon\_dev      -\/ pointer to the octeon device structure.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00295}00295 \textcolor{comment}{ *  @param txpciq          -\/ queue to be initialized (0 <= q\_no <= 3).}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00296}00296 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00297}00297 \textcolor{comment}{ *  Called at driver init time for each input queue. iq\_conf has the}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00298}00298 \textcolor{comment}{ *  configuration parameters for the queue.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00299}00299 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00300}00300 \textcolor{comment}{ *  @return  Success: 0   Failure: 1}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00301}00301 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00302}00302 \textcolor{keywordtype}{int}     \mbox{\hyperlink{lio__iq_8h_a7cfbfc0650995b3568ad6a87bb737cbd}{lio\_init\_instr\_queue}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *octeon\_dev,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00303}00303                              \textcolor{keyword}{union} \mbox{\hyperlink{unionocteon__txpciq}{octeon\_txpciq}} txpciq, uint32\_t num\_descs);}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00304}00304 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00305}00305 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00306}00306 \textcolor{comment}{ *  lio\_delete\_instr\_queue()}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00307}00307 \textcolor{comment}{ *  @param octeon\_dev      -\/ pointer to the octeon device structure.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00308}00308 \textcolor{comment}{ *  @param iq\_no           -\/ queue to be deleted}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00309}00309 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00310}00310 \textcolor{comment}{ *  Called at driver unload time for each input queue. Deletes all}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00311}00311 \textcolor{comment}{ *  allocated resources for the input queue.}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00312}00312 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00313}00313 \textcolor{comment}{ *  @return  Success: 0   Failure: 1}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00314}00314 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00315}00315 \textcolor{keywordtype}{int}     \mbox{\hyperlink{lio__iq_8h_aa8e334609feb4119fcd037b89fc12298}{lio\_delete\_instr\_queue}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *octeon\_dev,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00316}00316                                uint32\_t \mbox{\hyperlink{structlio__soft__command_ad15512a7fe14de8f48679ea491ceef6d}{iq\_no}});}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00317}00317 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00318}00318 \textcolor{keywordtype}{int}     \mbox{\hyperlink{lio__iq_8h_ac4900db5765b1b439c6cac79a94ce7b3}{lio\_wait\_for\_instr\_fetch}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *oct);}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00319}00319 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00320}00320 \textcolor{keywordtype}{int}     \mbox{\hyperlink{lio__iq_8h_a65afb6e1646fc39bfa82450e1965b39e}{lio\_process\_iq\_request\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *oct,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00321}00321                                     \textcolor{keyword}{struct} \mbox{\hyperlink{structlio__instr__queue}{lio\_instr\_queue}} *iq,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00322}00322                                     uint32\_t budget);}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00323}00323 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00324}00324 \textcolor{keywordtype}{int}     \mbox{\hyperlink{lio__iq_8h_ad69baa289afaf465ca55687cba8f8ff0}{lio\_send\_command}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *oct, uint32\_t \mbox{\hyperlink{structlio__soft__command_ad15512a7fe14de8f48679ea491ceef6d}{iq\_no}},}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00325}00325                          uint32\_t force\_db, \textcolor{keywordtype}{void} *\mbox{\hyperlink{structlio__soft__command_a700d56e1f724f6dbb50abb77fd2d98f2}{cmd}}, \textcolor{keywordtype}{void} *buf,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00326}00326                          uint32\_t \mbox{\hyperlink{structlio__soft__command_a1de9fae89229b51c7a51950253bbe3e1}{datasize}}, uint32\_t reqtype);}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00327}00327 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00328}00328 \textcolor{keywordtype}{void}    \mbox{\hyperlink{lio__iq_8h_a6bd987af0b5107ea95f63de23cb68cda}{lio\_prepare\_soft\_command}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *oct,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00329}00329                                  \textcolor{keyword}{struct} \mbox{\hyperlink{structlio__soft__command}{lio\_soft\_command}} *sc,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00330}00330                                  uint8\_t opcode, uint8\_t subcode,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00331}00331                                  uint32\_t irh\_ossp, uint64\_t ossp0,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00332}00332                                  uint64\_t ossp1);}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00333}00333 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00334}00334 \textcolor{keywordtype}{int}     \mbox{\hyperlink{lio__iq_8h_a208aa2e8ecfdc37f4f3f961afd44c264}{lio\_send\_soft\_command}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *oct,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00335}00335                               \textcolor{keyword}{struct} \mbox{\hyperlink{structlio__soft__command}{lio\_soft\_command}} *sc);}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00336}00336 }
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00337}00337 \textcolor{keywordtype}{int}     \mbox{\hyperlink{lio__iq_8h_a38cb13793bdd782c0aa7bff275e91de9}{lio\_setup\_iq}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *oct, \textcolor{keywordtype}{int} ifidx,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00338}00338                      \textcolor{keywordtype}{int} q\_index, \textcolor{keyword}{union} \mbox{\hyperlink{unionocteon__txpciq}{octeon\_txpciq}} \mbox{\hyperlink{structlio__soft__command_ad15512a7fe14de8f48679ea491ceef6d}{iq\_no}},}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00339}00339                      uint32\_t num\_descs);}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00340}00340 \textcolor{keywordtype}{int}     \mbox{\hyperlink{lio__iq_8h_a963139a14cc9f08985e3a319c3b0b863}{lio\_flush\_iq}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *oct, \textcolor{keyword}{struct} \mbox{\hyperlink{structlio__instr__queue}{lio\_instr\_queue}} *iq,}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00341}00341                      uint32\_t budget);}
\DoxyCodeLine{\Hypertarget{lio__iq_8h_source_l00342}00342 \textcolor{preprocessor}{\#endif  }\textcolor{comment}{/* \_\_LIO\_IQ\_H\_\_ */}\textcolor{preprocessor}{}}

\end{DoxyCode}
