\hypertarget{mlx5fpga__tools__char_8c}{}\doxysection{dev/mlx5/mlx5\+\_\+fpga\+\_\+tools/mlx5fpga\+\_\+tools\+\_\+char.c File Reference}
\label{mlx5fpga__tools__char_8c}\index{dev/mlx5/mlx5\_fpga\_tools/mlx5fpga\_tools\_char.c@{dev/mlx5/mlx5\_fpga\_tools/mlx5fpga\_tools\_char.c}}
{\ttfamily \#include $<$sys/param.\+h$>$}\newline
{\ttfamily \#include $<$sys/systm.\+h$>$}\newline
{\ttfamily \#include $<$sys/conf.\+h$>$}\newline
{\ttfamily \#include $<$dev/mlx5/mlx5io.\+h$>$}\newline
{\ttfamily \#include $<$dev/mlx5/mlx5\+\_\+fpga\+\_\+tools/tools\+\_\+char.\+h$>$}\newline
Include dependency graph for mlx5fpga\+\_\+tools\+\_\+char.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d1/d39/mlx5fpga__tools__char_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structtools__context}{tools\+\_\+context}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{mlx5fpga__tools__char_8c_aea3cfda4f3a9f978ec759f206cf186fe}{CHUNK\+\_\+\+SIZE}}~(128 $\ast$ 1024)
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static void \mbox{\hyperlink{mlx5fpga__tools__char_8c_af2a89b0ce6a1f3d02510eb50965340be}{tools\+\_\+char\+\_\+ctx\+\_\+dtor}} (void $\ast$\mbox{\hyperlink{mlx5__en__tx_8c_af943c26117683b64b9cd6943e2c496e5}{data}})
\item 
static int \mbox{\hyperlink{mlx5fpga__tools__char_8c_a7fcdadce87dd800a77774599cdc217ab}{tools\+\_\+char\+\_\+open}} (struct cdev $\ast$dev, int oflags, int devtype, struct thread $\ast$td)
\item 
static int \mbox{\hyperlink{mlx5fpga__tools__char_8c_a5b4017c2ee4db6477573af4f12a210cf}{mem\+\_\+read}} (struct \mbox{\hyperlink{structmlx5__fpga__tools__dev}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev}} $\ast$tdev, void $\ast$buf, size\+\_\+t count, u64 address, enum \mbox{\hyperlink{mlx5io_8h_a3dfefb3a6f72bdc66a27282031d1350b}{mlx5\+\_\+fpga\+\_\+access\+\_\+type}} access\+\_\+type, size\+\_\+t $\ast$retcnt)
\item 
static int \mbox{\hyperlink{mlx5fpga__tools__char_8c_ae458d53f314efabecbef10f6f58357b3}{mem\+\_\+write}} (struct \mbox{\hyperlink{structmlx5__fpga__tools__dev}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev}} $\ast$tdev, void $\ast$buf, size\+\_\+t count, u64 address, enum \mbox{\hyperlink{mlx5io_8h_a3dfefb3a6f72bdc66a27282031d1350b}{mlx5\+\_\+fpga\+\_\+access\+\_\+type}} access\+\_\+type, size\+\_\+t $\ast$retcnt)
\item 
static void \mbox{\hyperlink{mlx5fpga__tools__char_8c_a2ceddc830a9e4ebf4de57e7518b19ac7}{tools\+\_\+char\+\_\+llseek}} (struct \mbox{\hyperlink{structtools__context}{tools\+\_\+context}} $\ast$context, struct uio $\ast$uio, ssize\+\_\+t $\ast$len)
\item 
static int \mbox{\hyperlink{mlx5fpga__tools__char_8c_a536c39122e573bc00b6242af5c82ef9d}{tools\+\_\+char\+\_\+read}} (struct cdev $\ast$dev, struct uio $\ast$uio, int ioflag)
\item 
static int \mbox{\hyperlink{mlx5fpga__tools__char_8c_a2132acbe78eb1d35482cef3a9f7a7227}{tools\+\_\+char\+\_\+write}} (struct cdev $\ast$dev, struct uio $\ast$uio, int ioflag)
\item 
\mbox{\hyperlink{mlx5fpga__tools__char_8c_a164df1937f75d7dbf4b9a3f369203d22}{CTASSERT}} (\mbox{\hyperlink{mlx5io_8h_a93efc072ca718fe70be5c4074f893b3d}{MLX5\+\_\+\+FPGA\+\_\+\+CAP\+\_\+\+ARR\+\_\+\+SZ}}==\mbox{\hyperlink{device_8h_a2bdfa104f3d7c0635b984382d1562741}{MLX5\+\_\+\+ST\+\_\+\+SZ\+\_\+\+DW}}(fpga\+\_\+cap))
\item 
static int \mbox{\hyperlink{mlx5fpga__tools__char_8c_a76daf0e51f691a26b896fd8f83cf3ef6}{tools\+\_\+char\+\_\+ioctl}} (struct cdev $\ast$dev, u\+\_\+long cmd, caddr\+\_\+t \mbox{\hyperlink{mlx5__en__tx_8c_af943c26117683b64b9cd6943e2c496e5}{data}}, int fflag, struct thread $\ast$td)
\item 
int \mbox{\hyperlink{mlx5fpga__tools__char_8c_aed301af06830b6d9c79276b62c495d62}{mlx5\+\_\+fpga\+\_\+tools\+\_\+char\+\_\+add\+\_\+one}} (struct \mbox{\hyperlink{structmlx5__fpga__tools__dev}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev}} $\ast$tdev)
\item 
void \mbox{\hyperlink{mlx5fpga__tools__char_8c_ae493128112d662eb60813c651bd01012}{mlx5\+\_\+fpga\+\_\+tools\+\_\+char\+\_\+remove\+\_\+one}} (struct \mbox{\hyperlink{structmlx5__fpga__tools__dev}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev}} $\ast$tdev)
\item 
int \mbox{\hyperlink{mlx5fpga__tools__char_8c_a3dff62f3ca59225589c7bb03c8bccf31}{mlx5\+\_\+fpga\+\_\+tools\+\_\+char\+\_\+init}} (void)
\item 
void \mbox{\hyperlink{mlx5fpga__tools__char_8c_a10b49528545e5ccbb0e538803c39a32b}{mlx5\+\_\+fpga\+\_\+tools\+\_\+char\+\_\+deinit}} (void)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static struct cdevsw \mbox{\hyperlink{mlx5fpga__tools__char_8c_a30b96e9ae600f3bb8b8de507ff498e18}{mlx5\+\_\+tools\+\_\+char\+\_\+cdevsw}}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{mlx5fpga__tools__char_8c_aea3cfda4f3a9f978ec759f206cf186fe}\label{mlx5fpga__tools__char_8c_aea3cfda4f3a9f978ec759f206cf186fe}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!CHUNK\_SIZE@{CHUNK\_SIZE}}
\index{CHUNK\_SIZE@{CHUNK\_SIZE}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{CHUNK\_SIZE}{CHUNK\_SIZE}}
{\footnotesize\ttfamily \#define CHUNK\+\_\+\+SIZE~(128 $\ast$ 1024)}



Definition at line \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00041}{41}} of file \mbox{\hyperlink{mlx5fpga__tools__char_8c_source}{mlx5fpga\+\_\+tools\+\_\+char.\+c}}.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{mlx5fpga__tools__char_8c_a164df1937f75d7dbf4b9a3f369203d22}\label{mlx5fpga__tools__char_8c_a164df1937f75d7dbf4b9a3f369203d22}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!CTASSERT@{CTASSERT}}
\index{CTASSERT@{CTASSERT}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{CTASSERT()}{CTASSERT()}}
{\footnotesize\ttfamily CTASSERT (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{mlx5io_8h_a93efc072ca718fe70be5c4074f893b3d}{MLX5\+\_\+\+FPGA\+\_\+\+CAP\+\_\+\+ARR\+\_\+\+SZ}}}]{ = {\ttfamily =\mbox{\hyperlink{device_8h_a2bdfa104f3d7c0635b984382d1562741}{MLX5\+\_\+\+ST\+\_\+\+SZ\+\_\+\+DW}}(fpga\+\_\+cap)} }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mlx5fpga__tools__char_8c_a5b4017c2ee4db6477573af4f12a210cf}\label{mlx5fpga__tools__char_8c_a5b4017c2ee4db6477573af4f12a210cf}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!mem\_read@{mem\_read}}
\index{mem\_read@{mem\_read}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{mem\_read()}{mem\_read()}}
{\footnotesize\ttfamily static int mem\+\_\+read (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__fpga__tools__dev}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev}} $\ast$}]{tdev,  }\item[{void $\ast$}]{buf,  }\item[{size\+\_\+t}]{count,  }\item[{u64}]{address,  }\item[{enum \mbox{\hyperlink{mlx5io_8h_a3dfefb3a6f72bdc66a27282031d1350b}{mlx5\+\_\+fpga\+\_\+access\+\_\+type}}}]{access\+\_\+type,  }\item[{size\+\_\+t $\ast$}]{retcnt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00068}{68}} of file \mbox{\hyperlink{mlx5fpga__tools__char_8c_source}{mlx5fpga\+\_\+tools\+\_\+char.\+c}}.



References \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00045}{tools\+\_\+context\+::access\+\_\+type}}, \mbox{\hyperlink{tools_8h_source_l00049}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev\+::fdev}}, \mbox{\hyperlink{tools_8h_source_l00052}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev\+::lock}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00529}{mlx5\+\_\+fpga\+\_\+dev()}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00195}{mlx5\+\_\+fpga\+\_\+mem\+\_\+read()}}, and \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00044}{tools\+\_\+context\+::tdev}}.



Referenced by \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00133}{tools\+\_\+char\+\_\+read()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dd/db0/mlx5fpga__tools__char_8c_a5b4017c2ee4db6477573af4f12a210cf_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=279pt]{dd/db0/mlx5fpga__tools__char_8c_a5b4017c2ee4db6477573af4f12a210cf_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5fpga__tools__char_8c_ae458d53f314efabecbef10f6f58357b3}\label{mlx5fpga__tools__char_8c_ae458d53f314efabecbef10f6f58357b3}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!mem\_write@{mem\_write}}
\index{mem\_write@{mem\_write}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{mem\_write()}{mem\_write()}}
{\footnotesize\ttfamily static int mem\+\_\+write (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__fpga__tools__dev}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev}} $\ast$}]{tdev,  }\item[{void $\ast$}]{buf,  }\item[{size\+\_\+t}]{count,  }\item[{u64}]{address,  }\item[{enum \mbox{\hyperlink{mlx5io_8h_a3dfefb3a6f72bdc66a27282031d1350b}{mlx5\+\_\+fpga\+\_\+access\+\_\+type}}}]{access\+\_\+type,  }\item[{size\+\_\+t $\ast$}]{retcnt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00089}{89}} of file \mbox{\hyperlink{mlx5fpga__tools__char_8c_source}{mlx5fpga\+\_\+tools\+\_\+char.\+c}}.



References \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00045}{tools\+\_\+context\+::access\+\_\+type}}, \mbox{\hyperlink{tools_8h_source_l00049}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev\+::fdev}}, \mbox{\hyperlink{tools_8h_source_l00052}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev\+::lock}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00529}{mlx5\+\_\+fpga\+\_\+dev()}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00228}{mlx5\+\_\+fpga\+\_\+mem\+\_\+write()}}, and \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00044}{tools\+\_\+context\+::tdev}}.



Referenced by \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00161}{tools\+\_\+char\+\_\+write()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dd/db0/mlx5fpga__tools__char_8c_ae458d53f314efabecbef10f6f58357b3_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=285pt]{dd/db0/mlx5fpga__tools__char_8c_ae458d53f314efabecbef10f6f58357b3_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5fpga__tools__char_8c_aed301af06830b6d9c79276b62c495d62}\label{mlx5fpga__tools__char_8c_aed301af06830b6d9c79276b62c495d62}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!mlx5\_fpga\_tools\_char\_add\_one@{mlx5\_fpga\_tools\_char\_add\_one}}
\index{mlx5\_fpga\_tools\_char\_add\_one@{mlx5\_fpga\_tools\_char\_add\_one}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{mlx5\_fpga\_tools\_char\_add\_one()}{mlx5\_fpga\_tools\_char\_add\_one()}}
{\footnotesize\ttfamily int mlx5\+\_\+fpga\+\_\+tools\+\_\+char\+\_\+add\+\_\+one (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__fpga__tools__dev}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev}} $\ast$}]{tdev }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00290}{290}} of file \mbox{\hyperlink{mlx5fpga__tools__char_8c_source}{mlx5fpga\+\_\+tools\+\_\+char.\+c}}.



References \mbox{\hyperlink{tools_8h_source_l00055}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev\+::char\+\_\+device}}, \mbox{\hyperlink{tools_8h_source_l00049}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev\+::fdev}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00529}{mlx5\+\_\+fpga\+\_\+dev()}}, \mbox{\hyperlink{mlx5io_8h_source_l00157}{MLX5\+\_\+\+FPGA\+\_\+\+TOOLS\+\_\+\+NAME\+\_\+\+SUFFIX}}, and \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00280}{mlx5\+\_\+tools\+\_\+char\+\_\+cdevsw}}.



Referenced by \mbox{\hyperlink{mlx5fpga__tools__main_8c_source_l00062}{mlx5\+\_\+fpga\+\_\+tools\+\_\+alloc()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=332pt]{dd/db0/mlx5fpga__tools__char_8c_aed301af06830b6d9c79276b62c495d62_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dd/db0/mlx5fpga__tools__char_8c_aed301af06830b6d9c79276b62c495d62_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5fpga__tools__char_8c_a10b49528545e5ccbb0e538803c39a32b}\label{mlx5fpga__tools__char_8c_a10b49528545e5ccbb0e538803c39a32b}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!mlx5\_fpga\_tools\_char\_deinit@{mlx5\_fpga\_tools\_char\_deinit}}
\index{mlx5\_fpga\_tools\_char\_deinit@{mlx5\_fpga\_tools\_char\_deinit}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{mlx5\_fpga\_tools\_char\_deinit()}{mlx5\_fpga\_tools\_char\_deinit()}}
{\footnotesize\ttfamily void mlx5\+\_\+fpga\+\_\+tools\+\_\+char\+\_\+deinit (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00338}{338}} of file \mbox{\hyperlink{mlx5fpga__tools__char_8c_source}{mlx5fpga\+\_\+tools\+\_\+char.\+c}}.



Referenced by \mbox{\hyperlink{mlx5fpga__tools__main_8c_source_l00136}{mlx5\+\_\+fpga\+\_\+tools\+\_\+exit()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dd/db0/mlx5fpga__tools__char_8c_a10b49528545e5ccbb0e538803c39a32b_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5fpga__tools__char_8c_a3dff62f3ca59225589c7bb03c8bccf31}\label{mlx5fpga__tools__char_8c_a3dff62f3ca59225589c7bb03c8bccf31}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!mlx5\_fpga\_tools\_char\_init@{mlx5\_fpga\_tools\_char\_init}}
\index{mlx5\_fpga\_tools\_char\_init@{mlx5\_fpga\_tools\_char\_init}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{mlx5\_fpga\_tools\_char\_init()}{mlx5\_fpga\_tools\_char\_init()}}
{\footnotesize\ttfamily int mlx5\+\_\+fpga\+\_\+tools\+\_\+char\+\_\+init (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00331}{331}} of file \mbox{\hyperlink{mlx5fpga__tools__char_8c_source}{mlx5fpga\+\_\+tools\+\_\+char.\+c}}.



Referenced by \mbox{\hyperlink{mlx5fpga__tools__main_8c_source_l00126}{mlx5\+\_\+fpga\+\_\+tools\+\_\+init()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dd/db0/mlx5fpga__tools__char_8c_a3dff62f3ca59225589c7bb03c8bccf31_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5fpga__tools__char_8c_ae493128112d662eb60813c651bd01012}\label{mlx5fpga__tools__char_8c_ae493128112d662eb60813c651bd01012}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!mlx5\_fpga\_tools\_char\_remove\_one@{mlx5\_fpga\_tools\_char\_remove\_one}}
\index{mlx5\_fpga\_tools\_char\_remove\_one@{mlx5\_fpga\_tools\_char\_remove\_one}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{mlx5\_fpga\_tools\_char\_remove\_one()}{mlx5\_fpga\_tools\_char\_remove\_one()}}
{\footnotesize\ttfamily void mlx5\+\_\+fpga\+\_\+tools\+\_\+char\+\_\+remove\+\_\+one (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmlx5__fpga__tools__dev}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev}} $\ast$}]{tdev }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00322}{322}} of file \mbox{\hyperlink{mlx5fpga__tools__char_8c_source}{mlx5fpga\+\_\+tools\+\_\+char.\+c}}.



References \mbox{\hyperlink{tools_8h_source_l00055}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev\+::char\+\_\+device}}, \mbox{\hyperlink{tools_8h_source_l00049}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev\+::fdev}}, and \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00529}{mlx5\+\_\+fpga\+\_\+dev()}}.



Referenced by \mbox{\hyperlink{mlx5fpga__tools__main_8c_source_l00087}{mlx5\+\_\+fpga\+\_\+tools\+\_\+free()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=332pt]{dd/db0/mlx5fpga__tools__char_8c_ae493128112d662eb60813c651bd01012_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dd/db0/mlx5fpga__tools__char_8c_ae493128112d662eb60813c651bd01012_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5fpga__tools__char_8c_af2a89b0ce6a1f3d02510eb50965340be}\label{mlx5fpga__tools__char_8c_af2a89b0ce6a1f3d02510eb50965340be}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!tools\_char\_ctx\_dtor@{tools\_char\_ctx\_dtor}}
\index{tools\_char\_ctx\_dtor@{tools\_char\_ctx\_dtor}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{tools\_char\_ctx\_dtor()}{tools\_char\_ctx\_dtor()}}
{\footnotesize\ttfamily static void tools\+\_\+char\+\_\+ctx\+\_\+dtor (\begin{DoxyParamCaption}\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00049}{49}} of file \mbox{\hyperlink{mlx5fpga__tools__char_8c_source}{mlx5fpga\+\_\+tools\+\_\+char.\+c}}.



References \mbox{\hyperlink{mlx5__en__tx_8c_source_l00001}{data}}.



Referenced by \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00056}{tools\+\_\+char\+\_\+open()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{dd/db0/mlx5fpga__tools__char_8c_af2a89b0ce6a1f3d02510eb50965340be_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5fpga__tools__char_8c_a76daf0e51f691a26b896fd8f83cf3ef6}\label{mlx5fpga__tools__char_8c_a76daf0e51f691a26b896fd8f83cf3ef6}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!tools\_char\_ioctl@{tools\_char\_ioctl}}
\index{tools\_char\_ioctl@{tools\_char\_ioctl}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{tools\_char\_ioctl()}{tools\_char\_ioctl()}}
{\footnotesize\ttfamily static int tools\+\_\+char\+\_\+ioctl (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{u\+\_\+long}]{cmd,  }\item[{caddr\+\_\+t}]{data,  }\item[{int}]{fflag,  }\item[{struct thread $\ast$}]{td }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00197}{197}} of file \mbox{\hyperlink{mlx5fpga__tools__char_8c_source}{mlx5fpga\+\_\+tools\+\_\+char.\+c}}.



References \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00045}{tools\+\_\+context\+::access\+\_\+type}}, \mbox{\hyperlink{mlx5__en__tx_8c_source_l00001}{data}}, \mbox{\hyperlink{tools_8h_source_l00049}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev\+::fdev}}, \mbox{\hyperlink{mlx5io_8h_source_l00147}{MLX5\+\_\+\+FPGA\+\_\+\+ACCESS\+\_\+\+TYPE}}, \mbox{\hyperlink{mlx5io_8h_source_l00127}{MLX5\+\_\+\+FPGA\+\_\+\+ACCESS\+\_\+\+TYPE\+\_\+\+MAX}}, \mbox{\hyperlink{mlx5io_8h_source_l00152}{MLX5\+\_\+\+FPGA\+\_\+\+CAP}}, \mbox{\hyperlink{mlx5io_8h_source_l00154}{MLX5\+\_\+\+FPGA\+\_\+\+CONNECT}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00496}{mlx5\+\_\+fpga\+\_\+connectdisconnect()}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00529}{mlx5\+\_\+fpga\+\_\+dev()}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00314}{mlx5\+\_\+fpga\+\_\+device\+\_\+query()}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00366}{mlx5\+\_\+fpga\+\_\+device\+\_\+reload()}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00468}{mlx5\+\_\+fpga\+\_\+flash\+\_\+select()}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00535}{mlx5\+\_\+fpga\+\_\+get\+\_\+cap()}}, \mbox{\hyperlink{mlx5io_8h_source_l00085}{MLX5\+\_\+\+FPGA\+\_\+\+IMAGE\+\_\+\+FACTORY}}, \mbox{\hyperlink{mlx5io_8h_source_l00088}{MLX5\+\_\+\+FPGA\+\_\+\+IMAGE\+\_\+\+RELOAD}}, \mbox{\hyperlink{mlx5io_8h_source_l00087}{MLX5\+\_\+\+FPGA\+\_\+\+IMAGE\+\_\+\+RESET}}, \mbox{\hyperlink{mlx5io_8h_source_l00150}{MLX5\+\_\+\+FPGA\+\_\+\+IMAGE\+\_\+\+SEL}}, \mbox{\hyperlink{mlx5io_8h_source_l00148}{MLX5\+\_\+\+FPGA\+\_\+\+LOAD}}, \mbox{\hyperlink{mlx5io_8h_source_l00151}{MLX5\+\_\+\+FPGA\+\_\+\+QUERY}}, \mbox{\hyperlink{mlx5io_8h_source_l00155}{MLX5\+\_\+\+FPGA\+\_\+\+RELOAD}}, \mbox{\hyperlink{mlx5io_8h_source_l00149}{MLX5\+\_\+\+FPGA\+\_\+\+RESET}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00522}{mlx5\+\_\+fpga\+\_\+temperature()}}, \mbox{\hyperlink{mlx5io_8h_source_l00153}{MLX5\+\_\+\+FPGA\+\_\+\+TEMPERATURE}}, \mbox{\hyperlink{device_8h_source_l00065}{MLX5\+\_\+\+ST\+\_\+\+SZ\+\_\+\+DW}}, \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00044}{tools\+\_\+context\+::tdev}}, and \mbox{\hyperlink{mlx5io_8h_source_l00134}{mlx5\+\_\+fpga\+\_\+temperature\+::temperature}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dd/db0/mlx5fpga__tools__char_8c_a76daf0e51f691a26b896fd8f83cf3ef6_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5fpga__tools__char_8c_a2ceddc830a9e4ebf4de57e7518b19ac7}\label{mlx5fpga__tools__char_8c_a2ceddc830a9e4ebf4de57e7518b19ac7}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!tools\_char\_llseek@{tools\_char\_llseek}}
\index{tools\_char\_llseek@{tools\_char\_llseek}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{tools\_char\_llseek()}{tools\_char\_llseek()}}
{\footnotesize\ttfamily static void tools\+\_\+char\+\_\+llseek (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structtools__context}{tools\+\_\+context}} $\ast$}]{context,  }\item[{struct uio $\ast$}]{uio,  }\item[{ssize\+\_\+t $\ast$}]{len }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00110}{110}} of file \mbox{\hyperlink{mlx5fpga__tools__char_8c_source}{mlx5fpga\+\_\+tools\+\_\+char.\+c}}.



References \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00041}{CHUNK\+\_\+\+SIZE}}, \mbox{\hyperlink{tools_8h_source_l00049}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev\+::fdev}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00273}{mlx5\+\_\+fpga\+\_\+ddr\+\_\+base\+\_\+get()}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00267}{mlx5\+\_\+fpga\+\_\+ddr\+\_\+size\+\_\+get()}}, and \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00044}{tools\+\_\+context\+::tdev}}.



Referenced by \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00133}{tools\+\_\+char\+\_\+read()}}, and \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00161}{tools\+\_\+char\+\_\+write()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dd/db0/mlx5fpga__tools__char_8c_a2ceddc830a9e4ebf4de57e7518b19ac7_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=314pt]{dd/db0/mlx5fpga__tools__char_8c_a2ceddc830a9e4ebf4de57e7518b19ac7_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5fpga__tools__char_8c_a7fcdadce87dd800a77774599cdc217ab}\label{mlx5fpga__tools__char_8c_a7fcdadce87dd800a77774599cdc217ab}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!tools\_char\_open@{tools\_char\_open}}
\index{tools\_char\_open@{tools\_char\_open}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{tools\_char\_open()}{tools\_char\_open()}}
{\footnotesize\ttfamily static int tools\+\_\+char\+\_\+open (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{int}]{oflags,  }\item[{int}]{devtype,  }\item[{struct thread $\ast$}]{td }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00056}{56}} of file \mbox{\hyperlink{mlx5fpga__tools__char_8c_source}{mlx5fpga\+\_\+tools\+\_\+char.\+c}}.



References \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00045}{tools\+\_\+context\+::access\+\_\+type}}, \mbox{\hyperlink{mlx5io_8h_source_l00126}{MLX5\+\_\+\+FPGA\+\_\+\+ACCESS\+\_\+\+TYPE\+\_\+\+DONTCARE}}, \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00044}{tools\+\_\+context\+::tdev}}, and \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00049}{tools\+\_\+char\+\_\+ctx\+\_\+dtor()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=324pt]{dd/db0/mlx5fpga__tools__char_8c_a7fcdadce87dd800a77774599cdc217ab_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5fpga__tools__char_8c_a536c39122e573bc00b6242af5c82ef9d}\label{mlx5fpga__tools__char_8c_a536c39122e573bc00b6242af5c82ef9d}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!tools\_char\_read@{tools\_char\_read}}
\index{tools\_char\_read@{tools\_char\_read}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{tools\_char\_read()}{tools\_char\_read()}}
{\footnotesize\ttfamily static int tools\+\_\+char\+\_\+read (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{struct uio $\ast$}]{uio,  }\item[{int}]{ioflag }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00133}{133}} of file \mbox{\hyperlink{mlx5fpga__tools__char_8c_source}{mlx5fpga\+\_\+tools\+\_\+char.\+c}}.



References \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00045}{tools\+\_\+context\+::access\+\_\+type}}, \mbox{\hyperlink{tools_8h_source_l00049}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev\+::fdev}}, \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00068}{mem\+\_\+read()}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00529}{mlx5\+\_\+fpga\+\_\+dev()}}, \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00044}{tools\+\_\+context\+::tdev}}, and \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00110}{tools\+\_\+char\+\_\+llseek()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dd/db0/mlx5fpga__tools__char_8c_a536c39122e573bc00b6242af5c82ef9d_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mlx5fpga__tools__char_8c_a2132acbe78eb1d35482cef3a9f7a7227}\label{mlx5fpga__tools__char_8c_a2132acbe78eb1d35482cef3a9f7a7227}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!tools\_char\_write@{tools\_char\_write}}
\index{tools\_char\_write@{tools\_char\_write}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{tools\_char\_write()}{tools\_char\_write()}}
{\footnotesize\ttfamily static int tools\+\_\+char\+\_\+write (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{struct uio $\ast$}]{uio,  }\item[{int}]{ioflag }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00161}{161}} of file \mbox{\hyperlink{mlx5fpga__tools__char_8c_source}{mlx5fpga\+\_\+tools\+\_\+char.\+c}}.



References \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00045}{tools\+\_\+context\+::access\+\_\+type}}, \mbox{\hyperlink{tools_8h_source_l00049}{mlx5\+\_\+fpga\+\_\+tools\+\_\+dev\+::fdev}}, \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00089}{mem\+\_\+write()}}, \mbox{\hyperlink{mlx5fpga__sdk_8c_source_l00529}{mlx5\+\_\+fpga\+\_\+dev()}}, \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00044}{tools\+\_\+context\+::tdev}}, and \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00110}{tools\+\_\+char\+\_\+llseek()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dd/db0/mlx5fpga__tools__char_8c_a2132acbe78eb1d35482cef3a9f7a7227_cgraph}
\end{center}
\end{figure}


\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{mlx5fpga__tools__char_8c_a30b96e9ae600f3bb8b8de507ff498e18}\label{mlx5fpga__tools__char_8c_a30b96e9ae600f3bb8b8de507ff498e18}} 
\index{mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}!mlx5\_tools\_char\_cdevsw@{mlx5\_tools\_char\_cdevsw}}
\index{mlx5\_tools\_char\_cdevsw@{mlx5\_tools\_char\_cdevsw}!mlx5fpga\_tools\_char.c@{mlx5fpga\_tools\_char.c}}
\doxysubsubsection{\texorpdfstring{mlx5\_tools\_char\_cdevsw}{mlx5\_tools\_char\_cdevsw}}
{\footnotesize\ttfamily struct cdevsw mlx5\+\_\+tools\+\_\+char\+\_\+cdevsw\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .d\_version =    D\_VERSION,}
\DoxyCodeLine{        .d\_name =       \textcolor{stringliteral}{"{}mlx5\_tools\_char"{}},}
\DoxyCodeLine{        .d\_open =       \mbox{\hyperlink{mlx5fpga__tools__char_8c_a7fcdadce87dd800a77774599cdc217ab}{tools\_char\_open}},}
\DoxyCodeLine{        .d\_read =       \mbox{\hyperlink{mlx5fpga__tools__char_8c_a536c39122e573bc00b6242af5c82ef9d}{tools\_char\_read}},}
\DoxyCodeLine{        .d\_write =      \mbox{\hyperlink{mlx5fpga__tools__char_8c_a2132acbe78eb1d35482cef3a9f7a7227}{tools\_char\_write}},}
\DoxyCodeLine{        .d\_ioctl =      \mbox{\hyperlink{mlx5fpga__tools__char_8c_a76daf0e51f691a26b896fd8f83cf3ef6}{tools\_char\_ioctl}},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00280}{280}} of file \mbox{\hyperlink{mlx5fpga__tools__char_8c_source}{mlx5fpga\+\_\+tools\+\_\+char.\+c}}.



Referenced by \mbox{\hyperlink{mlx5fpga__tools__char_8c_source_l00290}{mlx5\+\_\+fpga\+\_\+tools\+\_\+char\+\_\+add\+\_\+one()}}.

