\hypertarget{lio__response__manager_8h_source}{}\doxysection{lio\+\_\+response\+\_\+manager.\+h}
\label{lio__response__manager_8h_source}\index{dev/liquidio/base/lio\_response\_manager.h@{dev/liquidio/base/lio\_response\_manager.h}}
\mbox{\hyperlink{lio__response__manager_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00001}00001 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00002}00002 \textcolor{comment}{ *   BSD LICENSE}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00004}00004 \textcolor{comment}{ *   Copyright(c) 2017 Cavium, Inc.. All rights reserved.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00005}00005 \textcolor{comment}{ *   All rights reserved.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00007}00007 \textcolor{comment}{ *   Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00008}00008 \textcolor{comment}{ *   modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00009}00009 \textcolor{comment}{ *   are met:}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00010}00010 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00011}00011 \textcolor{comment}{ *     * Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00012}00012 \textcolor{comment}{ *       notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00013}00013 \textcolor{comment}{ *     * Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00014}00014 \textcolor{comment}{ *       notice, this list of conditions and the following disclaimer in}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00015}00015 \textcolor{comment}{ *       the documentation and/or other materials provided with the}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00016}00016 \textcolor{comment}{ *       distribution.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00017}00017 \textcolor{comment}{ *     * Neither the name of Cavium, Inc. nor the names of its}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00018}00018 \textcolor{comment}{ *       contributors may be used to endorse or promote products derived}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00019}00019 \textcolor{comment}{ *       from this software without specific prior written permission.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00020}00020 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00021}00021 \textcolor{comment}{ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00022}00022 \textcolor{comment}{ *   "{}AS IS"{} AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00023}00023 \textcolor{comment}{ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00024}00024 \textcolor{comment}{ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00025}00025 \textcolor{comment}{ *   OWNER(S) OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00026}00026 \textcolor{comment}{ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00027}00027 \textcolor{comment}{ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00028}00028 \textcolor{comment}{ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00029}00029 \textcolor{comment}{ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00030}00030 \textcolor{comment}{ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00031}00031 \textcolor{comment}{ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00032}00032 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00033}00033 \textcolor{comment}{/*\$FreeBSD\$*/}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00034}00034 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00035}00035 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00036}00036 \textcolor{comment}{ * ! \(\backslash\)file lio\_response\_manager.h}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00037}00037 \textcolor{comment}{ *  \(\backslash\)brief Host Driver:  Response queues for host instructions.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00038}00038 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00039}00039 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00040}00040 \textcolor{preprocessor}{\#ifndef \_\_LIO\_RESPONSE\_MANAGER\_H\_\_}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00041}00041 \textcolor{preprocessor}{\#define \_\_LIO\_RESPONSE\_MANAGER\_H\_\_}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00042}00042 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00043}00043 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00044}00044 \textcolor{comment}{ * Maximum ordered requests to process in every invocation of}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00045}00045 \textcolor{comment}{ * lio\_process\_ordered\_list(). The function will continue to process requests}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00046}00046 \textcolor{comment}{ * as long as it can find one that has finished processing. If it keeps}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00047}00047 \textcolor{comment}{ * finding requests that have completed, the function can run for ever. The}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00048}00048 \textcolor{comment}{ * value defined here sets an upper limit on the number of requests it can}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00049}00049 \textcolor{comment}{ * process before it returns control to the poll thread.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00050}00050 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00051}\mbox{\hyperlink{lio__response__manager_8h_ae9eac2b6733070c812155e71d2a4f5c0}{00051}} \textcolor{preprocessor}{\#define LIO\_MAX\_ORD\_REQS\_TO\_PROCESS   4096}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00052}00052 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00053}00053 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00054}00054 \textcolor{comment}{ * Head of a response list. There are several response lists in the}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00055}00055 \textcolor{comment}{ * system. One for each response order-\/ Unordered, ordered}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00056}00056 \textcolor{comment}{ * and 1 for noresponse entries on each instruction queue.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00057}00057 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00058}00058 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00059}\mbox{\hyperlink{structlio__response__list}{00059}} \textcolor{keyword}{struct }\mbox{\hyperlink{structlio__response__list}{lio\_response\_list}} \{}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00060}00060         \textcolor{comment}{/* List structure to add delete pending entries to */}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00061}\mbox{\hyperlink{structlio__response__list_acc17ce9bbb9961014cbd321d0ccea518}{00061}}         \textcolor{keyword}{struct }lio\_stailq\_head  \mbox{\hyperlink{structlio__response__list_acc17ce9bbb9961014cbd321d0ccea518}{head}};}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00062}00062 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00063}00063         \textcolor{comment}{/* A lock for this response list */}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00064}\mbox{\hyperlink{structlio__response__list_ace43bc509dbd78806cea845a98ace1f3}{00064}}         \textcolor{keyword}{struct }mtx              \mbox{\hyperlink{structlio__response__list_ace43bc509dbd78806cea845a98ace1f3}{lock}};}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00065}00065 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00066}\mbox{\hyperlink{structlio__response__list_ac81957c356c41ee1198ece6bd4624e1e}{00066}}         \textcolor{keyword}{volatile} \textcolor{keywordtype}{int}            \mbox{\hyperlink{structlio__response__list_ac81957c356c41ee1198ece6bd4624e1e}{pending\_req\_count}};}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00067}00067 \};}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00068}00068 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00069}00069 \textcolor{comment}{/* The type of response list. */}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00070}00070 \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00071}\mbox{\hyperlink{lio__response__manager_8h_aaf105ae5beaca1dee30ae54530691fcead572ada3c5686743eda64d0319e71644}{00071}}         \mbox{\hyperlink{lio__response__manager_8h_aaf105ae5beaca1dee30ae54530691fcead572ada3c5686743eda64d0319e71644}{LIO\_ORDERED\_LIST}}                = 0,}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00072}\mbox{\hyperlink{lio__response__manager_8h_aaf105ae5beaca1dee30ae54530691fcea264d6023cdd8464f86056e936dfba40f}{00072}}         \mbox{\hyperlink{lio__response__manager_8h_aaf105ae5beaca1dee30ae54530691fcea264d6023cdd8464f86056e936dfba40f}{LIO\_UNORDERED\_NONBLOCKING\_LIST}}    = 1,}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00073}\mbox{\hyperlink{lio__response__manager_8h_aaf105ae5beaca1dee30ae54530691fcea6bad38b7baf3828cc8ca3436d99b7d54}{00073}}         \mbox{\hyperlink{lio__response__manager_8h_aaf105ae5beaca1dee30ae54530691fcea6bad38b7baf3828cc8ca3436d99b7d54}{LIO\_UNORDERED\_BLOCKING\_LIST}}  = 2,}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00074}00074         \mbox{\hyperlink{lio__response__manager_8h_aaf105ae5beaca1dee30ae54530691fcea5422bc0a9ca1817fa2fed27de3788a37}{LIO\_ORDERED\_SC\_LIST}}          = 3}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00075}\mbox{\hyperlink{lio__response__manager_8h_aaf105ae5beaca1dee30ae54530691fcea5422bc0a9ca1817fa2fed27de3788a37}{00075}} \};}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00076}00076 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00077}00077 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00078}00078 \textcolor{comment}{ * Error codes  used in Octeon Host-\/Core communication.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00079}00079 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00080}00080 \textcolor{comment}{ *   31            16 15            0}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00081}00081 \textcolor{comment}{ *   -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00082}00082 \textcolor{comment}{ *   |               |               |}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00083}00083 \textcolor{comment}{ *   -\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00084}00084 \textcolor{comment}{ *   Error codes are 32-\/bit wide. The upper 16-\/bits, called Major Error Number,}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00085}00085 \textcolor{comment}{ *   are reserved to identify the group to which the error code belongs. The}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00086}00086 \textcolor{comment}{ *   lower 16-\/bits, called Minor Error Number, carry the actual code.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00087}00087 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00088}00088 \textcolor{comment}{ *   So error codes are (MAJOR NUMBER << 16)| MINOR\_NUMBER.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00089}00089 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00090}00090 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00091}00091 \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/   Error codes used by firmware (bits 15..0 set by firmware */}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00092}\mbox{\hyperlink{lio__response__manager_8h_abad747981d2fe15e24dcc44f3442b6e2}{00092}} \textcolor{preprocessor}{\#define LIO\_FW\_MAJOR\_ERROR\_CODE         0x0001}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00093}00093 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00094}00094 \textcolor{comment}{/* A value of 0x00000000 indicates no error i.e. success */}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00095}\mbox{\hyperlink{lio__response__manager_8h_a7b30e32cd863d8fe9e41b6cc6e9349af}{00095}} \textcolor{preprocessor}{\#define LIO\_DRIVER\_ERROR\_NONE                 0x00000000}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00096}00096 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00097}\mbox{\hyperlink{lio__response__manager_8h_a6ae0b813a97c5b417cf51ced5718bf62}{00097}} \textcolor{preprocessor}{\#define LIO\_DRIVER\_ERROR\_REQ\_PENDING          0x00000001}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00098}\mbox{\hyperlink{lio__response__manager_8h_a3b4bd605e4b165aba7ad6f1bfe0f43be}{00098}} \textcolor{preprocessor}{\#define LIO\_DRIVER\_ERROR\_REQ\_TIMEOUT          0x00000003}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00099}\mbox{\hyperlink{lio__response__manager_8h_a46bdf25ed3321837b9cc44622b01200a}{00099}} \textcolor{preprocessor}{\#define LIO\_DRIVER\_ERROR\_REQ\_EINTR            0x00000004}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00100}00100 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00101}00101 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00102}00102 \textcolor{comment}{ * Status for a request.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00103}00103 \textcolor{comment}{ * If a request is not queued to Octeon by the driver, the driver returns}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00104}00104 \textcolor{comment}{ * an error condition that's describe by one of the OCTEON\_REQ\_ERR\_* value}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00105}00105 \textcolor{comment}{ * below. If the request is successfully queued, the driver will return}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00106}00106 \textcolor{comment}{ * a LIO\_REQUEST\_PENDING status. LIO\_REQUEST\_TIMEOUT and}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00107}00107 \textcolor{comment}{ * LIO\_REQUEST\_INTERRUPTED are only returned by the driver if the}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00108}00108 \textcolor{comment}{ * response for request failed to arrive before a time-\/out period or if}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00109}00109 \textcolor{comment}{ * the request processing * got interrupted due to a signal respectively.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00110}00110 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00111}00111 \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00112}\mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa216c91047b7304dc94d9dad0459daf60}{00112}}         \mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa216c91047b7304dc94d9dad0459daf60}{LIO\_REQUEST\_DONE}}        = (\mbox{\hyperlink{lio__response__manager_8h_a7b30e32cd863d8fe9e41b6cc6e9349af}{LIO\_DRIVER\_ERROR\_NONE}}),}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00113}\mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa61ed78c6befb10da6a9111e160013c55}{00113}}         \mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa61ed78c6befb10da6a9111e160013c55}{LIO\_REQUEST\_PENDING}}  = (\mbox{\hyperlink{lio__response__manager_8h_a6ae0b813a97c5b417cf51ced5718bf62}{LIO\_DRIVER\_ERROR\_REQ\_PENDING}}),}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00114}\mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaaac8d449b4bd856dbca3724edacf5fc5d}{00114}}         \mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaaac8d449b4bd856dbca3724edacf5fc5d}{LIO\_REQUEST\_TIMEOUT}}  = (\mbox{\hyperlink{lio__response__manager_8h_a3b4bd605e4b165aba7ad6f1bfe0f43be}{LIO\_DRIVER\_ERROR\_REQ\_TIMEOUT}}),}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00115}\mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa1b80338e960adfdfa0d3a4a79a830dbf}{00115}}         \mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa1b80338e960adfdfa0d3a4a79a830dbf}{LIO\_REQUEST\_INTERRUPTED}}  = (\mbox{\hyperlink{lio__response__manager_8h_a46bdf25ed3321837b9cc44622b01200a}{LIO\_DRIVER\_ERROR\_REQ\_EINTR}}),}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00116}\mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa43892ca47248cfa00ca4f2923c0b1451}{00116}}         \mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa43892ca47248cfa00ca4f2923c0b1451}{LIO\_REQUEST\_NO\_DEVICE}}      = (0x00000021),}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00117}\mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa85775d2f973a9d01a76387e30c81a9cd}{00117}}         \mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa85775d2f973a9d01a76387e30c81a9cd}{LIO\_REQUEST\_NOT\_RUNNING}},}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00118}\mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaaaa326dd5160aa3038cc13eedae19442f}{00118}}         \mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaaaa326dd5160aa3038cc13eedae19442f}{LIO\_REQUEST\_INVALID\_IQ}},}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00119}\mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa712e258bd25af97c42fea928cd6df15c}{00119}}         \mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa712e258bd25af97c42fea928cd6df15c}{LIO\_REQUEST\_INVALID\_BUFCNT}},}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00120}\mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa0718dee19fd1a26a3244c6485ef20465}{00120}}         \mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa0718dee19fd1a26a3244c6485ef20465}{LIO\_REQUEST\_INVALID\_RESP\_ORDER}},}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00121}\mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa0cd348a87eb9fc2eb2344a9a09133f32}{00121}}         \mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa0cd348a87eb9fc2eb2344a9a09133f32}{LIO\_REQUEST\_NO\_MEMORY}},}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00122}\mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaabcf2f05122b2f2216998f7f154c64bfb}{00122}}         \mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaabcf2f05122b2f2216998f7f154c64bfb}{LIO\_REQUEST\_INVALID\_BUFSIZE}},}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00123}\mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa4fc304b75fbf8d6e43f92d324b95e72f}{00123}}         \mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaa4fc304b75fbf8d6e43f92d324b95e72f}{LIO\_REQUEST\_NO\_PENDING\_ENTRY}},}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00124}00124         \mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaaf7cd7fd7737e0da76620922d6c1815dc}{LIO\_REQUEST\_NO\_IQ\_SPACE}}  = (0x7FFFFFFF)}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00125}\mbox{\hyperlink{lio__response__manager_8h_a80155586fa275b28773c9b203f52cabaaf7cd7fd7737e0da76620922d6c1815dc}{00125}} \};}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00126}00126 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00127}\mbox{\hyperlink{lio__response__manager_8h_a8efea90da41534b9bf4cbb9d39d2af31}{00127}} \textcolor{preprocessor}{\#define LIO\_STAILQ\_FIRST\_ENTRY(ptr, type, elem) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00128}00128 \textcolor{preprocessor}{                (type *)((char *)((ptr)-\/>stqh\_first) -\/ offsetof(type, elem))}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00129}00129 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00130}\mbox{\hyperlink{lio__response__manager_8h_ad2f0d9dec95570b343f8d9de1beced39}{00130}} \textcolor{preprocessor}{\#define LIO\_FW\_STATUS\_CODE(status)              \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00131}00131 \textcolor{preprocessor}{                ((LIO\_FW\_MAJOR\_ERROR\_CODE << 16) | (status))}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00132}00132 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00133}00133 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00134}00134 \textcolor{comment}{ * Initialize the response lists. The number of response lists to create is}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00135}00135 \textcolor{comment}{ * given by count.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00136}00136 \textcolor{comment}{ * @param octeon\_dev      -\/ the octeon device structure.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00137}00137 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00138}00138 \textcolor{keywordtype}{int}     \mbox{\hyperlink{lio__response__manager_8h_aff496a1a293414c158e78eecd0cfc79f}{lio\_setup\_response\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *octeon\_dev);}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00139}00139 \textcolor{keywordtype}{void}    \mbox{\hyperlink{lio__response__manager_8h_aa277ffa5b16ef07afa309270d267b3f3}{lio\_delete\_response\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *octeon\_dev);}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00140}00140 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00141}00141 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00142}00142 \textcolor{comment}{ * Check the status of first entry in the ordered list. If the instruction at}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00143}00143 \textcolor{comment}{ * that entry finished processing or has timed-\/out, the entry is cleaned.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00144}00144 \textcolor{comment}{ * @param octeon\_dev  -\/ the octeon device structure.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00145}00145 \textcolor{comment}{ * @param force\_quit -\/ the request is forced to timeout if this is 1}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00146}00146 \textcolor{comment}{ * @return 1 if the ordered list is empty, 0 otherwise.}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00147}00147 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00148}00148 \textcolor{keywordtype}{int}     \mbox{\hyperlink{lio__response__manager_8h_a215c9a1987332f1b9da4ba17f13f43df}{lio\_process\_ordered\_list}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structocteon__device}{octeon\_device}} *octeon\_dev,}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00149}00149                                  uint32\_t force\_quit);}
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00150}00150 }
\DoxyCodeLine{\Hypertarget{lio__response__manager_8h_source_l00151}00151 \textcolor{preprocessor}{\#endif  }\textcolor{comment}{/* \_\_LIO\_RESPONSE\_MANAGER\_H\_\_ */}\textcolor{preprocessor}{}}

\end{DoxyCode}
