\hypertarget{wq_8h_source}{}\doxysection{wq.\+h}
\label{wq_8h_source}\index{dev/mlx5/mlx5\_core/wq.h@{dev/mlx5/mlx5\_core/wq.h}}
\mbox{\hyperlink{wq_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00002}00002 \textcolor{comment}{ * Copyright (c) 2013-\/2017, Mellanox Technologies, Ltd.  All rights reserved.}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00004}00004 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00005}00005 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00006}00006 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00007}00007 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00008}00008 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00009}00009 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00010}00010 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00011}00011 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00012}00012 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00013}00013 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS `AS IS' AND}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00014}00014 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00015}00015 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00016}00016 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00017}00017 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00018}00018 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00019}00019 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00020}00020 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00021}00021 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00022}00022 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00023}00023 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00024}00024 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00025}00025 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00026}00026 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00027}00027 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00028}00028 \textcolor{preprocessor}{\#ifndef \_\_MLX5\_WQ\_H\_\_}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00029}00029 \textcolor{preprocessor}{\#define \_\_MLX5\_WQ\_H\_\_}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00030}00030 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00031}00031 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{mlx5__ifc_8h}{dev/mlx5/mlx5\_ifc.h}}>}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00032}00032 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00033}\mbox{\hyperlink{structmlx5__wq__param}{00033}} \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__wq__param}{mlx5\_wq\_param}} \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00034}\mbox{\hyperlink{structmlx5__wq__param_ae5d54776d21eaad0330a5a550690c5e6}{00034}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structmlx5__wq__param_ae5d54776d21eaad0330a5a550690c5e6}{linear}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00035}00035 \};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00036}00036 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00037}\mbox{\hyperlink{structmlx5__wq__ctrl}{00037}} \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__wq__ctrl}{mlx5\_wq\_ctrl}} \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00038}\mbox{\hyperlink{structmlx5__wq__ctrl_a3c01b9bc3d9e0e6369455488b42419e6}{00038}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__core__dev}{mlx5\_core\_dev}}       *\mbox{\hyperlink{structmlx5__wq__ctrl_a3c01b9bc3d9e0e6369455488b42419e6}{mdev}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00039}\mbox{\hyperlink{structmlx5__wq__ctrl_aa8b555887ebc680ef422777985acf16e}{00039}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__buf}{mlx5\_buf}}         \mbox{\hyperlink{structmlx5__wq__ctrl_aa8b555887ebc680ef422777985acf16e}{buf}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00040}\mbox{\hyperlink{structmlx5__wq__ctrl_adfbd74741f73b7030f6c545bedbb4e7b}{00040}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__db}{mlx5\_db}}           \mbox{\hyperlink{structmlx5__wq__ctrl_adfbd74741f73b7030f6c545bedbb4e7b}{db}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00041}00041 \};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00042}00042 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00043}\mbox{\hyperlink{structmlx5__frag__wq__ctrl}{00043}} \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__frag__wq__ctrl}{mlx5\_frag\_wq\_ctrl}} \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00044}\mbox{\hyperlink{structmlx5__frag__wq__ctrl_a3afd06ef5599ea5226e10662e8d9a769}{00044}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__core__dev}{mlx5\_core\_dev}}       *\mbox{\hyperlink{structmlx5__frag__wq__ctrl_a3afd06ef5599ea5226e10662e8d9a769}{mdev}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00045}\mbox{\hyperlink{structmlx5__frag__wq__ctrl_aaa1ed69bad5d7422cc37046fbee2e3ca}{00045}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__frag__buf}{mlx5\_frag\_buf}}       \mbox{\hyperlink{structmlx5__frag__wq__ctrl_aaa1ed69bad5d7422cc37046fbee2e3ca}{frag\_buf}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00046}\mbox{\hyperlink{structmlx5__frag__wq__ctrl_a117d04c2db88fdac9e948b25d9d6fa3a}{00046}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__db}{mlx5\_db}}           \mbox{\hyperlink{structmlx5__frag__wq__ctrl_a117d04c2db88fdac9e948b25d9d6fa3a}{db}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00047}00047 \};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00048}00048 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00049}\mbox{\hyperlink{structmlx5__wq__cyc}{00049}} \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__wq__cyc}{mlx5\_wq\_cyc}} \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00050}\mbox{\hyperlink{structmlx5__wq__cyc_ac996e6e27e88b52080f023d93f28690a}{00050}}         \textcolor{keywordtype}{void}                    *\mbox{\hyperlink{structmlx5__wq__cyc_ac996e6e27e88b52080f023d93f28690a}{buf}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00051}\mbox{\hyperlink{structmlx5__wq__cyc_a0aa32c71b19d88d9583746be207beee4}{00051}}         \_\_be32                  *\mbox{\hyperlink{structmlx5__wq__cyc_a0aa32c71b19d88d9583746be207beee4}{db}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00052}\mbox{\hyperlink{structmlx5__wq__cyc_a517c3e9c4324552b799683ecaa0ffcd1}{00052}}         u16                     \mbox{\hyperlink{structmlx5__wq__cyc_a517c3e9c4324552b799683ecaa0ffcd1}{sz\_m1}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00053}\mbox{\hyperlink{structmlx5__wq__cyc_ad4e147a6b8163b20887dc797a7c36e71}{00053}}         u8                      \mbox{\hyperlink{structmlx5__wq__cyc_ad4e147a6b8163b20887dc797a7c36e71}{log\_stride}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00054}00054 \};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00055}00055 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00056}\mbox{\hyperlink{structmlx5__wq__qp}{00056}} \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__wq__qp}{mlx5\_wq\_qp}} \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00057}\mbox{\hyperlink{structmlx5__wq__qp_a201ab48b119d663fac28c6a3dc9263ed}{00057}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__wq__cyc}{mlx5\_wq\_cyc}}   \mbox{\hyperlink{structmlx5__wq__qp_a201ab48b119d663fac28c6a3dc9263ed}{rq}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00058}\mbox{\hyperlink{structmlx5__wq__qp_a794ac352c2e2707ca3f05850f9718b3e}{00058}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__wq__cyc}{mlx5\_wq\_cyc}}   \mbox{\hyperlink{structmlx5__wq__qp_a794ac352c2e2707ca3f05850f9718b3e}{sq}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00059}00059 \};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00060}00060 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00061}\mbox{\hyperlink{structmlx5__cqwq}{00061}} \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__cqwq}{mlx5\_cqwq}} \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00062}\mbox{\hyperlink{structmlx5__cqwq_aa13da8ffd91d60ae4d1bbb4848d8654e}{00062}}         \textcolor{keywordtype}{void}                    *\mbox{\hyperlink{structmlx5__cqwq_aa13da8ffd91d60ae4d1bbb4848d8654e}{buf}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00063}\mbox{\hyperlink{structmlx5__cqwq_a5b6cef866d8329e03794183b61ea9693}{00063}}         \_\_be32                  *\mbox{\hyperlink{structmlx5__cqwq_a5b6cef866d8329e03794183b61ea9693}{db}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00064}\mbox{\hyperlink{structmlx5__cqwq_a88acd1298a4533563bbecbcb4a1f69e6}{00064}}         u32                     \mbox{\hyperlink{structmlx5__cqwq_a88acd1298a4533563bbecbcb4a1f69e6}{sz\_m1}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00065}\mbox{\hyperlink{structmlx5__cqwq_aa1f690c321868ccff5ec32e0c3540a8c}{00065}}         u32                     \mbox{\hyperlink{structmlx5__cqwq_aa1f690c321868ccff5ec32e0c3540a8c}{cc}}; \textcolor{comment}{/* consumer counter */}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00066}\mbox{\hyperlink{structmlx5__cqwq_a1424397dcd9a4425c8c22b03a51f408c}{00066}}         u8                      \mbox{\hyperlink{structmlx5__cqwq_a1424397dcd9a4425c8c22b03a51f408c}{log\_sz}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00067}\mbox{\hyperlink{structmlx5__cqwq_a84f81780828a6dff97d4e7b6140a65d7}{00067}}         u8                      \mbox{\hyperlink{structmlx5__cqwq_a84f81780828a6dff97d4e7b6140a65d7}{log\_stride}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00068}00068 \};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00069}00069 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00070}\mbox{\hyperlink{structmlx5__wq__ll}{00070}} \textcolor{keyword}{struct }\mbox{\hyperlink{structmlx5__wq__ll}{mlx5\_wq\_ll}} \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00071}\mbox{\hyperlink{structmlx5__wq__ll_a11da519c717fb0345b7358f89f211eb0}{00071}}         \textcolor{keywordtype}{void}                    *\mbox{\hyperlink{structmlx5__wq__ll_a11da519c717fb0345b7358f89f211eb0}{buf}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00072}\mbox{\hyperlink{structmlx5__wq__ll_ad3bf572dce68b7773893a3d6706f7c3f}{00072}}         \_\_be32                  *\mbox{\hyperlink{structmlx5__wq__ll_ad3bf572dce68b7773893a3d6706f7c3f}{db}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00073}\mbox{\hyperlink{structmlx5__wq__ll_aca48316bd9e86669566dc8cdc04b5006}{00073}}         \_\_be16                  *\mbox{\hyperlink{structmlx5__wq__ll_aca48316bd9e86669566dc8cdc04b5006}{tail\_next}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00074}\mbox{\hyperlink{structmlx5__wq__ll_aa8852a19b0947c5da113bac4366ca1ee}{00074}}         u16                     \mbox{\hyperlink{structmlx5__wq__ll_aa8852a19b0947c5da113bac4366ca1ee}{sz\_m1}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00075}\mbox{\hyperlink{structmlx5__wq__ll_a4f53bcc5a91ee7a08b22e36926b3c63d}{00075}}         u16                     \mbox{\hyperlink{structmlx5__wq__ll_a4f53bcc5a91ee7a08b22e36926b3c63d}{head}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00076}\mbox{\hyperlink{structmlx5__wq__ll_a48612a62a41312f8e2389340ee330127}{00076}}         u16                     \mbox{\hyperlink{structmlx5__wq__ll_a48612a62a41312f8e2389340ee330127}{wqe\_ctr}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00077}\mbox{\hyperlink{structmlx5__wq__ll_aed17c286ed34b3b44f8cd72f7fe7b7c7}{00077}}         u16                     \mbox{\hyperlink{structmlx5__wq__ll_aed17c286ed34b3b44f8cd72f7fe7b7c7}{cur\_sz}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00078}\mbox{\hyperlink{structmlx5__wq__ll_af8d109fa1a05e2df4a333a42111f3fcf}{00078}}         u8                      \mbox{\hyperlink{structmlx5__wq__ll_af8d109fa1a05e2df4a333a42111f3fcf}{log\_stride}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00079}00079 \};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00080}00080 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00081}00081 \textcolor{keywordtype}{int} \mbox{\hyperlink{wq_8h_ae8b78e8860b93e7c516fbb52d78e01b3}{mlx5\_wq\_cyc\_create}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__core__dev}{mlx5\_core\_dev}} *mdev, \textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__param}{mlx5\_wq\_param}} *param,}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00082}00082                        \textcolor{keywordtype}{void} *wqc, \textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__cyc}{mlx5\_wq\_cyc}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}},}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00083}00083                        \textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__ctrl}{mlx5\_wq\_ctrl}} *\mbox{\hyperlink{en_8h_ac5f4bcdc1e96e0373a1d088338d6b06b}{wq\_ctrl}});}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00084}00084 u32 \mbox{\hyperlink{wq_8h_ae21d655225d88036613ef2823fb46637}{mlx5\_wq\_cyc\_get\_size}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__cyc}{mlx5\_wq\_cyc}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}});}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00085}00085 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00086}00086 \textcolor{keywordtype}{int} \mbox{\hyperlink{wq_8h_a721e8d14f1b17c0921e3dd1688936dc6}{mlx5\_cqwq\_create}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__core__dev}{mlx5\_core\_dev}} *mdev, \textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__param}{mlx5\_wq\_param}} *param,}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00087}00087                      \textcolor{keywordtype}{void} *cqc, \textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__cqwq}{mlx5\_cqwq}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}},}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00088}00088                      \textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__ctrl}{mlx5\_wq\_ctrl}} *\mbox{\hyperlink{en_8h_ac5f4bcdc1e96e0373a1d088338d6b06b}{wq\_ctrl}});}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00089}00089 u32 \mbox{\hyperlink{wq_8h_ae3df4b28d828c4e73c0167b7d753508a}{mlx5\_cqwq\_get\_size}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__cqwq}{mlx5\_cqwq}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}});}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00090}00090 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00091}00091 \textcolor{keywordtype}{int} \mbox{\hyperlink{wq_8h_a7da3ffc76c321d70fe0d64262d08efc9}{mlx5\_wq\_ll\_create}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__core__dev}{mlx5\_core\_dev}} *mdev, \textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__param}{mlx5\_wq\_param}} *param,}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00092}00092                       \textcolor{keywordtype}{void} *wqc, \textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__ll}{mlx5\_wq\_ll}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}},}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00093}00093                       \textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__ctrl}{mlx5\_wq\_ctrl}} *\mbox{\hyperlink{en_8h_ac5f4bcdc1e96e0373a1d088338d6b06b}{wq\_ctrl}});}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00094}00094 u32 \mbox{\hyperlink{wq_8h_a1daa0439146715fc6a6a1afc9cf27016}{mlx5\_wq\_ll\_get\_size}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__ll}{mlx5\_wq\_ll}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}});}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00095}00095 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00096}00096 \textcolor{keywordtype}{void} \mbox{\hyperlink{wq_8h_a49551f7d5d4eaab85b551255676b527e}{mlx5\_wq\_destroy}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__ctrl}{mlx5\_wq\_ctrl}} *\mbox{\hyperlink{en_8h_ac5f4bcdc1e96e0373a1d088338d6b06b}{wq\_ctrl}});}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00097}00097 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00098}\mbox{\hyperlink{wq_8h_a774691194f5464e3139564995fb7242d}{00098}} \textcolor{keyword}{static} \textcolor{keyword}{inline} u16 \mbox{\hyperlink{wq_8h_a774691194f5464e3139564995fb7242d}{mlx5\_wq\_cyc\_ctr2ix}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__cyc}{mlx5\_wq\_cyc}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}, u16 ctr)}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00099}00099 \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00100}00100         \textcolor{keywordflow}{return} ctr \& \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_a88acd1298a4533563bbecbcb4a1f69e6}{sz\_m1}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00101}00101 \}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00102}00102 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00103}\mbox{\hyperlink{wq_8h_ac44dbf6d3f68034d259613bc6910f436}{00103}} \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{void} *\mbox{\hyperlink{wq_8h_ac44dbf6d3f68034d259613bc6910f436}{mlx5\_wq\_cyc\_get\_wqe}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__cyc}{mlx5\_wq\_cyc}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}, u16 \mbox{\hyperlink{en_8h_a61990b7f5388ef0010c75a5d80f58da9}{ix}})}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00104}00104 \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00105}00105         \textcolor{keywordflow}{return} \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_aa13da8ffd91d60ae4d1bbb4848d8654e}{buf}} + (\mbox{\hyperlink{en_8h_a61990b7f5388ef0010c75a5d80f58da9}{ix}} << \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_a84f81780828a6dff97d4e7b6140a65d7}{log\_stride}});}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00106}00106 \}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00107}00107 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00108}\mbox{\hyperlink{wq_8h_a4d8cfbe3f3349d3fd4c325517d4e0ee7}{00108}} \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{int} \mbox{\hyperlink{wq_8h_a4d8cfbe3f3349d3fd4c325517d4e0ee7}{mlx5\_wq\_cyc\_cc\_bigger}}(u16 cc1, u16 cc2)}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00109}00109 \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00110}00110         \textcolor{keywordtype}{int} equal   = (cc1 == cc2);}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00111}00111         \textcolor{keywordtype}{int} smaller = 0x8000 \& (cc1 -\/ cc2);}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00112}00112 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00113}00113         \textcolor{keywordflow}{return} !equal \&\& !smaller;}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00114}00114 \}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00115}00115 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00116}\mbox{\hyperlink{wq_8h_a42915eddc2714758c34c5a545f4fa526}{00116}} \textcolor{keyword}{static} \textcolor{keyword}{inline} u32 \mbox{\hyperlink{wq_8h_a42915eddc2714758c34c5a545f4fa526}{mlx5\_cqwq\_get\_ci}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__cqwq}{mlx5\_cqwq}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}})}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00117}00117 \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00118}00118         \textcolor{keywordflow}{return} \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_aa1f690c321868ccff5ec32e0c3540a8c}{cc}} \& \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_a88acd1298a4533563bbecbcb4a1f69e6}{sz\_m1}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00119}00119 \}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00120}00120 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00121}\mbox{\hyperlink{wq_8h_acb024510e442f16bb20f9943b05eab7e}{00121}} \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{void} *\mbox{\hyperlink{wq_8h_acb024510e442f16bb20f9943b05eab7e}{mlx5\_cqwq\_get\_wqe}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__cqwq}{mlx5\_cqwq}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}, u32 \mbox{\hyperlink{en_8h_a61990b7f5388ef0010c75a5d80f58da9}{ix}})}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00122}00122 \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00123}00123         \textcolor{keywordflow}{return} \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_aa13da8ffd91d60ae4d1bbb4848d8654e}{buf}} + (\mbox{\hyperlink{en_8h_a61990b7f5388ef0010c75a5d80f58da9}{ix}} << \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_a84f81780828a6dff97d4e7b6140a65d7}{log\_stride}});}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00124}00124 \}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00125}00125 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00126}\mbox{\hyperlink{wq_8h_a76609abed5afd3899c3ca1d8c14f7740}{00126}} \textcolor{keyword}{static} \textcolor{keyword}{inline} u32 \mbox{\hyperlink{wq_8h_a76609abed5afd3899c3ca1d8c14f7740}{mlx5\_cqwq\_get\_wrap\_cnt}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__cqwq}{mlx5\_cqwq}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}})}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00127}00127 \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00128}00128         \textcolor{keywordflow}{return} \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_aa1f690c321868ccff5ec32e0c3540a8c}{cc}} >> \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_a1424397dcd9a4425c8c22b03a51f408c}{log\_sz}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00129}00129 \}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00130}00130 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00131}\mbox{\hyperlink{wq_8h_a423d89918b59613e695918f45f4ada79}{00131}} \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{void} \mbox{\hyperlink{wq_8h_a423d89918b59613e695918f45f4ada79}{mlx5\_cqwq\_pop}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__cqwq}{mlx5\_cqwq}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}})}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00132}00132 \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00133}00133         \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_aa1f690c321868ccff5ec32e0c3540a8c}{cc}}++;}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00134}00134 \}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00135}00135 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00136}\mbox{\hyperlink{wq_8h_aa2f616f10c8f7ee91d34c33e0de0661c}{00136}} \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{void} \mbox{\hyperlink{wq_8h_aa2f616f10c8f7ee91d34c33e0de0661c}{mlx5\_cqwq\_update\_db\_record}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__cqwq}{mlx5\_cqwq}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}})}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00137}00137 \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00138}00138         *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_a5b6cef866d8329e03794183b61ea9693}{db}} = cpu\_to\_be32(\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_aa1f690c321868ccff5ec32e0c3540a8c}{cc}} \& 0xffffff);}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00139}00139 \}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00140}00140 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00141}\mbox{\hyperlink{wq_8h_a2c1b970d0bf6dbf178c41bcb789ecaa3}{00141}} \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{int} \mbox{\hyperlink{wq_8h_a2c1b970d0bf6dbf178c41bcb789ecaa3}{mlx5\_wq\_ll\_is\_full}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__ll}{mlx5\_wq\_ll}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}})}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00142}00142 \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00143}00143         \textcolor{keywordflow}{return} \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>cur\_sz == \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_a88acd1298a4533563bbecbcb4a1f69e6}{sz\_m1}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00144}00144 \}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00145}00145 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00146}\mbox{\hyperlink{wq_8h_a742bbb6f28d8565d0ac30098f8dffc64}{00146}} \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{int} \mbox{\hyperlink{wq_8h_a742bbb6f28d8565d0ac30098f8dffc64}{mlx5\_wq\_ll\_is\_empty}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__ll}{mlx5\_wq\_ll}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}})}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00147}00147 \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00148}00148         \textcolor{keywordflow}{return} !\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>cur\_sz;}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00149}00149 \}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00150}00150 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00151}\mbox{\hyperlink{wq_8h_a0df2d3597994c31a98d4e6c178f8053f}{00151}} \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{void} \mbox{\hyperlink{wq_8h_a0df2d3597994c31a98d4e6c178f8053f}{mlx5\_wq\_ll\_push}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__ll}{mlx5\_wq\_ll}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}, u16 head\_next)}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00152}00152 \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00153}00153         \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>head = head\_next;}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00154}00154         \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>wqe\_ctr++;}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00155}00155         \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>cur\_sz++;}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00156}00156 \}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00157}00157 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00158}\mbox{\hyperlink{wq_8h_a94427ced6c2cbfa6d081da8a2dded968}{00158}} \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{void} \mbox{\hyperlink{wq_8h_a94427ced6c2cbfa6d081da8a2dded968}{mlx5\_wq\_ll\_pop}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__ll}{mlx5\_wq\_ll}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}, \_\_be16 \mbox{\hyperlink{en_8h_a61990b7f5388ef0010c75a5d80f58da9}{ix}},}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00159}00159                                   \_\_be16 *next\_tail\_next)}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00160}00160 \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00161}00161         *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>tail\_next = \mbox{\hyperlink{en_8h_a61990b7f5388ef0010c75a5d80f58da9}{ix}};}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00162}00162         \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>tail\_next = next\_tail\_next;}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00163}00163         \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>cur\_sz-\/-\/;}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00164}00164 \}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00165}\mbox{\hyperlink{wq_8h_afd8ebe19e14bbca963f16b85a9b4ee48}{00165}} \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{void} \mbox{\hyperlink{wq_8h_afd8ebe19e14bbca963f16b85a9b4ee48}{mlx5\_wq\_ll\_update\_db\_record}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__ll}{mlx5\_wq\_ll}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}})}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00166}00166 \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00167}00167         *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_a5b6cef866d8329e03794183b61ea9693}{db}} = cpu\_to\_be32(\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>wqe\_ctr);}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00168}00168 \}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00169}00169 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00170}\mbox{\hyperlink{wq_8h_a587e6ce3a7eb366bba87ba96160d387c}{00170}} \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keywordtype}{void} *\mbox{\hyperlink{wq_8h_a587e6ce3a7eb366bba87ba96160d387c}{mlx5\_wq\_ll\_get\_wqe}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structmlx5__wq__ll}{mlx5\_wq\_ll}} *\mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}, u16 \mbox{\hyperlink{en_8h_a61990b7f5388ef0010c75a5d80f58da9}{ix}})}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00171}00171 \{}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00172}00172         \textcolor{keywordflow}{return} \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_aa13da8ffd91d60ae4d1bbb4848d8654e}{buf}} + (\mbox{\hyperlink{en_8h_a61990b7f5388ef0010c75a5d80f58da9}{ix}} << \mbox{\hyperlink{en_8h_a7d3b6ace6641f1454eb59728e77cac94}{wq}}-\/>\mbox{\hyperlink{structmlx5__cqwq_a84f81780828a6dff97d4e7b6140a65d7}{log\_stride}});}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00173}00173 \}}
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00174}00174 }
\DoxyCodeLine{\Hypertarget{wq_8h_source_l00175}00175 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_MLX5\_WQ\_H\_\_ */}\textcolor{preprocessor}{}}

\end{DoxyCode}
