\hypertarget{sfxge__rx_8h_source}{}\doxysection{sfxge\+\_\+rx.\+h}
\label{sfxge__rx_8h_source}\index{dev/sfxge/sfxge\_rx.h@{dev/sfxge/sfxge\_rx.h}}
\mbox{\hyperlink{sfxge__rx_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2010-\/2016 Solarflare Communications Inc.}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00005}00005 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00007}00007 \textcolor{comment}{ * This software was developed in part by Philip Paeps under contract for}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00008}00008 \textcolor{comment}{ * Solarflare Communications, Inc.}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00009}00009 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00010}00010 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00011}00011 \textcolor{comment}{ * modification, are permitted provided that the following conditions are met:}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00012}00012 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00013}00013 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright notice,}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00014}00014 \textcolor{comment}{ *    this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00015}00015 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright notice,}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00016}00016 \textcolor{comment}{ *    this list of conditions and the following disclaimer in the documentation}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00017}00017 \textcolor{comment}{ *    and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00018}00018 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00019}00019 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "{}AS IS"{}}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00020}00020 \textcolor{comment}{ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00021}00021 \textcolor{comment}{ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00022}00022 \textcolor{comment}{ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00023}00023 \textcolor{comment}{ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00024}00024 \textcolor{comment}{ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00025}00025 \textcolor{comment}{ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00026}00026 \textcolor{comment}{ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00027}00027 \textcolor{comment}{ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00028}00028 \textcolor{comment}{ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00029}00029 \textcolor{comment}{ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00030}00030 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00031}00031 \textcolor{comment}{ * The views and conclusions contained in the software and documentation are}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00032}00032 \textcolor{comment}{ * those of the authors and should not be interpreted as representing official}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00033}00033 \textcolor{comment}{ * policies, either expressed or implied, of the FreeBSD Project.}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00034}00034 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00035}00035 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00036}00036 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00037}00037 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00038}00038 \textcolor{preprocessor}{\#ifndef \_SFXGE\_RX\_H}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00039}00039 \textcolor{preprocessor}{\#define \_SFXGE\_RX\_H}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00040}00040 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00041}00041 \textcolor{preprocessor}{\#include "{}opt\_inet.h"{}}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00042}00042 \textcolor{preprocessor}{\#include "{}opt\_inet6.h"{}}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00043}00043 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00044}00044 \textcolor{preprocessor}{\#if defined(INET) || defined(INET6)}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00045}00045 \textcolor{preprocessor}{\#define SFXGE\_LRO       1}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00046}00046 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00047}00047 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00048}\mbox{\hyperlink{sfxge__rx_8h_aeed95cbf7c562bddefe9e50f372dd032}{00048}} \textcolor{preprocessor}{\#define SFXGE\_RX\_SCALE\_MAX      EFX\_MAXRSS}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00049}00049 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00050}\mbox{\hyperlink{structsfxge__rx__sw__desc}{00050}} \textcolor{keyword}{struct }\mbox{\hyperlink{structsfxge__rx__sw__desc}{sfxge\_rx\_sw\_desc}} \{}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00051}\mbox{\hyperlink{structsfxge__rx__sw__desc_a7bf31f79e7f42c1dc06a7c1bfe1b367c}{00051}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structsfxge__rx__sw__desc_a7bf31f79e7f42c1dc06a7c1bfe1b367c}{mbuf}} *\mbox{\hyperlink{structsfxge__rx__sw__desc_a7bf31f79e7f42c1dc06a7c1bfe1b367c}{mbuf}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00052}\mbox{\hyperlink{structsfxge__rx__sw__desc_a44684af5a1c73138ccf5d98fcdcdc63f}{00052}}         bus\_dmamap\_t    \mbox{\hyperlink{structsfxge__rx__sw__desc_a44684af5a1c73138ccf5d98fcdcdc63f}{map}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00053}\mbox{\hyperlink{structsfxge__rx__sw__desc_a52809fe337388f9becfc2eecbe6c3733}{00053}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structsfxge__rx__sw__desc_a52809fe337388f9becfc2eecbe6c3733}{flags}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00054}\mbox{\hyperlink{structsfxge__rx__sw__desc_a3beb8be2e79a25c974f223767b44d5f6}{00054}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structsfxge__rx__sw__desc_a3beb8be2e79a25c974f223767b44d5f6}{size}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00055}00055 \};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00056}00056 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00057}00057 \textcolor{preprocessor}{\#ifdef SFXGE\_LRO}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00058}00058 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00081}00081 \textcolor{keyword}{struct }sfxge\_lro\_conn \{}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00082}00082         TAILQ\_ENTRY(sfxge\_lro\_conn) link;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00083}00083         LIST\_ENTRY(sfxge\_lro\_conn) active\_link;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00084}00084         uint16\_t l2\_id;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00085}00085         uint32\_t conn\_hash;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00086}00086         \textcolor{keywordtype}{void} *nh;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00087}00087         uint16\_t source, dest;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00088}00088         \textcolor{keywordtype}{int} n\_in\_order\_pkts;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00089}00089         \textcolor{keywordtype}{unsigned} next\_seq;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00090}00090         \textcolor{keywordtype}{unsigned} last\_pkt\_ticks;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00091}00091         \textcolor{keyword}{struct }mbuf *mbuf;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00092}00092         \textcolor{keyword}{struct }mbuf *mbuf\_tail;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00093}00093         \textcolor{keyword}{struct }tcphdr *th\_last;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00094}00094         \textcolor{keyword}{struct }\mbox{\hyperlink{structsfxge__rx__sw__desc}{sfxge\_rx\_sw\_desc}} next\_buf;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00095}00095         \textcolor{keywordtype}{void} *next\_eh;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00096}00096         \textcolor{keywordtype}{void} *next\_nh;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00097}00097         \textcolor{keywordtype}{int} delivered;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00098}00098 \};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00099}00099 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00121}00121 \textcolor{keyword}{struct }sfxge\_lro\_state \{}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00122}00122         \textcolor{keyword}{struct }\mbox{\hyperlink{structsfxge__softc}{sfxge\_softc}} *\mbox{\hyperlink{sfxge_8h_a0fdd68fb60df8c76625b73b761e9b8d0}{sc}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00123}00123         \textcolor{keywordtype}{unsigned} conns\_mask;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00124}00124         TAILQ\_HEAD(sfxge\_lro\_tailq, sfxge\_lro\_conn) *conns;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00125}00125         \textcolor{keywordtype}{unsigned} *conns\_n;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00126}00126         LIST\_HEAD(, sfxge\_lro\_conn) active\_conns;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00127}00127         TAILQ\_HEAD(, sfxge\_lro\_conn) free\_conns;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00128}00128         \textcolor{keywordtype}{unsigned} last\_purge\_ticks;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00129}00129         \textcolor{keywordtype}{unsigned} n\_merges;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00130}00130         \textcolor{keywordtype}{unsigned} n\_bursts;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00131}00131         \textcolor{keywordtype}{unsigned} n\_slow\_start;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00132}00132         \textcolor{keywordtype}{unsigned} n\_misorder;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00133}00133         \textcolor{keywordtype}{unsigned} n\_too\_many;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00134}00134         \textcolor{keywordtype}{unsigned} n\_new\_stream;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00135}00135         \textcolor{keywordtype}{unsigned} n\_drop\_idle;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00136}00136         \textcolor{keywordtype}{unsigned} n\_drop\_closed;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00137}00137 \};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00138}00138 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00139}00139 \textcolor{preprocessor}{\#endif  }\textcolor{comment}{/* SFXGE\_LRO */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00140}00140 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00141}\mbox{\hyperlink{sfxge__rx_8h_acfa31d4e63eeb1ae42c564995d2c5488}{00141}} \textcolor{keyword}{enum} \mbox{\hyperlink{sfxge__rx_8h_acfa31d4e63eeb1ae42c564995d2c5488}{sfxge\_flush\_state}} \{}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00142}\mbox{\hyperlink{sfxge__rx_8h_acfa31d4e63eeb1ae42c564995d2c5488a6135328a9c9c54eb0bfee0732f6786bb}{00142}}         \mbox{\hyperlink{sfxge__rx_8h_acfa31d4e63eeb1ae42c564995d2c5488a6135328a9c9c54eb0bfee0732f6786bb}{SFXGE\_FLUSH\_DONE}} = 0,}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00143}\mbox{\hyperlink{sfxge__rx_8h_acfa31d4e63eeb1ae42c564995d2c5488aa8608a48d7ca840917095e817209fa87}{00143}}         \mbox{\hyperlink{sfxge__rx_8h_acfa31d4e63eeb1ae42c564995d2c5488aa8608a48d7ca840917095e817209fa87}{SFXGE\_FLUSH\_REQUIRED}},}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00144}\mbox{\hyperlink{sfxge__rx_8h_acfa31d4e63eeb1ae42c564995d2c5488a8d7fbfe7b826659218720b72faf3f5c3}{00144}}         \mbox{\hyperlink{sfxge__rx_8h_acfa31d4e63eeb1ae42c564995d2c5488a8d7fbfe7b826659218720b72faf3f5c3}{SFXGE\_FLUSH\_PENDING}},}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00145}00145         \mbox{\hyperlink{sfxge__rx_8h_acfa31d4e63eeb1ae42c564995d2c5488a15ba7f2f8db55270cde4329414864e57}{SFXGE\_FLUSH\_FAILED}}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00146}\mbox{\hyperlink{sfxge__rx_8h_acfa31d4e63eeb1ae42c564995d2c5488a15ba7f2f8db55270cde4329414864e57}{00146}} \};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00147}00147 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00148}\mbox{\hyperlink{sfxge__rx_8h_a525a35e5545ae2ad428f1038478498d1}{00148}} \textcolor{keyword}{enum} \mbox{\hyperlink{sfxge__rx_8h_a525a35e5545ae2ad428f1038478498d1}{sfxge\_rxq\_state}} \{}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00149}\mbox{\hyperlink{sfxge__rx_8h_a525a35e5545ae2ad428f1038478498d1ae6dc0bf5ccff1224182822fa7c8a3f28}{00149}}         \mbox{\hyperlink{sfxge__rx_8h_a525a35e5545ae2ad428f1038478498d1ae6dc0bf5ccff1224182822fa7c8a3f28}{SFXGE\_RXQ\_UNINITIALIZED}} = 0,}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00150}\mbox{\hyperlink{sfxge__rx_8h_a525a35e5545ae2ad428f1038478498d1aeb87701cd6d5d9c9a10ac411450c456b}{00150}}         \mbox{\hyperlink{sfxge__rx_8h_a525a35e5545ae2ad428f1038478498d1aeb87701cd6d5d9c9a10ac411450c456b}{SFXGE\_RXQ\_INITIALIZED}},}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00151}00151         \mbox{\hyperlink{sfxge__rx_8h_a525a35e5545ae2ad428f1038478498d1a30b75f7764cd4b1c138d296877716e4b}{SFXGE\_RXQ\_STARTED}}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00152}\mbox{\hyperlink{sfxge__rx_8h_a525a35e5545ae2ad428f1038478498d1a30b75f7764cd4b1c138d296877716e4b}{00152}} \};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00153}00153 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00154}\mbox{\hyperlink{sfxge__rx_8h_afeb92332bb056861509b0bdf01c49226}{00154}} \textcolor{preprocessor}{\#define SFXGE\_RX\_BATCH  128}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00155}00155 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00156}\mbox{\hyperlink{structsfxge__rxq}{00156}} \textcolor{keyword}{struct }\mbox{\hyperlink{structsfxge__rxq}{sfxge\_rxq}} \{}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00157}\mbox{\hyperlink{structsfxge__rxq_a2e596f2ce0dea379adc9ce41def01a03}{00157}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structsfxge__softc}{sfxge\_softc}}           *\mbox{\hyperlink{sfxge_8h_a0fdd68fb60df8c76625b73b761e9b8d0}{sc}} \mbox{\hyperlink{structsfxge__rxq_a2e596f2ce0dea379adc9ce41def01a03}{\_\_aligned}}(\mbox{\hyperlink{sfxge_8h_af89f60b07247176687889ade776c8e10}{CACHE\_LINE\_SIZE}});}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00158}\mbox{\hyperlink{structsfxge__rxq_ae38a704b20aa244e4b3541492da97902}{00158}}         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}                    \mbox{\hyperlink{structsfxge__rxq_ae38a704b20aa244e4b3541492da97902}{index}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00159}\mbox{\hyperlink{structsfxge__rxq_a65043e8a0f69c4fb3a995a3fc58f92e1}{00159}}         \mbox{\hyperlink{structefsys__mem__s}{efsys\_mem\_t}}                  \mbox{\hyperlink{structsfxge__rxq_a65043e8a0f69c4fb3a995a3fc58f92e1}{mem}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00160}\mbox{\hyperlink{structsfxge__rxq_a8930bcbd679f8134ecd289ef1aa8e481}{00160}}         \textcolor{keyword}{enum} \mbox{\hyperlink{sfxge__rx_8h_a525a35e5545ae2ad428f1038478498d1}{sfxge\_rxq\_state}}             \mbox{\hyperlink{structsfxge__rxq_a8930bcbd679f8134ecd289ef1aa8e481}{init\_state}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00161}\mbox{\hyperlink{structsfxge__rxq_a035ae4a93ffb697cdc31c64bd4c2d6da}{00161}}         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}                    \mbox{\hyperlink{structsfxge__rxq_a035ae4a93ffb697cdc31c64bd4c2d6da}{entries}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00162}\mbox{\hyperlink{structsfxge__rxq_aa4fa25d4fa755b6eea26ab19e4a84486}{00162}}         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}                    \mbox{\hyperlink{structsfxge__rxq_aa4fa25d4fa755b6eea26ab19e4a84486}{ptr\_mask}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00163}\mbox{\hyperlink{structsfxge__rxq_a935399eaf6e927dedc669bfe30c9b698}{00163}}         \mbox{\hyperlink{structefx__rxq__s}{efx\_rxq\_t}}                      *\mbox{\hyperlink{structsfxge__rxq_a935399eaf6e927dedc669bfe30c9b698}{common}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00164}00164 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00165}\mbox{\hyperlink{structsfxge__rxq_a22d323c8fcaed2d6e75e9e00baf798a1}{00165}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structsfxge__rx__sw__desc}{sfxge\_rx\_sw\_desc}}         *queue \mbox{\hyperlink{structsfxge__rxq_a22d323c8fcaed2d6e75e9e00baf798a1}{\_\_aligned}}(\mbox{\hyperlink{sfxge_8h_af89f60b07247176687889ade776c8e10}{CACHE\_LINE\_SIZE}});}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00166}\mbox{\hyperlink{structsfxge__rxq_ae6ffe3026342e4012d3f5fa7976fc8ea}{00166}}         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}                    \mbox{\hyperlink{structsfxge__rxq_ae6ffe3026342e4012d3f5fa7976fc8ea}{added}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00167}\mbox{\hyperlink{structsfxge__rxq_a2fe743a97221cba543a7604d4a5df102}{00167}}         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}                    \mbox{\hyperlink{structsfxge__rxq_a2fe743a97221cba543a7604d4a5df102}{pushed}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00168}\mbox{\hyperlink{structsfxge__rxq_a0d4e045d023859ee970004dda776da40}{00168}}         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}                    \mbox{\hyperlink{structsfxge__rxq_a0d4e045d023859ee970004dda776da40}{pending}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00169}\mbox{\hyperlink{structsfxge__rxq_af97bd8b59b40fa0eedc5f73e8b822fac}{00169}}         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}                    \mbox{\hyperlink{structsfxge__rxq_af97bd8b59b40fa0eedc5f73e8b822fac}{completed}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00170}\mbox{\hyperlink{structsfxge__rxq_a296260b717572620ba2bba9c4234cfd7}{00170}}         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}                    \mbox{\hyperlink{structsfxge__rxq_a296260b717572620ba2bba9c4234cfd7}{loopback}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00171}00171 \textcolor{preprocessor}{\#ifdef SFXGE\_LRO}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00172}00172         \textcolor{keyword}{struct }sfxge\_lro\_state          lro;}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00173}00173 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00174}\mbox{\hyperlink{structsfxge__rxq_a3c786822510aba2e10d597018ce779fb}{00174}}         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}                    \mbox{\hyperlink{structsfxge__rxq_a3c786822510aba2e10d597018ce779fb}{refill\_threshold}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00175}\mbox{\hyperlink{structsfxge__rxq_a4312bc83ba965815c1b1e5038d89a75a}{00175}}         \textcolor{keyword}{struct }callout                  \mbox{\hyperlink{structsfxge__rxq_a4312bc83ba965815c1b1e5038d89a75a}{refill\_callout}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00176}\mbox{\hyperlink{structsfxge__rxq_a341dffad38ee9220e3fafc1e72827685}{00176}}         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}                    \mbox{\hyperlink{structsfxge__rxq_a341dffad38ee9220e3fafc1e72827685}{refill\_delay}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00177}00177 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00178}\mbox{\hyperlink{structsfxge__rxq_a74b710f29a5a80a87ff614ccf6a018e6}{00178}}         \textcolor{keyword}{volatile} \textcolor{keyword}{enum} \mbox{\hyperlink{sfxge__rx_8h_acfa31d4e63eeb1ae42c564995d2c5488}{sfxge\_flush\_state}}        flush\_state \mbox{\hyperlink{structsfxge__rxq_a74b710f29a5a80a87ff614ccf6a018e6}{\_\_aligned}}(\mbox{\hyperlink{sfxge_8h_af89f60b07247176687889ade776c8e10}{CACHE\_LINE\_SIZE}});}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00179}\mbox{\hyperlink{structsfxge__rxq_a229857745d5fe9766a17ce2a21c82b2d}{00179}}         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}                    \mbox{\hyperlink{structsfxge__rxq_a229857745d5fe9766a17ce2a21c82b2d}{buf\_base\_id}};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00180}00180 \};}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00181}00181 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00182}00182 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00183}00183 \textcolor{comment}{ * From sfxge\_rx.c.}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00184}00184 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00185}00185 \textcolor{keyword}{extern} \textcolor{keywordtype}{int} \mbox{\hyperlink{sfxge__rx_8h_a28e7675295377906aec4f81314c2e230}{sfxge\_rx\_init}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structsfxge__softc}{sfxge\_softc}} *\mbox{\hyperlink{sfxge_8h_a0fdd68fb60df8c76625b73b761e9b8d0}{sc}});}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00186}00186 \textcolor{keyword}{extern} \textcolor{keywordtype}{void} \mbox{\hyperlink{sfxge__rx_8h_a118e9056340ad4e644e1d97dc5096538}{sfxge\_rx\_fini}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structsfxge__softc}{sfxge\_softc}} *\mbox{\hyperlink{sfxge_8h_a0fdd68fb60df8c76625b73b761e9b8d0}{sc}});}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00187}00187 \textcolor{keyword}{extern} \textcolor{keywordtype}{int} \mbox{\hyperlink{sfxge__rx_8h_aae0081bf76972afbc33ef70fcc2bd2b1}{sfxge\_rx\_start}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structsfxge__softc}{sfxge\_softc}} *\mbox{\hyperlink{sfxge_8h_a0fdd68fb60df8c76625b73b761e9b8d0}{sc}});}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00188}00188 \textcolor{keyword}{extern} \textcolor{keywordtype}{void} \mbox{\hyperlink{sfxge__rx_8h_a162a7a39c001246f2ce785db3b39b548}{sfxge\_rx\_stop}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structsfxge__softc}{sfxge\_softc}} *\mbox{\hyperlink{sfxge_8h_a0fdd68fb60df8c76625b73b761e9b8d0}{sc}});}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00189}00189 \textcolor{keyword}{extern} \textcolor{keywordtype}{void} \mbox{\hyperlink{sfxge__rx_8h_a6c884344acee12af5708d014b018f7c1}{sfxge\_rx\_qcomplete}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structsfxge__rxq}{sfxge\_rxq}} *rxq, boolean\_t eop);}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00190}00190 \textcolor{keyword}{extern} \textcolor{keywordtype}{void} \mbox{\hyperlink{sfxge__rx_8h_adad48328cebe08e8cc5d86739f8b6be8}{sfxge\_rx\_qrefill}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structsfxge__rxq}{sfxge\_rxq}} *rxq);}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00191}00191 \textcolor{keyword}{extern} \textcolor{keywordtype}{void} \mbox{\hyperlink{sfxge__rx_8h_a51c70b4c9583ac8a00f028d9a96dce3c}{sfxge\_rx\_qflush\_done}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structsfxge__rxq}{sfxge\_rxq}} *rxq);}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00192}00192 \textcolor{keyword}{extern} \textcolor{keywordtype}{void} \mbox{\hyperlink{sfxge__rx_8h_ad26688636d898d8c3105e53e0b41b912}{sfxge\_rx\_qflush\_failed}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structsfxge__rxq}{sfxge\_rxq}} *rxq);}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00193}\mbox{\hyperlink{sfxge__rx_8h_a388ef24934868d203a369a349276ebcc}{00193}} \textcolor{keyword}{extern} \textcolor{keywordtype}{void} \mbox{\hyperlink{sfxge__rx_8h_a388ef24934868d203a369a349276ebcc}{sfxge\_rx\_scale\_update}}(\textcolor{keywordtype}{void} *arg, \textcolor{keywordtype}{int} npending);}
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00194}00194 }
\DoxyCodeLine{\Hypertarget{sfxge__rx_8h_source_l00195}00195 \textcolor{preprocessor}{\#endif}}

\end{DoxyCode}
