\hypertarget{vmci__qpair_8c}{}\doxysection{dev/vmware/vmci/vmci\+\_\+qpair.c File Reference}
\label{vmci__qpair_8c}\index{dev/vmware/vmci/vmci\_qpair.c@{dev/vmware/vmci/vmci\_qpair.c}}
{\ttfamily \#include $<$sys/cdefs.\+h$>$}\newline
{\ttfamily \#include \char`\"{}vmci\+\_\+kernel\+\_\+api.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}vmci\+\_\+kernel\+\_\+defs.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}vmci\+\_\+kernel\+\_\+if.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}vmci\+\_\+queue.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}vmci\+\_\+queue\+\_\+pair.\+h\char`\"{}}\newline
Include dependency graph for vmci\+\_\+qpair.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d8/db4/vmci__qpair_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{vmci__qpair_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\+\_\+\+\_\+\+FBSDID}} (\char`\"{}\$Free\+BSD\$\char`\"{})
\item 
static void \mbox{\hyperlink{vmci__qpair_8c_aefa3196a67fd9fa0bf175a742e798ff3}{vmci\+\_\+qpair\+\_\+get\+\_\+queue\+\_\+headers}} (const struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$qpair, struct \mbox{\hyperlink{structvmci__queue__header}{vmci\+\_\+queue\+\_\+header}} $\ast$$\ast$produce\+\_\+q\+\_\+header, struct \mbox{\hyperlink{structvmci__queue__header}{vmci\+\_\+queue\+\_\+header}} $\ast$$\ast$consume\+\_\+q\+\_\+header)
\item 
static int \mbox{\hyperlink{vmci__qpair_8c_ac3485221df318cd1bdc92eeadf235228}{vmci\+\_\+queue\+\_\+add\+\_\+producer\+\_\+tail}} (struct \mbox{\hyperlink{structvmci__queue}{vmci\+\_\+queue}} $\ast$queue, size\+\_\+t add, uint64\+\_\+t queue\+\_\+size)
\item 
static int \mbox{\hyperlink{vmci__qpair_8c_a541c23d387333936942abf1f0f5d1717}{vmci\+\_\+queue\+\_\+add\+\_\+consumer\+\_\+head}} (struct \mbox{\hyperlink{structvmci__queue}{vmci\+\_\+queue}} $\ast$queue, size\+\_\+t add, uint64\+\_\+t queue\+\_\+size)
\item 
int \mbox{\hyperlink{vmci__qpair_8c_a804ceb7010abe222070aa175f23848b2}{vmci\+\_\+qpair\+\_\+alloc}} (struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$$\ast$qpair, struct \mbox{\hyperlink{structvmci__handle}{vmci\+\_\+handle}} $\ast$handle, uint64\+\_\+t produce\+\_\+q\+\_\+size, uint64\+\_\+t consume\+\_\+q\+\_\+size, \mbox{\hyperlink{vmci__defs_8h_a63484c65c5ff339faa3914980d181327}{vmci\+\_\+id}} peer, uint32\+\_\+t flags, \mbox{\hyperlink{vmci__defs_8h_a02f4f53a27013938bd155c00dcce95da}{vmci\+\_\+privilege\+\_\+flags}} priv\+\_\+flags)
\item 
int \mbox{\hyperlink{vmci__qpair_8c_a174108210cdbb8cf3690dfbb2da1dd12}{vmci\+\_\+qpair\+\_\+detach}} (struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$$\ast$qpair)
\item 
int \mbox{\hyperlink{vmci__qpair_8c_a6c32f85319732b9e271f65d24ff26df5}{vmci\+\_\+qpair\+\_\+get\+\_\+produce\+\_\+indexes}} (const struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$qpair, uint64\+\_\+t $\ast$producer\+\_\+tail, uint64\+\_\+t $\ast$consumer\+\_\+head)
\item 
int \mbox{\hyperlink{vmci__qpair_8c_a80b261b772b168cda49050f4994864cd}{vmci\+\_\+qpair\+\_\+get\+\_\+consume\+\_\+indexes}} (const struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$qpair, uint64\+\_\+t $\ast$consumer\+\_\+tail, uint64\+\_\+t $\ast$producer\+\_\+head)
\item 
int64\+\_\+t \mbox{\hyperlink{vmci__qpair_8c_aa74d86f88b7cc18b3b01dde5382ca429}{vmci\+\_\+qpair\+\_\+produce\+\_\+free\+\_\+space}} (const struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$qpair)
\item 
int64\+\_\+t \mbox{\hyperlink{vmci__qpair_8c_a52068453835385172dfde1d0fbdcc4e9}{vmci\+\_\+qpair\+\_\+consume\+\_\+free\+\_\+space}} (const struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$qpair)
\item 
int64\+\_\+t \mbox{\hyperlink{vmci__qpair_8c_afd0d1274e0d1f07c525877d41efc7a83}{vmci\+\_\+qpair\+\_\+produce\+\_\+buf\+\_\+ready}} (const struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$qpair)
\item 
int64\+\_\+t \mbox{\hyperlink{vmci__qpair_8c_a498d3ca3942565e78ed8dd8cb95bfc23}{vmci\+\_\+qpair\+\_\+consume\+\_\+buf\+\_\+ready}} (const struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$qpair)
\item 
static ssize\+\_\+t \mbox{\hyperlink{vmci__qpair_8c_a0690994eff0ef35e407c2d95b6d82b37}{enqueue}} (struct \mbox{\hyperlink{structvmci__queue}{vmci\+\_\+queue}} $\ast$produce\+\_\+q, struct \mbox{\hyperlink{structvmci__queue}{vmci\+\_\+queue}} $\ast$consume\+\_\+q, const uint64\+\_\+t produce\+\_\+q\+\_\+size, const void $\ast$buf, size\+\_\+t buf\+\_\+size, int buf\+\_\+type, \mbox{\hyperlink{vmci__queue_8h_a6075c81cd1dab6583d5cf1d67334eb87}{vmci\+\_\+memcpy\+\_\+to\+\_\+queue\+\_\+func}} memcpy\+\_\+to\+\_\+queue, bool can\+\_\+block)
\item 
static ssize\+\_\+t \mbox{\hyperlink{vmci__qpair_8c_aeafb337c69c3fc520bf6d4bbf5b03c24}{dequeue}} (struct \mbox{\hyperlink{structvmci__queue}{vmci\+\_\+queue}} $\ast$produce\+\_\+q, struct \mbox{\hyperlink{structvmci__queue}{vmci\+\_\+queue}} $\ast$consume\+\_\+q, const uint64\+\_\+t consume\+\_\+q\+\_\+size, void $\ast$buf, size\+\_\+t buf\+\_\+size, int buf\+\_\+type, \mbox{\hyperlink{vmci__queue_8h_adf93806d79fe04443d4cfba3a9d032b1}{vmci\+\_\+memcpy\+\_\+from\+\_\+queue\+\_\+func}} memcpy\+\_\+from\+\_\+queue, bool update\+\_\+consumer, bool can\+\_\+block)
\item 
ssize\+\_\+t \mbox{\hyperlink{vmci__qpair_8c_aad4cf998cc4ac78766ca612d8e345cbd}{vmci\+\_\+qpair\+\_\+enqueue}} (struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$qpair, const void $\ast$buf, size\+\_\+t buf\+\_\+size, int buf\+\_\+type)
\item 
ssize\+\_\+t \mbox{\hyperlink{vmci__qpair_8c_ada0778b1d827ed4c6dd4fdb399691b72}{vmci\+\_\+qpair\+\_\+dequeue}} (struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$qpair, void $\ast$buf, size\+\_\+t buf\+\_\+size, int buf\+\_\+type)
\item 
ssize\+\_\+t \mbox{\hyperlink{vmci__qpair_8c_ace045262200391c358c54cf8c7cf2cf3}{vmci\+\_\+qpair\+\_\+peek}} (struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$qpair, void $\ast$buf, size\+\_\+t buf\+\_\+size, int buf\+\_\+type)
\item 
ssize\+\_\+t \mbox{\hyperlink{vmci__qpair_8c_ad01ed4f1c8c26a555d1d6f1a6b3eca68}{vmci\+\_\+qpair\+\_\+enquev}} (struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$qpair, void $\ast$iov, size\+\_\+t iov\+\_\+size, int buf\+\_\+type)
\item 
ssize\+\_\+t \mbox{\hyperlink{vmci__qpair_8c_acc843d24415ac5dbba8e9ffe1436a3aa}{vmci\+\_\+qpair\+\_\+dequev}} (struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$qpair, void $\ast$iov, size\+\_\+t iov\+\_\+size, int buf\+\_\+type)
\item 
ssize\+\_\+t \mbox{\hyperlink{vmci__qpair_8c_af566dfa44a0a6059f2a13eebfe5aedb2}{vmci\+\_\+qpair\+\_\+peekv}} (struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$qpair, void $\ast$iov, size\+\_\+t iov\+\_\+size, int buf\+\_\+type)
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{vmci__qpair_8c_a8c3ef283470a68cd30afe9b8a72cb60f}\label{vmci__qpair_8c_a8c3ef283470a68cd30afe9b8a72cb60f}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!\_\_FBSDID@{\_\_FBSDID}}
\index{\_\_FBSDID@{\_\_FBSDID}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{\_\_FBSDID()}{\_\_FBSDID()}}
{\footnotesize\ttfamily \+\_\+\+\_\+\+FBSDID (\begin{DoxyParamCaption}\item[{\char`\"{}\$Free\+BSD\$\char`\"{}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{vmci__qpair_8c_aeafb337c69c3fc520bf6d4bbf5b03c24}\label{vmci__qpair_8c_aeafb337c69c3fc520bf6d4bbf5b03c24}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!dequeue@{dequeue}}
\index{dequeue@{dequeue}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{dequeue()}{dequeue()}}
{\footnotesize\ttfamily static ssize\+\_\+t dequeue (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structvmci__queue}{vmci\+\_\+queue}} $\ast$}]{produce\+\_\+q,  }\item[{struct \mbox{\hyperlink{structvmci__queue}{vmci\+\_\+queue}} $\ast$}]{consume\+\_\+q,  }\item[{const uint64\+\_\+t}]{consume\+\_\+q\+\_\+size,  }\item[{void $\ast$}]{buf,  }\item[{size\+\_\+t}]{buf\+\_\+size,  }\item[{int}]{buf\+\_\+type,  }\item[{\mbox{\hyperlink{vmci__queue_8h_adf93806d79fe04443d4cfba3a9d032b1}{vmci\+\_\+memcpy\+\_\+from\+\_\+queue\+\_\+func}}}]{memcpy\+\_\+from\+\_\+queue,  }\item[{bool}]{update\+\_\+consumer,  }\item[{bool}]{can\+\_\+block }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00577}{577}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__kernel__defs_8h_source_l00019}{ASSERT}}, \mbox{\hyperlink{vmci__kernel__defs_8h_source_l00022}{LIKELY}}, \mbox{\hyperlink{vmci__queue_8h_source_l00033}{vmci\+\_\+queue\+::q\+\_\+header}}, \mbox{\hyperlink{vmci__defs_8h_source_l00257}{VMCI\+\_\+\+ERROR\+\_\+\+QUEUEPAIR\+\_\+\+NODATA}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00088}{vmci\+\_\+queue\+\_\+add\+\_\+consumer\+\_\+head()}}, \mbox{\hyperlink{vmci__defs_8h_source_l00702}{vmci\+\_\+queue\+\_\+header\+\_\+buf\+\_\+ready()}}, \mbox{\hyperlink{vmci__defs_8h_source_l00498}{vmci\+\_\+queue\+\_\+header\+\_\+consumer\+\_\+head()}}, and \mbox{\hyperlink{vmci__defs_8h_source_l00221}{VMCI\+\_\+\+SUCCESS}}.



Referenced by \mbox{\hyperlink{vmci__qpair_8c_source_l00680}{vmci\+\_\+qpair\+\_\+dequeue()}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00786}{vmci\+\_\+qpair\+\_\+dequev()}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00716}{vmci\+\_\+qpair\+\_\+peek()}}, and \mbox{\hyperlink{vmci__qpair_8c_source_l00822}{vmci\+\_\+qpair\+\_\+peekv()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_aeafb337c69c3fc520bf6d4bbf5b03c24_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=293pt]{d9/de5/vmci__qpair_8c_aeafb337c69c3fc520bf6d4bbf5b03c24_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_a0690994eff0ef35e407c2d95b6d82b37}\label{vmci__qpair_8c_a0690994eff0ef35e407c2d95b6d82b37}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!enqueue@{enqueue}}
\index{enqueue@{enqueue}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{enqueue()}{enqueue()}}
{\footnotesize\ttfamily static ssize\+\_\+t enqueue (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structvmci__queue}{vmci\+\_\+queue}} $\ast$}]{produce\+\_\+q,  }\item[{struct \mbox{\hyperlink{structvmci__queue}{vmci\+\_\+queue}} $\ast$}]{consume\+\_\+q,  }\item[{const uint64\+\_\+t}]{produce\+\_\+q\+\_\+size,  }\item[{const void $\ast$}]{buf,  }\item[{size\+\_\+t}]{buf\+\_\+size,  }\item[{int}]{buf\+\_\+type,  }\item[{\mbox{\hyperlink{vmci__queue_8h_a6075c81cd1dab6583d5cf1d67334eb87}{vmci\+\_\+memcpy\+\_\+to\+\_\+queue\+\_\+func}}}]{memcpy\+\_\+to\+\_\+queue,  }\item[{bool}]{can\+\_\+block }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00506}{506}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__kernel__defs_8h_source_l00019}{ASSERT}}, \mbox{\hyperlink{vmci__kernel__defs_8h_source_l00022}{LIKELY}}, \mbox{\hyperlink{vmci__queue_8h_source_l00033}{vmci\+\_\+queue\+::q\+\_\+header}}, \mbox{\hyperlink{vmci__defs_8h_source_l00256}{VMCI\+\_\+\+ERROR\+\_\+\+QUEUEPAIR\+\_\+\+NOSPACE}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00062}{vmci\+\_\+queue\+\_\+add\+\_\+producer\+\_\+tail()}}, \mbox{\hyperlink{vmci__defs_8h_source_l00654}{vmci\+\_\+queue\+\_\+header\+\_\+free\+\_\+space()}}, \mbox{\hyperlink{vmci__defs_8h_source_l00475}{vmci\+\_\+queue\+\_\+header\+\_\+producer\+\_\+tail()}}, and \mbox{\hyperlink{vmci__defs_8h_source_l00221}{VMCI\+\_\+\+SUCCESS}}.



Referenced by \mbox{\hyperlink{vmci__qpair_8c_source_l00645}{vmci\+\_\+qpair\+\_\+enqueue()}}, and \mbox{\hyperlink{vmci__qpair_8c_source_l00751}{vmci\+\_\+qpair\+\_\+enquev()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_a0690994eff0ef35e407c2d95b6d82b37_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=293pt]{d9/de5/vmci__qpair_8c_a0690994eff0ef35e407c2d95b6d82b37_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_a804ceb7010abe222070aa175f23848b2}\label{vmci__qpair_8c_a804ceb7010abe222070aa175f23848b2}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_alloc@{vmci\_qpair\_alloc}}
\index{vmci\_qpair\_alloc@{vmci\_qpair\_alloc}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_alloc()}{vmci\_qpair\_alloc()}}
{\footnotesize\ttfamily int vmci\+\_\+qpair\+\_\+alloc (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$$\ast$}]{qpair,  }\item[{struct \mbox{\hyperlink{structvmci__handle}{vmci\+\_\+handle}} $\ast$}]{handle,  }\item[{uint64\+\_\+t}]{produce\+\_\+q\+\_\+size,  }\item[{uint64\+\_\+t}]{consume\+\_\+q\+\_\+size,  }\item[{\mbox{\hyperlink{vmci__defs_8h_a63484c65c5ff339faa3914980d181327}{vmci\+\_\+id}}}]{peer,  }\item[{uint32\+\_\+t}]{flags,  }\item[{\mbox{\hyperlink{vmci__defs_8h_a02f4f53a27013938bd155c00dcce95da}{vmci\+\_\+privilege\+\_\+flags}}}]{priv\+\_\+flags }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00146}{146}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__qpair_8c_source_l00030}{vmci\+\_\+qpair\+::consume\+\_\+q}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00032}{vmci\+\_\+qpair\+::consume\+\_\+q\+\_\+size}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00034}{vmci\+\_\+qpair\+::flags}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00028}{vmci\+\_\+qpair\+::handle}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00033}{vmci\+\_\+qpair\+::peer}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00035}{vmci\+\_\+qpair\+::priv\+\_\+flags}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00029}{vmci\+\_\+qpair\+::produce\+\_\+q}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00031}{vmci\+\_\+qpair\+::produce\+\_\+q\+\_\+size}}, \mbox{\hyperlink{vmci__kernel__if_8c_source_l00210}{vmci\+\_\+alloc\+\_\+kernel\+\_\+mem()}}, \mbox{\hyperlink{vmci__defs_8h_source_l00223}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+ARGS}}, \mbox{\hyperlink{vmci__defs_8h_source_l00224}{VMCI\+\_\+\+ERROR\+\_\+\+NO\+\_\+\+MEM}}, \mbox{\hyperlink{vmci__defs_8h_source_l00240}{VMCI\+\_\+\+ERROR\+\_\+\+NO\+\_\+\+RESOURCES}}, \mbox{\hyperlink{vmci__kernel__if_8c_source_l00241}{vmci\+\_\+free\+\_\+kernel\+\_\+mem()}}, \mbox{\hyperlink{vmci__defs_8h_source_l00075}{VMCI\+\_\+\+MAX\+\_\+\+GUEST\+\_\+\+QP\+\_\+\+MEMORY}}, \mbox{\hyperlink{vmci__kernel__if_8h_source_l00022}{VMCI\+\_\+\+MEMORY\+\_\+\+NORMAL}}, \mbox{\hyperlink{vmci__call__defs_8h_source_l00211}{VMCI\+\_\+\+QPFLAG\+\_\+\+NONBLOCK}}, \mbox{\hyperlink{vmci__queue__pair_8c_source_l00095}{vmci\+\_\+queue\+\_\+pair\+\_\+alloc()}}, and \mbox{\hyperlink{vmci__defs_8h_source_l00221}{VMCI\+\_\+\+SUCCESS}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_a804ceb7010abe222070aa175f23848b2_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_a498d3ca3942565e78ed8dd8cb95bfc23}\label{vmci__qpair_8c_a498d3ca3942565e78ed8dd8cb95bfc23}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_consume\_buf\_ready@{vmci\_qpair\_consume\_buf\_ready}}
\index{vmci\_qpair\_consume\_buf\_ready@{vmci\_qpair\_consume\_buf\_ready}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_consume\_buf\_ready()}{vmci\_qpair\_consume\_buf\_ready()}}
{\footnotesize\ttfamily int64\+\_\+t vmci\+\_\+qpair\+\_\+consume\+\_\+buf\+\_\+ready (\begin{DoxyParamCaption}\item[{const struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$}]{qpair }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00465}{465}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__qpair_8c_source_l00032}{vmci\+\_\+qpair\+::consume\+\_\+q\+\_\+size}}, \mbox{\hyperlink{vmci__defs_8h_source_l00223}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+ARGS}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00115}{vmci\+\_\+qpair\+\_\+get\+\_\+queue\+\_\+headers()}}, and \mbox{\hyperlink{vmci__defs_8h_source_l00702}{vmci\+\_\+queue\+\_\+header\+\_\+buf\+\_\+ready()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_a498d3ca3942565e78ed8dd8cb95bfc23_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_a52068453835385172dfde1d0fbdcc4e9}\label{vmci__qpair_8c_a52068453835385172dfde1d0fbdcc4e9}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_consume\_free\_space@{vmci\_qpair\_consume\_free\_space}}
\index{vmci\_qpair\_consume\_free\_space@{vmci\_qpair\_consume\_free\_space}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_consume\_free\_space()}{vmci\_qpair\_consume\_free\_space()}}
{\footnotesize\ttfamily int64\+\_\+t vmci\+\_\+qpair\+\_\+consume\+\_\+free\+\_\+space (\begin{DoxyParamCaption}\item[{const struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$}]{qpair }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00389}{389}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__qpair_8c_source_l00032}{vmci\+\_\+qpair\+::consume\+\_\+q\+\_\+size}}, \mbox{\hyperlink{vmci__defs_8h_source_l00223}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+ARGS}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00115}{vmci\+\_\+qpair\+\_\+get\+\_\+queue\+\_\+headers()}}, and \mbox{\hyperlink{vmci__defs_8h_source_l00654}{vmci\+\_\+queue\+\_\+header\+\_\+free\+\_\+space()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_a52068453835385172dfde1d0fbdcc4e9_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_ada0778b1d827ed4c6dd4fdb399691b72}\label{vmci__qpair_8c_ada0778b1d827ed4c6dd4fdb399691b72}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_dequeue@{vmci\_qpair\_dequeue}}
\index{vmci\_qpair\_dequeue@{vmci\_qpair\_dequeue}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_dequeue()}{vmci\_qpair\_dequeue()}}
{\footnotesize\ttfamily ssize\+\_\+t vmci\+\_\+qpair\+\_\+dequeue (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$}]{qpair,  }\item[{void $\ast$}]{buf,  }\item[{size\+\_\+t}]{buf\+\_\+size,  }\item[{int}]{buf\+\_\+type }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00680}{680}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__qpair_8c_source_l00030}{vmci\+\_\+qpair\+::consume\+\_\+q}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00032}{vmci\+\_\+qpair\+::consume\+\_\+q\+\_\+size}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00577}{dequeue()}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00034}{vmci\+\_\+qpair\+::flags}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00029}{vmci\+\_\+qpair\+::produce\+\_\+q}}, \mbox{\hyperlink{vmci__defs_8h_source_l00223}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+ARGS}}, \mbox{\hyperlink{vmci__kernel__if_8c_source_l00961}{vmci\+\_\+memcpy\+\_\+from\+\_\+queue()}}, \mbox{\hyperlink{vmci__kernel__if_8c_source_l01018}{vmci\+\_\+memcpy\+\_\+from\+\_\+queue\+\_\+local()}}, \mbox{\hyperlink{vmci__call__defs_8h_source_l00209}{VMCI\+\_\+\+QPFLAG\+\_\+\+LOCAL}}, and \mbox{\hyperlink{vmci__call__defs_8h_source_l00211}{VMCI\+\_\+\+QPFLAG\+\_\+\+NONBLOCK}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_ada0778b1d827ed4c6dd4fdb399691b72_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_acc843d24415ac5dbba8e9ffe1436a3aa}\label{vmci__qpair_8c_acc843d24415ac5dbba8e9ffe1436a3aa}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_dequev@{vmci\_qpair\_dequev}}
\index{vmci\_qpair\_dequev@{vmci\_qpair\_dequev}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_dequev()}{vmci\_qpair\_dequev()}}
{\footnotesize\ttfamily ssize\+\_\+t vmci\+\_\+qpair\+\_\+dequev (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$}]{qpair,  }\item[{void $\ast$}]{iov,  }\item[{size\+\_\+t}]{iov\+\_\+size,  }\item[{int}]{buf\+\_\+type }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00786}{786}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__qpair_8c_source_l00030}{vmci\+\_\+qpair\+::consume\+\_\+q}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00032}{vmci\+\_\+qpair\+::consume\+\_\+q\+\_\+size}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00577}{dequeue()}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00034}{vmci\+\_\+qpair\+::flags}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00029}{vmci\+\_\+qpair\+::produce\+\_\+q}}, \mbox{\hyperlink{vmci__defs_8h_source_l00223}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+ARGS}}, \mbox{\hyperlink{vmci__kernel__if_8c_source_l01077}{vmci\+\_\+memcpy\+\_\+from\+\_\+queue\+\_\+v()}}, \mbox{\hyperlink{vmci__queue_8h_source_l00108}{vmci\+\_\+memcpy\+\_\+from\+\_\+queue\+\_\+v\+\_\+local()}}, \mbox{\hyperlink{vmci__call__defs_8h_source_l00209}{VMCI\+\_\+\+QPFLAG\+\_\+\+LOCAL}}, and \mbox{\hyperlink{vmci__call__defs_8h_source_l00211}{VMCI\+\_\+\+QPFLAG\+\_\+\+NONBLOCK}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_acc843d24415ac5dbba8e9ffe1436a3aa_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_a174108210cdbb8cf3690dfbb2da1dd12}\label{vmci__qpair_8c_a174108210cdbb8cf3690dfbb2da1dd12}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_detach@{vmci\_qpair\_detach}}
\index{vmci\_qpair\_detach@{vmci\_qpair\_detach}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_detach()}{vmci\_qpair\_detach()}}
{\footnotesize\ttfamily int vmci\+\_\+qpair\+\_\+detach (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$$\ast$}]{qpair }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00223}{223}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__qpair_8c_source_l00037}{vmci\+\_\+qpair\+::event}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00034}{vmci\+\_\+qpair\+::flags}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00028}{vmci\+\_\+qpair\+::handle}}, \mbox{\hyperlink{vmci__kernel__if_8c_source_l00329}{vmci\+\_\+destroy\+\_\+event()}}, \mbox{\hyperlink{vmci__defs_8h_source_l00223}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+ARGS}}, \mbox{\hyperlink{vmci__kernel__if_8c_source_l00241}{vmci\+\_\+free\+\_\+kernel\+\_\+mem()}}, \mbox{\hyperlink{vmci__call__defs_8h_source_l00209}{VMCI\+\_\+\+QPFLAG\+\_\+\+LOCAL}}, and \mbox{\hyperlink{vmci__queue__pair_8c_source_l00126}{vmci\+\_\+queue\+\_\+pair\+\_\+detach()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_a174108210cdbb8cf3690dfbb2da1dd12_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_aad4cf998cc4ac78766ca612d8e345cbd}\label{vmci__qpair_8c_aad4cf998cc4ac78766ca612d8e345cbd}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_enqueue@{vmci\_qpair\_enqueue}}
\index{vmci\_qpair\_enqueue@{vmci\_qpair\_enqueue}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_enqueue()}{vmci\_qpair\_enqueue()}}
{\footnotesize\ttfamily ssize\+\_\+t vmci\+\_\+qpair\+\_\+enqueue (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$}]{qpair,  }\item[{const void $\ast$}]{buf,  }\item[{size\+\_\+t}]{buf\+\_\+size,  }\item[{int}]{buf\+\_\+type }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00645}{645}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__qpair_8c_source_l00030}{vmci\+\_\+qpair\+::consume\+\_\+q}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00506}{enqueue()}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00034}{vmci\+\_\+qpair\+::flags}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00029}{vmci\+\_\+qpair\+::produce\+\_\+q}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00031}{vmci\+\_\+qpair\+::produce\+\_\+q\+\_\+size}}, \mbox{\hyperlink{vmci__defs_8h_source_l00223}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+ARGS}}, \mbox{\hyperlink{vmci__kernel__if_8c_source_l00933}{vmci\+\_\+memcpy\+\_\+to\+\_\+queue()}}, \mbox{\hyperlink{vmci__kernel__if_8c_source_l00990}{vmci\+\_\+memcpy\+\_\+to\+\_\+queue\+\_\+local()}}, \mbox{\hyperlink{vmci__call__defs_8h_source_l00209}{VMCI\+\_\+\+QPFLAG\+\_\+\+LOCAL}}, and \mbox{\hyperlink{vmci__call__defs_8h_source_l00211}{VMCI\+\_\+\+QPFLAG\+\_\+\+NONBLOCK}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_aad4cf998cc4ac78766ca612d8e345cbd_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_ad01ed4f1c8c26a555d1d6f1a6b3eca68}\label{vmci__qpair_8c_ad01ed4f1c8c26a555d1d6f1a6b3eca68}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_enquev@{vmci\_qpair\_enquev}}
\index{vmci\_qpair\_enquev@{vmci\_qpair\_enquev}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_enquev()}{vmci\_qpair\_enquev()}}
{\footnotesize\ttfamily ssize\+\_\+t vmci\+\_\+qpair\+\_\+enquev (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$}]{qpair,  }\item[{void $\ast$}]{iov,  }\item[{size\+\_\+t}]{iov\+\_\+size,  }\item[{int}]{buf\+\_\+type }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00751}{751}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__qpair_8c_source_l00030}{vmci\+\_\+qpair\+::consume\+\_\+q}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00506}{enqueue()}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00034}{vmci\+\_\+qpair\+::flags}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00029}{vmci\+\_\+qpair\+::produce\+\_\+q}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00031}{vmci\+\_\+qpair\+::produce\+\_\+q\+\_\+size}}, \mbox{\hyperlink{vmci__defs_8h_source_l00223}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+ARGS}}, \mbox{\hyperlink{vmci__kernel__if_8c_source_l01045}{vmci\+\_\+memcpy\+\_\+to\+\_\+queue\+\_\+v()}}, \mbox{\hyperlink{vmci__queue_8h_source_l00098}{vmci\+\_\+memcpy\+\_\+to\+\_\+queue\+\_\+v\+\_\+local()}}, \mbox{\hyperlink{vmci__call__defs_8h_source_l00209}{VMCI\+\_\+\+QPFLAG\+\_\+\+LOCAL}}, and \mbox{\hyperlink{vmci__call__defs_8h_source_l00211}{VMCI\+\_\+\+QPFLAG\+\_\+\+NONBLOCK}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_ad01ed4f1c8c26a555d1d6f1a6b3eca68_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_a80b261b772b168cda49050f4994864cd}\label{vmci__qpair_8c_a80b261b772b168cda49050f4994864cd}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_get\_consume\_indexes@{vmci\_qpair\_get\_consume\_indexes}}
\index{vmci\_qpair\_get\_consume\_indexes@{vmci\_qpair\_get\_consume\_indexes}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_get\_consume\_indexes()}{vmci\_qpair\_get\_consume\_indexes()}}
{\footnotesize\ttfamily int vmci\+\_\+qpair\+\_\+get\+\_\+consume\+\_\+indexes (\begin{DoxyParamCaption}\item[{const struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$}]{qpair,  }\item[{uint64\+\_\+t $\ast$}]{consumer\+\_\+tail,  }\item[{uint64\+\_\+t $\ast$}]{producer\+\_\+head }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00309}{309}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__qpair_8c_source_l00032}{vmci\+\_\+qpair\+::consume\+\_\+q\+\_\+size}}, \mbox{\hyperlink{vmci__defs_8h_source_l00223}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+ARGS}}, \mbox{\hyperlink{vmci__defs_8h_source_l00245}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+SIZE}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00115}{vmci\+\_\+qpair\+\_\+get\+\_\+queue\+\_\+headers()}}, \mbox{\hyperlink{vmci__defs_8h_source_l00572}{vmci\+\_\+queue\+\_\+header\+\_\+get\+\_\+pointers()}}, and \mbox{\hyperlink{vmci__defs_8h_source_l00221}{VMCI\+\_\+\+SUCCESS}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_a80b261b772b168cda49050f4994864cd_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_a6c32f85319732b9e271f65d24ff26df5}\label{vmci__qpair_8c_a6c32f85319732b9e271f65d24ff26df5}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_get\_produce\_indexes@{vmci\_qpair\_get\_produce\_indexes}}
\index{vmci\_qpair\_get\_produce\_indexes@{vmci\_qpair\_get\_produce\_indexes}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_get\_produce\_indexes()}{vmci\_qpair\_get\_produce\_indexes()}}
{\footnotesize\ttfamily int vmci\+\_\+qpair\+\_\+get\+\_\+produce\+\_\+indexes (\begin{DoxyParamCaption}\item[{const struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$}]{qpair,  }\item[{uint64\+\_\+t $\ast$}]{producer\+\_\+tail,  }\item[{uint64\+\_\+t $\ast$}]{consumer\+\_\+head }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00269}{269}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__defs_8h_source_l00386}{vmci\+\_\+queue\+\_\+header\+::consumer\+\_\+head}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00031}{vmci\+\_\+qpair\+::produce\+\_\+q\+\_\+size}}, \mbox{\hyperlink{vmci__defs_8h_source_l00385}{vmci\+\_\+queue\+\_\+header\+::producer\+\_\+tail}}, \mbox{\hyperlink{vmci__defs_8h_source_l00223}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+ARGS}}, \mbox{\hyperlink{vmci__defs_8h_source_l00245}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+SIZE}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00115}{vmci\+\_\+qpair\+\_\+get\+\_\+queue\+\_\+headers()}}, \mbox{\hyperlink{vmci__defs_8h_source_l00572}{vmci\+\_\+queue\+\_\+header\+\_\+get\+\_\+pointers()}}, and \mbox{\hyperlink{vmci__defs_8h_source_l00221}{VMCI\+\_\+\+SUCCESS}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_a6c32f85319732b9e271f65d24ff26df5_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_aefa3196a67fd9fa0bf175a742e798ff3}\label{vmci__qpair_8c_aefa3196a67fd9fa0bf175a742e798ff3}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_get\_queue\_headers@{vmci\_qpair\_get\_queue\_headers}}
\index{vmci\_qpair\_get\_queue\_headers@{vmci\_qpair\_get\_queue\_headers}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_get\_queue\_headers()}{vmci\_qpair\_get\_queue\_headers()}}
{\footnotesize\ttfamily static void vmci\+\_\+qpair\+\_\+get\+\_\+queue\+\_\+headers (\begin{DoxyParamCaption}\item[{const struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$}]{qpair,  }\item[{struct \mbox{\hyperlink{structvmci__queue__header}{vmci\+\_\+queue\+\_\+header}} $\ast$$\ast$}]{produce\+\_\+q\+\_\+header,  }\item[{struct \mbox{\hyperlink{structvmci__queue__header}{vmci\+\_\+queue\+\_\+header}} $\ast$$\ast$}]{consume\+\_\+q\+\_\+header }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00115}{115}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__kernel__defs_8h_source_l00019}{ASSERT}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00030}{vmci\+\_\+qpair\+::consume\+\_\+q}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00029}{vmci\+\_\+qpair\+::produce\+\_\+q}}, and \mbox{\hyperlink{vmci__queue_8h_source_l00033}{vmci\+\_\+queue\+::q\+\_\+header}}.



Referenced by \mbox{\hyperlink{vmci__qpair_8c_source_l00465}{vmci\+\_\+qpair\+\_\+consume\+\_\+buf\+\_\+ready()}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00389}{vmci\+\_\+qpair\+\_\+consume\+\_\+free\+\_\+space()}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00309}{vmci\+\_\+qpair\+\_\+get\+\_\+consume\+\_\+indexes()}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00269}{vmci\+\_\+qpair\+\_\+get\+\_\+produce\+\_\+indexes()}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00427}{vmci\+\_\+qpair\+\_\+produce\+\_\+buf\+\_\+ready()}}, and \mbox{\hyperlink{vmci__qpair_8c_source_l00351}{vmci\+\_\+qpair\+\_\+produce\+\_\+free\+\_\+space()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_aefa3196a67fd9fa0bf175a742e798ff3_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_ace045262200391c358c54cf8c7cf2cf3}\label{vmci__qpair_8c_ace045262200391c358c54cf8c7cf2cf3}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_peek@{vmci\_qpair\_peek}}
\index{vmci\_qpair\_peek@{vmci\_qpair\_peek}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_peek()}{vmci\_qpair\_peek()}}
{\footnotesize\ttfamily ssize\+\_\+t vmci\+\_\+qpair\+\_\+peek (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$}]{qpair,  }\item[{void $\ast$}]{buf,  }\item[{size\+\_\+t}]{buf\+\_\+size,  }\item[{int}]{buf\+\_\+type }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00716}{716}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__qpair_8c_source_l00030}{vmci\+\_\+qpair\+::consume\+\_\+q}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00032}{vmci\+\_\+qpair\+::consume\+\_\+q\+\_\+size}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00577}{dequeue()}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00034}{vmci\+\_\+qpair\+::flags}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00029}{vmci\+\_\+qpair\+::produce\+\_\+q}}, \mbox{\hyperlink{vmci__defs_8h_source_l00223}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+ARGS}}, \mbox{\hyperlink{vmci__kernel__if_8c_source_l00961}{vmci\+\_\+memcpy\+\_\+from\+\_\+queue()}}, \mbox{\hyperlink{vmci__kernel__if_8c_source_l01018}{vmci\+\_\+memcpy\+\_\+from\+\_\+queue\+\_\+local()}}, \mbox{\hyperlink{vmci__call__defs_8h_source_l00209}{VMCI\+\_\+\+QPFLAG\+\_\+\+LOCAL}}, and \mbox{\hyperlink{vmci__call__defs_8h_source_l00211}{VMCI\+\_\+\+QPFLAG\+\_\+\+NONBLOCK}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_ace045262200391c358c54cf8c7cf2cf3_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_af566dfa44a0a6059f2a13eebfe5aedb2}\label{vmci__qpair_8c_af566dfa44a0a6059f2a13eebfe5aedb2}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_peekv@{vmci\_qpair\_peekv}}
\index{vmci\_qpair\_peekv@{vmci\_qpair\_peekv}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_peekv()}{vmci\_qpair\_peekv()}}
{\footnotesize\ttfamily ssize\+\_\+t vmci\+\_\+qpair\+\_\+peekv (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$}]{qpair,  }\item[{void $\ast$}]{iov,  }\item[{size\+\_\+t}]{iov\+\_\+size,  }\item[{int}]{buf\+\_\+type }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00822}{822}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__qpair_8c_source_l00030}{vmci\+\_\+qpair\+::consume\+\_\+q}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00032}{vmci\+\_\+qpair\+::consume\+\_\+q\+\_\+size}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00577}{dequeue()}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00034}{vmci\+\_\+qpair\+::flags}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00029}{vmci\+\_\+qpair\+::produce\+\_\+q}}, \mbox{\hyperlink{vmci__defs_8h_source_l00223}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+ARGS}}, \mbox{\hyperlink{vmci__kernel__if_8c_source_l01077}{vmci\+\_\+memcpy\+\_\+from\+\_\+queue\+\_\+v()}}, \mbox{\hyperlink{vmci__queue_8h_source_l00108}{vmci\+\_\+memcpy\+\_\+from\+\_\+queue\+\_\+v\+\_\+local()}}, \mbox{\hyperlink{vmci__call__defs_8h_source_l00209}{VMCI\+\_\+\+QPFLAG\+\_\+\+LOCAL}}, and \mbox{\hyperlink{vmci__call__defs_8h_source_l00211}{VMCI\+\_\+\+QPFLAG\+\_\+\+NONBLOCK}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_af566dfa44a0a6059f2a13eebfe5aedb2_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_afd0d1274e0d1f07c525877d41efc7a83}\label{vmci__qpair_8c_afd0d1274e0d1f07c525877d41efc7a83}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_produce\_buf\_ready@{vmci\_qpair\_produce\_buf\_ready}}
\index{vmci\_qpair\_produce\_buf\_ready@{vmci\_qpair\_produce\_buf\_ready}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_produce\_buf\_ready()}{vmci\_qpair\_produce\_buf\_ready()}}
{\footnotesize\ttfamily int64\+\_\+t vmci\+\_\+qpair\+\_\+produce\+\_\+buf\+\_\+ready (\begin{DoxyParamCaption}\item[{const struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$}]{qpair }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00427}{427}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__qpair_8c_source_l00031}{vmci\+\_\+qpair\+::produce\+\_\+q\+\_\+size}}, \mbox{\hyperlink{vmci__defs_8h_source_l00223}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+ARGS}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00115}{vmci\+\_\+qpair\+\_\+get\+\_\+queue\+\_\+headers()}}, and \mbox{\hyperlink{vmci__defs_8h_source_l00702}{vmci\+\_\+queue\+\_\+header\+\_\+buf\+\_\+ready()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_afd0d1274e0d1f07c525877d41efc7a83_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_aa74d86f88b7cc18b3b01dde5382ca429}\label{vmci__qpair_8c_aa74d86f88b7cc18b3b01dde5382ca429}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_qpair\_produce\_free\_space@{vmci\_qpair\_produce\_free\_space}}
\index{vmci\_qpair\_produce\_free\_space@{vmci\_qpair\_produce\_free\_space}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_qpair\_produce\_free\_space()}{vmci\_qpair\_produce\_free\_space()}}
{\footnotesize\ttfamily int64\+\_\+t vmci\+\_\+qpair\+\_\+produce\+\_\+free\+\_\+space (\begin{DoxyParamCaption}\item[{const struct \mbox{\hyperlink{structvmci__qpair}{vmci\+\_\+qpair}} $\ast$}]{qpair }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00351}{351}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__qpair_8c_source_l00031}{vmci\+\_\+qpair\+::produce\+\_\+q\+\_\+size}}, \mbox{\hyperlink{vmci__defs_8h_source_l00223}{VMCI\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+ARGS}}, \mbox{\hyperlink{vmci__qpair_8c_source_l00115}{vmci\+\_\+qpair\+\_\+get\+\_\+queue\+\_\+headers()}}, and \mbox{\hyperlink{vmci__defs_8h_source_l00654}{vmci\+\_\+queue\+\_\+header\+\_\+free\+\_\+space()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_aa74d86f88b7cc18b3b01dde5382ca429_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_a541c23d387333936942abf1f0f5d1717}\label{vmci__qpair_8c_a541c23d387333936942abf1f0f5d1717}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_queue\_add\_consumer\_head@{vmci\_queue\_add\_consumer\_head}}
\index{vmci\_queue\_add\_consumer\_head@{vmci\_queue\_add\_consumer\_head}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_queue\_add\_consumer\_head()}{vmci\_queue\_add\_consumer\_head()}}
{\footnotesize\ttfamily static int vmci\+\_\+queue\+\_\+add\+\_\+consumer\+\_\+head (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structvmci__queue}{vmci\+\_\+queue}} $\ast$}]{queue,  }\item[{size\+\_\+t}]{add,  }\item[{uint64\+\_\+t}]{queue\+\_\+size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00088}{88}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__queue_8h_source_l00033}{vmci\+\_\+queue\+::q\+\_\+header}}, \mbox{\hyperlink{vmci__defs_8h_source_l00547}{vmci\+\_\+queue\+\_\+header\+\_\+add\+\_\+consumer\+\_\+head()}}, and \mbox{\hyperlink{vmci__defs_8h_source_l00221}{VMCI\+\_\+\+SUCCESS}}.



Referenced by \mbox{\hyperlink{vmci__qpair_8c_source_l00577}{dequeue()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_a541c23d387333936942abf1f0f5d1717_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_a541c23d387333936942abf1f0f5d1717_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{vmci__qpair_8c_ac3485221df318cd1bdc92eeadf235228}\label{vmci__qpair_8c_ac3485221df318cd1bdc92eeadf235228}} 
\index{vmci\_qpair.c@{vmci\_qpair.c}!vmci\_queue\_add\_producer\_tail@{vmci\_queue\_add\_producer\_tail}}
\index{vmci\_queue\_add\_producer\_tail@{vmci\_queue\_add\_producer\_tail}!vmci\_qpair.c@{vmci\_qpair.c}}
\doxysubsubsection{\texorpdfstring{vmci\_queue\_add\_producer\_tail()}{vmci\_queue\_add\_producer\_tail()}}
{\footnotesize\ttfamily static int vmci\+\_\+queue\+\_\+add\+\_\+producer\+\_\+tail (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structvmci__queue}{vmci\+\_\+queue}} $\ast$}]{queue,  }\item[{size\+\_\+t}]{add,  }\item[{uint64\+\_\+t}]{queue\+\_\+size }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Definition at line \mbox{\hyperlink{vmci__qpair_8c_source_l00062}{62}} of file \mbox{\hyperlink{vmci__qpair_8c_source}{vmci\+\_\+qpair.\+c}}.



References \mbox{\hyperlink{vmci__queue_8h_source_l00033}{vmci\+\_\+queue\+::q\+\_\+header}}, \mbox{\hyperlink{vmci__defs_8h_source_l00522}{vmci\+\_\+queue\+\_\+header\+\_\+add\+\_\+producer\+\_\+tail()}}, and \mbox{\hyperlink{vmci__defs_8h_source_l00221}{VMCI\+\_\+\+SUCCESS}}.



Referenced by \mbox{\hyperlink{vmci__qpair_8c_source_l00506}{enqueue()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_ac3485221df318cd1bdc92eeadf235228_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d9/de5/vmci__qpair_8c_ac3485221df318cd1bdc92eeadf235228_icgraph}
\end{center}
\end{figure}
