\hypertarget{mlx5__uar_8c}{}\doxysection{dev/mlx5/mlx5\+\_\+core/mlx5\+\_\+uar.c File Reference}
\label{mlx5__uar_8c}\index{dev/mlx5/mlx5\_core/mlx5\_uar.c@{dev/mlx5/mlx5\_core/mlx5\_uar.c}}
{\ttfamily \#include \char`\"{}opt\+\_\+rss.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}opt\+\_\+ratelimit.\+h\char`\"{}}\newline
{\ttfamily \#include $<$linux/kernel.\+h$>$}\newline
{\ttfamily \#include $<$linux/module.\+h$>$}\newline
{\ttfamily \#include $<$linux/io-\/mapping.\+h$>$}\newline
{\ttfamily \#include $<$dev/mlx5/driver.\+h$>$}\newline
{\ttfamily \#include $<$dev/mlx5/mlx5\+\_\+core/mlx5\+\_\+core.\+h$>$}\newline
Include dependency graph for mlx5\+\_\+uar.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d0/df5/mlx5__uar_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{mlx5__uar_8c_a3cf4542e9146d9d9a4dbb7fda99c2b4d}{mlx5\+\_\+cmd\+\_\+alloc\+\_\+uar}} (struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$dev, u32 $\ast$uarn)
\item 
\mbox{\hyperlink{mlx5__uar_8c_a4e01791d782790f54062c18a044ed38d}{EXPORT\+\_\+\+SYMBOL}} (\mbox{\hyperlink{mlx5__uar_8c_a3cf4542e9146d9d9a4dbb7fda99c2b4d}{mlx5\+\_\+cmd\+\_\+alloc\+\_\+uar}})
\item 
int \mbox{\hyperlink{mlx5__uar_8c_a8abdcf1fba52dcd7db8dd5d7370c96a8}{mlx5\+\_\+cmd\+\_\+free\+\_\+uar}} (struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$dev, u32 uarn)
\item 
\mbox{\hyperlink{mlx5__uar_8c_ad491301c750318b07a0949782b6aa89f}{EXPORT\+\_\+\+SYMBOL}} (\mbox{\hyperlink{mlx5__uar_8c_a8abdcf1fba52dcd7db8dd5d7370c96a8}{mlx5\+\_\+cmd\+\_\+free\+\_\+uar}})
\item 
static int \mbox{\hyperlink{mlx5__uar_8c_a14e9481e95da5425e6ba6cb4edbd8ec2}{uars\+\_\+per\+\_\+sys\+\_\+page}} (struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$mdev)
\item 
static u64 \mbox{\hyperlink{mlx5__uar_8c_afa3b68222cef553e11915e54b78b3359}{uar2pfn}} (struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$mdev, u32 index)
\item 
static void \mbox{\hyperlink{mlx5__uar_8c_acf583145e7e3ee08aacd2737caac82d5}{up\+\_\+rel\+\_\+func}} (struct kref $\ast$kref)
\item 
static struct \mbox{\hyperlink{structmlx5__uars__page}{mlx5\+\_\+uars\+\_\+page}} $\ast$ \mbox{\hyperlink{mlx5__uar_8c_a1f12a4f93f7a4bf03ec2dea840c5b91f}{alloc\+\_\+uars\+\_\+page}} (struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$mdev, bool map\+\_\+wc)
\item 
struct \mbox{\hyperlink{structmlx5__uars__page}{mlx5\+\_\+uars\+\_\+page}} $\ast$ \mbox{\hyperlink{mlx5__uar_8c_a76b81f015322a7417f58a515b7b6bd60}{mlx5\+\_\+get\+\_\+uars\+\_\+page}} (struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$mdev)
\item 
\mbox{\hyperlink{mlx5__uar_8c_a302e57d4da27fbca4641d35ac6af38bb}{EXPORT\+\_\+\+SYMBOL}} (\mbox{\hyperlink{mlx5__uar_8c_a76b81f015322a7417f58a515b7b6bd60}{mlx5\+\_\+get\+\_\+uars\+\_\+page}})
\item 
void \mbox{\hyperlink{mlx5__uar_8c_a41357023a1da52f36274d9e307d1b7f4}{mlx5\+\_\+put\+\_\+uars\+\_\+page}} (struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$mdev, struct \mbox{\hyperlink{structmlx5__uars__page}{mlx5\+\_\+uars\+\_\+page}} $\ast$up)
\item 
\mbox{\hyperlink{mlx5__uar_8c_a96ffece1496c2a56b7abf918e4289a39}{EXPORT\+\_\+\+SYMBOL}} (\mbox{\hyperlink{mlx5__uar_8c_a41357023a1da52f36274d9e307d1b7f4}{mlx5\+\_\+put\+\_\+uars\+\_\+page}})
\item 
static unsigned long \mbox{\hyperlink{mlx5__uar_8c_acc22567033ac3a25a5de0abe89795bec}{map\+\_\+offset}} (struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$mdev, int dbi)
\item 
static int \mbox{\hyperlink{mlx5__uar_8c_ac6a9ed6d35b51b0b93d93a3c5f3738f3}{alloc\+\_\+bfreg}} (struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$mdev, struct \mbox{\hyperlink{structmlx5__sq__bfreg}{mlx5\+\_\+sq\+\_\+bfreg}} $\ast$\mbox{\hyperlink{en_8h_a091bc3a4f66580cd5048aa1c7e22d495}{bfreg}}, bool map\+\_\+wc, bool fast\+\_\+path)
\item 
int \mbox{\hyperlink{mlx5__uar_8c_a654725775f68d9de65f8e84e953e98ea}{mlx5\+\_\+alloc\+\_\+bfreg}} (struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$mdev, struct \mbox{\hyperlink{structmlx5__sq__bfreg}{mlx5\+\_\+sq\+\_\+bfreg}} $\ast$\mbox{\hyperlink{en_8h_a091bc3a4f66580cd5048aa1c7e22d495}{bfreg}}, bool map\+\_\+wc, bool fast\+\_\+path)
\item 
\mbox{\hyperlink{mlx5__uar_8c_a4f11018377da744ae04f869e293fb46b}{EXPORT\+\_\+\+SYMBOL}} (\mbox{\hyperlink{mlx5__uar_8c_a654725775f68d9de65f8e84e953e98ea}{mlx5\+\_\+alloc\+\_\+bfreg}})
\item 
static unsigned int \mbox{\hyperlink{mlx5__uar_8c_af476026407e86c7239976d89aa8f8234}{addr\+\_\+to\+\_\+dbi\+\_\+in\+\_\+syspage}} (struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$dev, struct \mbox{\hyperlink{structmlx5__uars__page}{mlx5\+\_\+uars\+\_\+page}} $\ast$up, struct \mbox{\hyperlink{structmlx5__sq__bfreg}{mlx5\+\_\+sq\+\_\+bfreg}} $\ast$\mbox{\hyperlink{en_8h_a091bc3a4f66580cd5048aa1c7e22d495}{bfreg}})
\item 
void \mbox{\hyperlink{mlx5__uar_8c_adee537595fedf697ff978143068905cc}{mlx5\+\_\+free\+\_\+bfreg}} (struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$mdev, struct \mbox{\hyperlink{structmlx5__sq__bfreg}{mlx5\+\_\+sq\+\_\+bfreg}} $\ast$\mbox{\hyperlink{en_8h_a091bc3a4f66580cd5048aa1c7e22d495}{bfreg}})
\item 
\mbox{\hyperlink{mlx5__uar_8c_a3e0d19cfe0f613f90659fd0f54a0a32e}{EXPORT\+\_\+\+SYMBOL}} (\mbox{\hyperlink{mlx5__uar_8c_adee537595fedf697ff978143068905cc}{mlx5\+\_\+free\+\_\+bfreg}})
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{mlx5__uar_8c_af476026407e86c7239976d89aa8f8234}\label{mlx5__uar_8c_af476026407e86c7239976d89aa8f8234}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!addr\_to\_dbi\_in\_syspage@{addr\_to\_dbi\_in\_syspage}}
\index{addr\_to\_dbi\_in\_syspage@{addr\_to\_dbi\_in\_syspage}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{addr\_to\_dbi\_in\_syspage()}{addr\_to\_dbi\_in\_syspage()}}
{\footnotesize\ttfamily static unsigned int addr\+\_\+to\+\_\+dbi\+\_\+in\+\_\+syspage (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$}]{dev,  }\item[{struct \mbox{\hyperlink{structmlx5__uars__page}{mlx5\+\_\+uars\+\_\+page}} $\ast$}]{up,  }\item[{struct \mbox{\hyperlink{structmlx5__sq__bfreg}{mlx5\+\_\+sq\+\_\+bfreg}} $\ast$}]{bfreg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5__uar_8c_source_l00272}{272}} of file \mbox{\hyperlink{mlx5__uar_8c_source}{mlx5\+\_\+uar.\+c}}.



References \mbox{\hyperlink{en_8h_source_l00002}{bfreg}}, \mbox{\hyperlink{driver_8h_source_l00430}{mlx5\+\_\+uars\+\_\+page\+::map}}, \mbox{\hyperlink{driver_8h_source_l00455}{mlx5\+\_\+sq\+\_\+bfreg\+::map}}, \mbox{\hyperlink{device_8h_source_l00248}{MLX5\+\_\+\+ADAPTER\+\_\+\+PAGE\+\_\+\+SHIFT}}, \mbox{\hyperlink{device_8h_source_l00249}{MLX5\+\_\+\+ADAPTER\+\_\+\+PAGE\+\_\+\+SIZE}}, \mbox{\hyperlink{doorbell_8h_source_l00031}{MLX5\+\_\+\+BF\+\_\+\+OFFSET}}, \mbox{\hyperlink{device_8h_source_l00253}{MLX5\+\_\+\+BFREGS\+\_\+\+PER\+\_\+\+UAR}}, and \mbox{\hyperlink{device_8h_source_l01027}{MLX5\+\_\+\+CAP\+\_\+\+GEN}}.



Referenced by \mbox{\hyperlink{mlx5__uar_8c_source_l00288}{mlx5\+\_\+free\+\_\+bfreg()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_af476026407e86c7239976d89aa8f8234_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5__uar_8c_ac6a9ed6d35b51b0b93d93a3c5f3738f3}\label{mlx5__uar_8c_ac6a9ed6d35b51b0b93d93a3c5f3738f3}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!alloc\_bfreg@{alloc\_bfreg}}
\index{alloc\_bfreg@{alloc\_bfreg}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{alloc\_bfreg()}{alloc\_bfreg()}}
{\footnotesize\ttfamily static int alloc\+\_\+bfreg (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$}]{mdev,  }\item[{struct \mbox{\hyperlink{structmlx5__sq__bfreg}{mlx5\+\_\+sq\+\_\+bfreg}} $\ast$}]{bfreg,  }\item[{bool}]{map\+\_\+wc,  }\item[{bool}]{fast\+\_\+path }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5__uar_8c_source_l00203}{203}} of file \mbox{\hyperlink{mlx5__uar_8c_source}{mlx5\+\_\+uar.\+c}}.



References \mbox{\hyperlink{mlx5__uar_8c_source_l00095}{alloc\+\_\+uars\+\_\+page()}}, \mbox{\hyperlink{en_8h_source_l00002}{bfreg}}, \mbox{\hyperlink{driver_8h_source_l00434}{mlx5\+\_\+uars\+\_\+page\+::bfregs}}, \mbox{\hyperlink{driver_8h_source_l00624}{mlx5\+\_\+priv\+::bfregs}}, \mbox{\hyperlink{driver_8h_source_l00438}{mlx5\+\_\+uars\+\_\+page\+::fp\+\_\+avail}}, \mbox{\hyperlink{driver_8h_source_l00436}{mlx5\+\_\+uars\+\_\+page\+::fp\+\_\+bitmap}}, \mbox{\hyperlink{driver_8h_source_l00432}{mlx5\+\_\+uars\+\_\+page\+::index}}, \mbox{\hyperlink{driver_8h_source_l00458}{mlx5\+\_\+sq\+\_\+bfreg\+::index}}, \mbox{\hyperlink{driver_8h_source_l00433}{mlx5\+\_\+uars\+\_\+page\+::list}}, \mbox{\hyperlink{driver_8h_source_l00446}{mlx5\+\_\+bfreg\+\_\+head\+::list}}, \mbox{\hyperlink{driver_8h_source_l00445}{mlx5\+\_\+bfreg\+\_\+head\+::lock}}, \mbox{\hyperlink{en_8h_source_l00001}{lock}}, \mbox{\hyperlink{driver_8h_source_l00430}{mlx5\+\_\+uars\+\_\+page\+::map}}, \mbox{\hyperlink{driver_8h_source_l00455}{mlx5\+\_\+sq\+\_\+bfreg\+::map}}, \mbox{\hyperlink{mlx5__uar_8c_source_l00193}{map\+\_\+offset()}}, \mbox{\hyperlink{device_8h_source_l00253}{MLX5\+\_\+\+BFREGS\+\_\+\+PER\+\_\+\+UAR}}, \mbox{\hyperlink{driver_8h_source_l00681}{mlx5\+\_\+core\+\_\+dev\+::priv}}, \mbox{\hyperlink{driver_8h_source_l00439}{mlx5\+\_\+uars\+\_\+page\+::ref\+\_\+count}}, \mbox{\hyperlink{driver_8h_source_l00437}{mlx5\+\_\+uars\+\_\+page\+::reg\+\_\+avail}}, \mbox{\hyperlink{driver_8h_source_l00435}{mlx5\+\_\+uars\+\_\+page\+::reg\+\_\+bitmap}}, \mbox{\hyperlink{driver_8h_source_l00450}{mlx5\+\_\+bfreg\+\_\+data\+::reg\+\_\+head}}, \mbox{\hyperlink{driver_8h_source_l00456}{mlx5\+\_\+sq\+\_\+bfreg\+::up}}, \mbox{\hyperlink{driver_8h_source_l00457}{mlx5\+\_\+sq\+\_\+bfreg\+::wc}}, and \mbox{\hyperlink{driver_8h_source_l00451}{mlx5\+\_\+bfreg\+\_\+data\+::wc\+\_\+head}}.



Referenced by \mbox{\hyperlink{mlx5__uar_8c_source_l00256}{mlx5\+\_\+alloc\+\_\+bfreg()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_ac6a9ed6d35b51b0b93d93a3c5f3738f3_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_ac6a9ed6d35b51b0b93d93a3c5f3738f3_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5__uar_8c_a1f12a4f93f7a4bf03ec2dea840c5b91f}\label{mlx5__uar_8c_a1f12a4f93f7a4bf03ec2dea840c5b91f}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!alloc\_uars\_page@{alloc\_uars\_page}}
\index{alloc\_uars\_page@{alloc\_uars\_page}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{alloc\_uars\_page()}{alloc\_uars\_page()}}
{\footnotesize\ttfamily static struct \mbox{\hyperlink{structmlx5__uars__page}{mlx5\+\_\+uars\+\_\+page}} $\ast$ alloc\+\_\+uars\+\_\+page (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$}]{mdev,  }\item[{bool}]{map\+\_\+wc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5__uar_8c_source_l00095}{95}} of file \mbox{\hyperlink{mlx5__uar_8c_source}{mlx5\+\_\+uar.\+c}}.



References \mbox{\hyperlink{driver_8h_source_l00434}{mlx5\+\_\+uars\+\_\+page\+::bfregs}}, \mbox{\hyperlink{driver_8h_source_l00438}{mlx5\+\_\+uars\+\_\+page\+::fp\+\_\+avail}}, \mbox{\hyperlink{driver_8h_source_l00436}{mlx5\+\_\+uars\+\_\+page\+::fp\+\_\+bitmap}}, \mbox{\hyperlink{driver_8h_source_l00432}{mlx5\+\_\+uars\+\_\+page\+::index}}, \mbox{\hyperlink{driver_8h_source_l00430}{mlx5\+\_\+uars\+\_\+page\+::map}}, \mbox{\hyperlink{driver_8h_source_l00440}{mlx5\+\_\+uars\+\_\+page\+::mdev}}, \mbox{\hyperlink{device_8h_source_l00253}{MLX5\+\_\+\+BFREGS\+\_\+\+PER\+\_\+\+UAR}}, \mbox{\hyperlink{mlx5__uar_8c_source_l00037}{mlx5\+\_\+cmd\+\_\+alloc\+\_\+uar()}}, \mbox{\hyperlink{mlx5__uar_8c_source_l00051}{mlx5\+\_\+cmd\+\_\+free\+\_\+uar()}}, \mbox{\hyperlink{mlx5__core_8h_source_l00045}{mlx5\+\_\+core\+\_\+dbg}}, \mbox{\hyperlink{mlx5__core_8h_source_l00061}{mlx5\+\_\+core\+\_\+warn}}, \mbox{\hyperlink{device_8h_source_l00256}{MLX5\+\_\+\+FP\+\_\+\+BFREGS\+\_\+\+PER\+\_\+\+UAR}}, \mbox{\hyperlink{device_8h_source_l00255}{MLX5\+\_\+\+NON\+\_\+\+FP\+\_\+\+BFREGS\+\_\+\+PER\+\_\+\+UAR}}, \mbox{\hyperlink{driver_8h_source_l00439}{mlx5\+\_\+uars\+\_\+page\+::ref\+\_\+count}}, \mbox{\hyperlink{driver_8h_source_l00437}{mlx5\+\_\+uars\+\_\+page\+::reg\+\_\+avail}}, \mbox{\hyperlink{driver_8h_source_l00435}{mlx5\+\_\+uars\+\_\+page\+::reg\+\_\+bitmap}}, \mbox{\hyperlink{mlx5__uar_8c_source_l00070}{uar2pfn()}}, and \mbox{\hyperlink{mlx5__uar_8c_source_l00062}{uars\+\_\+per\+\_\+sys\+\_\+page()}}.



Referenced by \mbox{\hyperlink{mlx5__uar_8c_source_l00203}{alloc\+\_\+bfreg()}}, and \mbox{\hyperlink{mlx5__uar_8c_source_l00163}{mlx5\+\_\+get\+\_\+uars\+\_\+page()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_a1f12a4f93f7a4bf03ec2dea840c5b91f_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_a1f12a4f93f7a4bf03ec2dea840c5b91f_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5__uar_8c_a4f11018377da744ae04f869e293fb46b}\label{mlx5__uar_8c_a4f11018377da744ae04f869e293fb46b}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!EXPORT\_SYMBOL@{EXPORT\_SYMBOL}}
\index{EXPORT\_SYMBOL@{EXPORT\_SYMBOL}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{EXPORT\_SYMBOL()}{EXPORT\_SYMBOL()}\hspace{0.1cm}{\footnotesize\ttfamily [1/6]}}
{\footnotesize\ttfamily EXPORT\+\_\+\+SYMBOL (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{mlx5__uar_8c_a654725775f68d9de65f8e84e953e98ea}{mlx5\+\_\+alloc\+\_\+bfreg}}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mlx5__uar_8c_a4e01791d782790f54062c18a044ed38d}\label{mlx5__uar_8c_a4e01791d782790f54062c18a044ed38d}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!EXPORT\_SYMBOL@{EXPORT\_SYMBOL}}
\index{EXPORT\_SYMBOL@{EXPORT\_SYMBOL}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{EXPORT\_SYMBOL()}{EXPORT\_SYMBOL()}\hspace{0.1cm}{\footnotesize\ttfamily [2/6]}}
{\footnotesize\ttfamily EXPORT\+\_\+\+SYMBOL (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{mlx5__uar_8c_a3cf4542e9146d9d9a4dbb7fda99c2b4d}{mlx5\+\_\+cmd\+\_\+alloc\+\_\+uar}}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mlx5__uar_8c_ad491301c750318b07a0949782b6aa89f}\label{mlx5__uar_8c_ad491301c750318b07a0949782b6aa89f}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!EXPORT\_SYMBOL@{EXPORT\_SYMBOL}}
\index{EXPORT\_SYMBOL@{EXPORT\_SYMBOL}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{EXPORT\_SYMBOL()}{EXPORT\_SYMBOL()}\hspace{0.1cm}{\footnotesize\ttfamily [3/6]}}
{\footnotesize\ttfamily EXPORT\+\_\+\+SYMBOL (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{mlx5__uar_8c_a8abdcf1fba52dcd7db8dd5d7370c96a8}{mlx5\+\_\+cmd\+\_\+free\+\_\+uar}}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mlx5__uar_8c_a3e0d19cfe0f613f90659fd0f54a0a32e}\label{mlx5__uar_8c_a3e0d19cfe0f613f90659fd0f54a0a32e}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!EXPORT\_SYMBOL@{EXPORT\_SYMBOL}}
\index{EXPORT\_SYMBOL@{EXPORT\_SYMBOL}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{EXPORT\_SYMBOL()}{EXPORT\_SYMBOL()}\hspace{0.1cm}{\footnotesize\ttfamily [4/6]}}
{\footnotesize\ttfamily EXPORT\+\_\+\+SYMBOL (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{mlx5__uar_8c_adee537595fedf697ff978143068905cc}{mlx5\+\_\+free\+\_\+bfreg}}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mlx5__uar_8c_a302e57d4da27fbca4641d35ac6af38bb}\label{mlx5__uar_8c_a302e57d4da27fbca4641d35ac6af38bb}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!EXPORT\_SYMBOL@{EXPORT\_SYMBOL}}
\index{EXPORT\_SYMBOL@{EXPORT\_SYMBOL}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{EXPORT\_SYMBOL()}{EXPORT\_SYMBOL()}\hspace{0.1cm}{\footnotesize\ttfamily [5/6]}}
{\footnotesize\ttfamily EXPORT\+\_\+\+SYMBOL (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{mlx5__uar_8c_a76b81f015322a7417f58a515b7b6bd60}{mlx5\+\_\+get\+\_\+uars\+\_\+page}}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mlx5__uar_8c_a96ffece1496c2a56b7abf918e4289a39}\label{mlx5__uar_8c_a96ffece1496c2a56b7abf918e4289a39}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!EXPORT\_SYMBOL@{EXPORT\_SYMBOL}}
\index{EXPORT\_SYMBOL@{EXPORT\_SYMBOL}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{EXPORT\_SYMBOL()}{EXPORT\_SYMBOL()}\hspace{0.1cm}{\footnotesize\ttfamily [6/6]}}
{\footnotesize\ttfamily EXPORT\+\_\+\+SYMBOL (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{mlx5__uar_8c_a41357023a1da52f36274d9e307d1b7f4}{mlx5\+\_\+put\+\_\+uars\+\_\+page}}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mlx5__uar_8c_acc22567033ac3a25a5de0abe89795bec}\label{mlx5__uar_8c_acc22567033ac3a25a5de0abe89795bec}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!map\_offset@{map\_offset}}
\index{map\_offset@{map\_offset}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{map\_offset()}{map\_offset()}}
{\footnotesize\ttfamily static unsigned long map\+\_\+offset (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$}]{mdev,  }\item[{int}]{dbi }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5__uar_8c_source_l00193}{193}} of file \mbox{\hyperlink{mlx5__uar_8c_source}{mlx5\+\_\+uar.\+c}}.



References \mbox{\hyperlink{driver_8h_source_l00440}{mlx5\+\_\+uars\+\_\+page\+::mdev}}, \mbox{\hyperlink{device_8h_source_l00249}{MLX5\+\_\+\+ADAPTER\+\_\+\+PAGE\+\_\+\+SIZE}}, \mbox{\hyperlink{doorbell_8h_source_l00031}{MLX5\+\_\+\+BF\+\_\+\+OFFSET}}, \mbox{\hyperlink{device_8h_source_l00253}{MLX5\+\_\+\+BFREGS\+\_\+\+PER\+\_\+\+UAR}}, and \mbox{\hyperlink{device_8h_source_l01027}{MLX5\+\_\+\+CAP\+\_\+\+GEN}}.



Referenced by \mbox{\hyperlink{mlx5__uar_8c_source_l00203}{alloc\+\_\+bfreg()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_acc22567033ac3a25a5de0abe89795bec_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5__uar_8c_a654725775f68d9de65f8e84e953e98ea}\label{mlx5__uar_8c_a654725775f68d9de65f8e84e953e98ea}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!mlx5\_alloc\_bfreg@{mlx5\_alloc\_bfreg}}
\index{mlx5\_alloc\_bfreg@{mlx5\_alloc\_bfreg}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{mlx5\_alloc\_bfreg()}{mlx5\_alloc\_bfreg()}}
{\footnotesize\ttfamily int mlx5\+\_\+alloc\+\_\+bfreg (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$}]{mdev,  }\item[{struct \mbox{\hyperlink{structmlx5__sq__bfreg}{mlx5\+\_\+sq\+\_\+bfreg}} $\ast$}]{bfreg,  }\item[{bool}]{map\+\_\+wc,  }\item[{bool}]{fast\+\_\+path }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{mlx5__uar_8c_source_l00256}{256}} of file \mbox{\hyperlink{mlx5__uar_8c_source}{mlx5\+\_\+uar.\+c}}.



References \mbox{\hyperlink{mlx5__uar_8c_source_l00203}{alloc\+\_\+bfreg()}}, and \mbox{\hyperlink{en_8h_source_l00002}{bfreg}}.



Referenced by \mbox{\hyperlink{mlx5__ib__main_8c_source_l03308}{mlx5\+\_\+ib\+\_\+stage\+\_\+bfreg\+\_\+init()}}, and \mbox{\hyperlink{mlx5__en__main_8c_source_l03937}{mlx5e\+\_\+priv\+\_\+static\+\_\+init()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_a654725775f68d9de65f8e84e953e98ea_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_a654725775f68d9de65f8e84e953e98ea_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5__uar_8c_a3cf4542e9146d9d9a4dbb7fda99c2b4d}\label{mlx5__uar_8c_a3cf4542e9146d9d9a4dbb7fda99c2b4d}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!mlx5\_cmd\_alloc\_uar@{mlx5\_cmd\_alloc\_uar}}
\index{mlx5\_cmd\_alloc\_uar@{mlx5\_cmd\_alloc\_uar}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{mlx5\_cmd\_alloc\_uar()}{mlx5\_cmd\_alloc\_uar()}}
{\footnotesize\ttfamily int mlx5\+\_\+cmd\+\_\+alloc\+\_\+uar (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$}]{dev,  }\item[{u32 $\ast$}]{uarn }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{mlx5__uar_8c_source_l00037}{37}} of file \mbox{\hyperlink{mlx5__uar_8c_source}{mlx5\+\_\+uar.\+c}}.



References \mbox{\hyperlink{mlx5__cmd_8c_source_l01347}{mlx5\+\_\+cmd\+\_\+exec()}}, \mbox{\hyperlink{mlx5__ifc_8h_source_l00200}{MLX5\+\_\+\+CMD\+\_\+\+OP\+\_\+\+ALLOC\+\_\+\+UAR}}, \mbox{\hyperlink{device_8h_source_l00091}{MLX5\+\_\+\+GET}}, \mbox{\hyperlink{device_8h_source_l00073}{MLX5\+\_\+\+SET}}, and \mbox{\hyperlink{device_8h_source_l00065}{MLX5\+\_\+\+ST\+\_\+\+SZ\+\_\+\+DW}}.



Referenced by \mbox{\hyperlink{mlx5__uar_8c_source_l00095}{alloc\+\_\+uars\+\_\+page()}}, \mbox{\hyperlink{mlx5__ib__main_8c_source_l01168}{allocate\+\_\+uars()}}, and \mbox{\hyperlink{mlx5__ib__main_8c_source_l01542}{uar\+\_\+mmap()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_a3cf4542e9146d9d9a4dbb7fda99c2b4d_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_a3cf4542e9146d9d9a4dbb7fda99c2b4d_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5__uar_8c_a8abdcf1fba52dcd7db8dd5d7370c96a8}\label{mlx5__uar_8c_a8abdcf1fba52dcd7db8dd5d7370c96a8}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!mlx5\_cmd\_free\_uar@{mlx5\_cmd\_free\_uar}}
\index{mlx5\_cmd\_free\_uar@{mlx5\_cmd\_free\_uar}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{mlx5\_cmd\_free\_uar()}{mlx5\_cmd\_free\_uar()}}
{\footnotesize\ttfamily int mlx5\+\_\+cmd\+\_\+free\+\_\+uar (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$}]{dev,  }\item[{u32}]{uarn }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{mlx5__uar_8c_source_l00051}{51}} of file \mbox{\hyperlink{mlx5__uar_8c_source}{mlx5\+\_\+uar.\+c}}.



References \mbox{\hyperlink{mlx5__cmd_8c_source_l01347}{mlx5\+\_\+cmd\+\_\+exec()}}, \mbox{\hyperlink{mlx5__ifc_8h_source_l00201}{MLX5\+\_\+\+CMD\+\_\+\+OP\+\_\+\+DEALLOC\+\_\+\+UAR}}, \mbox{\hyperlink{device_8h_source_l00073}{MLX5\+\_\+\+SET}}, and \mbox{\hyperlink{device_8h_source_l00065}{MLX5\+\_\+\+ST\+\_\+\+SZ\+\_\+\+DW}}.



Referenced by \mbox{\hyperlink{mlx5__uar_8c_source_l00095}{alloc\+\_\+uars\+\_\+page()}}, \mbox{\hyperlink{mlx5__ib__main_8c_source_l01168}{allocate\+\_\+uars()}}, \mbox{\hyperlink{mlx5__ib__main_8c_source_l01196}{deallocate\+\_\+uars()}}, \mbox{\hyperlink{mlx5__ib__main_8c_source_l01526}{mlx5\+\_\+ib\+\_\+mmap\+\_\+free()}}, \mbox{\hyperlink{mlx5__ib__main_8c_source_l01542}{uar\+\_\+mmap()}}, and \mbox{\hyperlink{mlx5__uar_8c_source_l00082}{up\+\_\+rel\+\_\+func()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_a8abdcf1fba52dcd7db8dd5d7370c96a8_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_a8abdcf1fba52dcd7db8dd5d7370c96a8_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5__uar_8c_adee537595fedf697ff978143068905cc}\label{mlx5__uar_8c_adee537595fedf697ff978143068905cc}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!mlx5\_free\_bfreg@{mlx5\_free\_bfreg}}
\index{mlx5\_free\_bfreg@{mlx5\_free\_bfreg}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{mlx5\_free\_bfreg()}{mlx5\_free\_bfreg()}}
{\footnotesize\ttfamily void mlx5\+\_\+free\+\_\+bfreg (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$}]{mdev,  }\item[{struct \mbox{\hyperlink{structmlx5__sq__bfreg}{mlx5\+\_\+sq\+\_\+bfreg}} $\ast$}]{bfreg }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{mlx5__uar_8c_source_l00288}{288}} of file \mbox{\hyperlink{mlx5__uar_8c_source}{mlx5\+\_\+uar.\+c}}.



References \mbox{\hyperlink{mlx5__uar_8c_source_l00272}{addr\+\_\+to\+\_\+dbi\+\_\+in\+\_\+syspage()}}, \mbox{\hyperlink{en_8h_source_l00002}{bfreg}}, \mbox{\hyperlink{driver_8h_source_l00624}{mlx5\+\_\+priv\+::bfregs}}, \mbox{\hyperlink{driver_8h_source_l00438}{mlx5\+\_\+uars\+\_\+page\+::fp\+\_\+avail}}, \mbox{\hyperlink{driver_8h_source_l00436}{mlx5\+\_\+uars\+\_\+page\+::fp\+\_\+bitmap}}, \mbox{\hyperlink{driver_8h_source_l00433}{mlx5\+\_\+uars\+\_\+page\+::list}}, \mbox{\hyperlink{driver_8h_source_l00446}{mlx5\+\_\+bfreg\+\_\+head\+::list}}, \mbox{\hyperlink{driver_8h_source_l00445}{mlx5\+\_\+bfreg\+\_\+head\+::lock}}, \mbox{\hyperlink{en_8h_source_l00001}{lock}}, \mbox{\hyperlink{device_8h_source_l00253}{MLX5\+\_\+\+BFREGS\+\_\+\+PER\+\_\+\+UAR}}, \mbox{\hyperlink{device_8h_source_l00255}{MLX5\+\_\+\+NON\+\_\+\+FP\+\_\+\+BFREGS\+\_\+\+PER\+\_\+\+UAR}}, \mbox{\hyperlink{driver_8h_source_l00681}{mlx5\+\_\+core\+\_\+dev\+::priv}}, \mbox{\hyperlink{driver_8h_source_l00439}{mlx5\+\_\+uars\+\_\+page\+::ref\+\_\+count}}, \mbox{\hyperlink{driver_8h_source_l00437}{mlx5\+\_\+uars\+\_\+page\+::reg\+\_\+avail}}, \mbox{\hyperlink{driver_8h_source_l00435}{mlx5\+\_\+uars\+\_\+page\+::reg\+\_\+bitmap}}, \mbox{\hyperlink{driver_8h_source_l00450}{mlx5\+\_\+bfreg\+\_\+data\+::reg\+\_\+head}}, \mbox{\hyperlink{driver_8h_source_l00456}{mlx5\+\_\+sq\+\_\+bfreg\+::up}}, \mbox{\hyperlink{mlx5__uar_8c_source_l00082}{up\+\_\+rel\+\_\+func()}}, \mbox{\hyperlink{driver_8h_source_l00457}{mlx5\+\_\+sq\+\_\+bfreg\+::wc}}, and \mbox{\hyperlink{driver_8h_source_l00451}{mlx5\+\_\+bfreg\+\_\+data\+::wc\+\_\+head}}.



Referenced by \mbox{\hyperlink{mlx5__ib__main_8c_source_l03331}{mlx5\+\_\+ib\+\_\+stage\+\_\+bfreg\+\_\+cleanup()}}, \mbox{\hyperlink{mlx5__ib__main_8c_source_l03308}{mlx5\+\_\+ib\+\_\+stage\+\_\+bfreg\+\_\+init()}}, \mbox{\hyperlink{mlx5__en__main_8c_source_l03970}{mlx5e\+\_\+priv\+\_\+static\+\_\+destroy()}}, and \mbox{\hyperlink{mlx5__en__main_8c_source_l03937}{mlx5e\+\_\+priv\+\_\+static\+\_\+init()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_adee537595fedf697ff978143068905cc_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_adee537595fedf697ff978143068905cc_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5__uar_8c_a76b81f015322a7417f58a515b7b6bd60}\label{mlx5__uar_8c_a76b81f015322a7417f58a515b7b6bd60}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!mlx5\_get\_uars\_page@{mlx5\_get\_uars\_page}}
\index{mlx5\_get\_uars\_page@{mlx5\_get\_uars\_page}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{mlx5\_get\_uars\_page()}{mlx5\_get\_uars\_page()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structmlx5__uars__page}{mlx5\+\_\+uars\+\_\+page}} $\ast$ mlx5\+\_\+get\+\_\+uars\+\_\+page (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$}]{mdev }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{mlx5__uar_8c_source_l00163}{163}} of file \mbox{\hyperlink{mlx5__uar_8c_source}{mlx5\+\_\+uar.\+c}}.



References \mbox{\hyperlink{mlx5__uar_8c_source_l00095}{alloc\+\_\+uars\+\_\+page()}}, \mbox{\hyperlink{driver_8h_source_l00624}{mlx5\+\_\+priv\+::bfregs}}, \mbox{\hyperlink{driver_8h_source_l00433}{mlx5\+\_\+uars\+\_\+page\+::list}}, \mbox{\hyperlink{driver_8h_source_l00446}{mlx5\+\_\+bfreg\+\_\+head\+::list}}, \mbox{\hyperlink{driver_8h_source_l00445}{mlx5\+\_\+bfreg\+\_\+head\+::lock}}, \mbox{\hyperlink{driver_8h_source_l00440}{mlx5\+\_\+uars\+\_\+page\+::mdev}}, \mbox{\hyperlink{driver_8h_source_l00681}{mlx5\+\_\+core\+\_\+dev\+::priv}}, \mbox{\hyperlink{driver_8h_source_l00439}{mlx5\+\_\+uars\+\_\+page\+::ref\+\_\+count}}, and \mbox{\hyperlink{driver_8h_source_l00450}{mlx5\+\_\+bfreg\+\_\+data\+::reg\+\_\+head}}.



Referenced by \mbox{\hyperlink{mlx5fpga__conn_8c_source_l00990}{mlx5\+\_\+fpga\+\_\+conn\+\_\+device\+\_\+init()}}, and \mbox{\hyperlink{mlx5__main_8c_source_l01035}{mlx5\+\_\+load\+\_\+one()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_a76b81f015322a7417f58a515b7b6bd60_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_a76b81f015322a7417f58a515b7b6bd60_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5__uar_8c_a41357023a1da52f36274d9e307d1b7f4}\label{mlx5__uar_8c_a41357023a1da52f36274d9e307d1b7f4}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!mlx5\_put\_uars\_page@{mlx5\_put\_uars\_page}}
\index{mlx5\_put\_uars\_page@{mlx5\_put\_uars\_page}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{mlx5\_put\_uars\_page()}{mlx5\_put\_uars\_page()}}
{\footnotesize\ttfamily void mlx5\+\_\+put\+\_\+uars\+\_\+page (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$}]{mdev,  }\item[{struct \mbox{\hyperlink{structmlx5__uars__page}{mlx5\+\_\+uars\+\_\+page}} $\ast$}]{up }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{mlx5__uar_8c_source_l00185}{185}} of file \mbox{\hyperlink{mlx5__uar_8c_source}{mlx5\+\_\+uar.\+c}}.



References \mbox{\hyperlink{driver_8h_source_l00624}{mlx5\+\_\+priv\+::bfregs}}, \mbox{\hyperlink{driver_8h_source_l00445}{mlx5\+\_\+bfreg\+\_\+head\+::lock}}, \mbox{\hyperlink{driver_8h_source_l00440}{mlx5\+\_\+uars\+\_\+page\+::mdev}}, \mbox{\hyperlink{driver_8h_source_l00681}{mlx5\+\_\+core\+\_\+dev\+::priv}}, \mbox{\hyperlink{driver_8h_source_l00439}{mlx5\+\_\+uars\+\_\+page\+::ref\+\_\+count}}, \mbox{\hyperlink{driver_8h_source_l00450}{mlx5\+\_\+bfreg\+\_\+data\+::reg\+\_\+head}}, and \mbox{\hyperlink{mlx5__uar_8c_source_l00082}{up\+\_\+rel\+\_\+func()}}.



Referenced by \mbox{\hyperlink{mlx5fpga__conn_8c_source_l01036}{mlx5\+\_\+fpga\+\_\+conn\+\_\+device\+\_\+cleanup()}}, \mbox{\hyperlink{mlx5fpga__conn_8c_source_l00990}{mlx5\+\_\+fpga\+\_\+conn\+\_\+device\+\_\+init()}}, \mbox{\hyperlink{mlx5__main_8c_source_l01035}{mlx5\+\_\+load\+\_\+one()}}, and \mbox{\hyperlink{mlx5__main_8c_source_l01256}{mlx5\+\_\+unload\+\_\+one()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_a41357023a1da52f36274d9e307d1b7f4_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_a41357023a1da52f36274d9e307d1b7f4_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5__uar_8c_afa3b68222cef553e11915e54b78b3359}\label{mlx5__uar_8c_afa3b68222cef553e11915e54b78b3359}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!uar2pfn@{uar2pfn}}
\index{uar2pfn@{uar2pfn}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{uar2pfn()}{uar2pfn()}}
{\footnotesize\ttfamily static u64 uar2pfn (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$}]{mdev,  }\item[{u32}]{index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5__uar_8c_source_l00070}{70}} of file \mbox{\hyperlink{mlx5__uar_8c_source}{mlx5\+\_\+uar.\+c}}.



References \mbox{\hyperlink{device_8h_source_l00248}{MLX5\+\_\+\+ADAPTER\+\_\+\+PAGE\+\_\+\+SHIFT}}, \mbox{\hyperlink{device_8h_source_l01027}{MLX5\+\_\+\+CAP\+\_\+\+GEN}}, and \mbox{\hyperlink{driver_8h_source_l00657}{mlx5\+\_\+core\+\_\+dev\+::pdev}}.



Referenced by \mbox{\hyperlink{mlx5__uar_8c_source_l00095}{alloc\+\_\+uars\+\_\+page()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_afa3b68222cef553e11915e54b78b3359_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5__uar_8c_a14e9481e95da5425e6ba6cb4edbd8ec2}\label{mlx5__uar_8c_a14e9481e95da5425e6ba6cb4edbd8ec2}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!uars\_per\_sys\_page@{uars\_per\_sys\_page}}
\index{uars\_per\_sys\_page@{uars\_per\_sys\_page}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{uars\_per\_sys\_page()}{uars\_per\_sys\_page()}}
{\footnotesize\ttfamily static int uars\+\_\+per\+\_\+sys\+\_\+page (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__core__dev}{mlx5\+\_\+core\+\_\+dev}} $\ast$}]{mdev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5__uar_8c_source_l00062}{62}} of file \mbox{\hyperlink{mlx5__uar_8c_source}{mlx5\+\_\+uar.\+c}}.



References \mbox{\hyperlink{device_8h_source_l01027}{MLX5\+\_\+\+CAP\+\_\+\+GEN}}.



Referenced by \mbox{\hyperlink{mlx5__uar_8c_source_l00095}{alloc\+\_\+uars\+\_\+page()}}, \mbox{\hyperlink{mlx5__ib__main_8c_source_l01121}{calc\+\_\+dynamic\+\_\+bfregs()}}, and \mbox{\hyperlink{mlx5__ib__main_8c_source_l01130}{calc\+\_\+total\+\_\+bfregs()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_a14e9481e95da5425e6ba6cb4edbd8ec2_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5__uar_8c_acf583145e7e3ee08aacd2737caac82d5}\label{mlx5__uar_8c_acf583145e7e3ee08aacd2737caac82d5}} 
\index{mlx5\_uar.c@{mlx5\_uar.c}!up\_rel\_func@{up\_rel\_func}}
\index{up\_rel\_func@{up\_rel\_func}!mlx5\_uar.c@{mlx5\_uar.c}}
\doxysubsubsection{\texorpdfstring{up\_rel\_func()}{up\_rel\_func()}}
{\footnotesize\ttfamily static void up\+\_\+rel\+\_\+func (\begin{DoxyParamCaption}\item[{struct kref $\ast$}]{kref }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5__uar_8c_source_l00082}{82}} of file \mbox{\hyperlink{mlx5__uar_8c_source}{mlx5\+\_\+uar.\+c}}.



References \mbox{\hyperlink{driver_8h_source_l00436}{mlx5\+\_\+uars\+\_\+page\+::fp\+\_\+bitmap}}, \mbox{\hyperlink{driver_8h_source_l00432}{mlx5\+\_\+uars\+\_\+page\+::index}}, \mbox{\hyperlink{driver_8h_source_l00433}{mlx5\+\_\+uars\+\_\+page\+::list}}, \mbox{\hyperlink{driver_8h_source_l00430}{mlx5\+\_\+uars\+\_\+page\+::map}}, \mbox{\hyperlink{driver_8h_source_l00440}{mlx5\+\_\+uars\+\_\+page\+::mdev}}, \mbox{\hyperlink{mlx5__uar_8c_source_l00051}{mlx5\+\_\+cmd\+\_\+free\+\_\+uar()}}, \mbox{\hyperlink{mlx5__core_8h_source_l00061}{mlx5\+\_\+core\+\_\+warn}}, \mbox{\hyperlink{driver_8h_source_l00439}{mlx5\+\_\+uars\+\_\+page\+::ref\+\_\+count}}, and \mbox{\hyperlink{driver_8h_source_l00435}{mlx5\+\_\+uars\+\_\+page\+::reg\+\_\+bitmap}}.



Referenced by \mbox{\hyperlink{mlx5__uar_8c_source_l00288}{mlx5\+\_\+free\+\_\+bfreg()}}, and \mbox{\hyperlink{mlx5__uar_8c_source_l00185}{mlx5\+\_\+put\+\_\+uars\+\_\+page()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_acf583145e7e3ee08aacd2737caac82d5_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc/d8d/mlx5__uar_8c_acf583145e7e3ee08aacd2737caac82d5_icgraph}
\end{center}
\end{figure}
