\doxysubsection{SVM memory write}
\hypertarget{group__writememory}{}\label{group__writememory}\index{SVM memory write@{SVM memory write}}


This module contains API functions to handle SVM memory write access.  


\doxysubsubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__writememory_ga41b5b7f2a4dc8b0fe7cbe3e81a346d59}{svm\+\_\+memory\+\_\+write\+\_\+address}} (const void \texorpdfstring{$\ast$}{*}svm, const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} kernel, const \mbox{\hyperlink{group__api__types_gae19c9a8c6077446e11c34dd11059f647}{SVM\+\_\+\+Address}} address, const \mbox{\hyperlink{group__api__types_gaf37a7c40972a9dabfa18b14127c34fb1}{SVM\+\_\+\+Value}} value)
\begin{DoxyCompactList}\small\item\em This function writes a value into a memory. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__writememory_ga7706d26c709a23ffca63c285194d832c}{svm\+\_\+memory\+\_\+write\+\_\+pointer}} (const void \texorpdfstring{$\ast$}{*}svm, const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} kernel, const \mbox{\hyperlink{group__api__types_ga613f7430f76ab41fd47f6a386c370828}{SVM\+\_\+\+Value\+\_\+\+Pointer}} pointer, const \mbox{\hyperlink{group__api__types_gaf37a7c40972a9dabfa18b14127c34fb1}{SVM\+\_\+\+Value}} \texorpdfstring{$\ast$}{*}values)
\begin{DoxyCompactList}\small\item\em This function writes an array of values into a memory. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__writememory_ga008326c4fb6cb5c0dba58575824dc038}{svm\+\_\+memory\+\_\+write\+\_\+pointer\+\_\+\+\_\+raw}} (const void \texorpdfstring{$\ast$}{*}svm, const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} kernel, const \mbox{\hyperlink{group__api__types_gae19c9a8c6077446e11c34dd11059f647}{SVM\+\_\+\+Address}} address, const \mbox{\hyperlink{group__api__types_gaab347fe7005c87722bd7d80cfe94333c}{SVM\+\_\+\+Size}} size, const \mbox{\hyperlink{group__api__types_gaf37a7c40972a9dabfa18b14127c34fb1}{SVM\+\_\+\+Value}} \texorpdfstring{$\ast$}{*}values)
\begin{DoxyCompactList}\small\item\em This function writes an array of values into a memory. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsubsection{Detailed Description}
This module contains API functions to handle SVM memory write access. 



\doxysubsubsection{Function Documentation}
\Hypertarget{group__writememory_ga41b5b7f2a4dc8b0fe7cbe3e81a346d59}\label{group__writememory_ga41b5b7f2a4dc8b0fe7cbe3e81a346d59} 
\index{SVM memory write@{SVM memory write}!svm\_memory\_write\_address@{svm\_memory\_write\_address}}
\index{svm\_memory\_write\_address@{svm\_memory\_write\_address}!SVM memory write@{SVM memory write}}
\doxysubsubsubsection{\texorpdfstring{svm\_memory\_write\_address()}{svm\_memory\_write\_address()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+memory\+\_\+write\+\_\+address (\begin{DoxyParamCaption}\item[{const void \texorpdfstring{$\ast$}{*}}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}}}]{kernel,  }\item[{const \mbox{\hyperlink{group__api__types_gae19c9a8c6077446e11c34dd11059f647}{SVM\+\_\+\+Address}}}]{address,  }\item[{const \mbox{\hyperlink{group__api__types_gaf37a7c40972a9dabfa18b14127c34fb1}{SVM\+\_\+\+Value}}}]{value }\end{DoxyParamCaption})}



This function writes a value into a memory. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em svm} & The SVM pointer passed as first argument of the callback function. \\
\hline
\mbox{\texttt{ in}}  & {\em kernel} & The kernel in which the targeted memory is. \\
\hline
\mbox{\texttt{ in}}  & {\em address} & The local address to write to. \\
\hline
\mbox{\texttt{ in}}  & {\em value} & The value to write.\\
\hline
\end{DoxyParams}
When a null value is written into the memory, the corresponding value is cleared. After the write, the address is still defined but no longer initialised.


\begin{DoxyExceptions}{Exceptions}
{\em FAILURE} & interruption when a parameter is incorrect. (Please refer to the main description page of this API.) \\
\hline
{\em FAILURE} & interruption when the kernel is not owned by our process or is not in a process locked by ours. \\
\hline
{\em MEMORY} & interruption when the address is not defined. \\
\hline
{\em MEMORY} & interruption when the type of the address is incompatible with the value type.\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\doxylink{group__addressmemory_ga21f8c43c2b1503cc785618c462ac7661}{svm\+\_\+memory\+\_\+address\+\_\+is\+\_\+defined} 

\doxylink{group__addressmemory_gab537da58c446f89dc507f920ac82f6b6}{svm\+\_\+memory\+\_\+address\+\_\+is\+\_\+writable} 

\doxylink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock} 

\doxylink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current} 
\end{DoxySeeAlso}
\Hypertarget{group__writememory_ga7706d26c709a23ffca63c285194d832c}\label{group__writememory_ga7706d26c709a23ffca63c285194d832c} 
\index{SVM memory write@{SVM memory write}!svm\_memory\_write\_pointer@{svm\_memory\_write\_pointer}}
\index{svm\_memory\_write\_pointer@{svm\_memory\_write\_pointer}!SVM memory write@{SVM memory write}}
\doxysubsubsubsection{\texorpdfstring{svm\_memory\_write\_pointer()}{svm\_memory\_write\_pointer()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+memory\+\_\+write\+\_\+pointer (\begin{DoxyParamCaption}\item[{const void \texorpdfstring{$\ast$}{*}}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}}}]{kernel,  }\item[{const \mbox{\hyperlink{group__api__types_ga613f7430f76ab41fd47f6a386c370828}{SVM\+\_\+\+Value\+\_\+\+Pointer}}}]{pointer,  }\item[{const \mbox{\hyperlink{group__api__types_gaf37a7c40972a9dabfa18b14127c34fb1}{SVM\+\_\+\+Value}} \texorpdfstring{$\ast$}{*}}]{values }\end{DoxyParamCaption})}



This function writes an array of values into a memory. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em svm} & The SVM pointer passed as first argument of the callback function. \\
\hline
\mbox{\texttt{ in}}  & {\em kernel} & The kernel in which the targeted memory is. \\
\hline
\mbox{\texttt{ in}}  & {\em pointer} & The zone to write to. \\
\hline
\mbox{\texttt{ in}}  & {\em values} & The values to write.\\
\hline
\end{DoxyParams}
The values are written into the memory only if all types are compatibles. Otherwise, no value is written into the memory.

When a null value is written into the memory, the corresponding value is cleared. After the write, the address is still defined but no longer initialised.

\begin{DoxyWarning}{Warning}
The array of values shall have a size at least equal to the pointer size. Otherwise, the result is undefined.
\end{DoxyWarning}

\begin{DoxyExceptions}{Exceptions}
{\em FAILURE} & interruption when a parameter is incorrect. (Please refer to the main description page of this API.) \\
\hline
{\em FAILURE} & interruption when the kernel is not owned by our process or is not in a process locked by ours. \\
\hline
{\em MEMORY} & interruption when at least one address is not defined. \\
\hline
{\em MEMORY} & interruption when at least one type of value is incompatible with the corresponding address type.\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\doxylink{group__addressmemory_ga21f8c43c2b1503cc785618c462ac7661}{svm\+\_\+memory\+\_\+address\+\_\+is\+\_\+defined} 

\doxylink{group__writememory_ga41b5b7f2a4dc8b0fe7cbe3e81a346d59}{svm\+\_\+memory\+\_\+write\+\_\+address} 

\doxylink{group__addressmemory_gab537da58c446f89dc507f920ac82f6b6}{svm\+\_\+memory\+\_\+address\+\_\+is\+\_\+writable} 

\doxylink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock} 

\doxylink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current} 
\end{DoxySeeAlso}
\Hypertarget{group__writememory_ga008326c4fb6cb5c0dba58575824dc038}\label{group__writememory_ga008326c4fb6cb5c0dba58575824dc038} 
\index{SVM memory write@{SVM memory write}!svm\_memory\_write\_pointer\_\_raw@{svm\_memory\_write\_pointer\_\_raw}}
\index{svm\_memory\_write\_pointer\_\_raw@{svm\_memory\_write\_pointer\_\_raw}!SVM memory write@{SVM memory write}}
\doxysubsubsubsection{\texorpdfstring{svm\_memory\_write\_pointer\_\_raw()}{svm\_memory\_write\_pointer\_\_raw()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+memory\+\_\+write\+\_\+pointer\+\_\+\+\_\+raw (\begin{DoxyParamCaption}\item[{const void \texorpdfstring{$\ast$}{*}}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}}}]{kernel,  }\item[{const \mbox{\hyperlink{group__api__types_gae19c9a8c6077446e11c34dd11059f647}{SVM\+\_\+\+Address}}}]{address,  }\item[{const \mbox{\hyperlink{group__api__types_gaab347fe7005c87722bd7d80cfe94333c}{SVM\+\_\+\+Size}}}]{size,  }\item[{const \mbox{\hyperlink{group__api__types_gaf37a7c40972a9dabfa18b14127c34fb1}{SVM\+\_\+\+Value}} \texorpdfstring{$\ast$}{*}}]{values }\end{DoxyParamCaption})}



This function writes an array of values into a memory. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em svm} & The SVM pointer passed as first argument of the callback function. \\
\hline
\mbox{\texttt{ in}}  & {\em kernel} & The kernel in which the targeted memory is. \\
\hline
\mbox{\texttt{ in}}  & {\em address} & The zone address to write to. \\
\hline
\mbox{\texttt{ in}}  & {\em size} & The zone size to write to. \\
\hline
\mbox{\texttt{ in}}  & {\em values} & The values to write.\\
\hline
\end{DoxyParams}
The values are written into the memory only if all types are compatibles. Otherwise, no value is written into the memory.

When a null value is written into the memory, the corresponding value is cleared. After the write, the address is still defined but no longer initialised.

\begin{DoxyWarning}{Warning}
The array of values shall have a size at least equal to the zone size. Otherwise, the result is undefined.
\end{DoxyWarning}

\begin{DoxyExceptions}{Exceptions}
{\em FAILURE} & interruption when a parameter is incorrect. (Please refer to the main description page of this API.) \\
\hline
{\em FAILURE} & interruption when the kernel is not owned by our process or is not in a process locked by ours. \\
\hline
{\em MEMORY} & interruption when at least one address is not defined. \\
\hline
{\em MEMORY} & interruption when at least one type of value is incompatible with the corresponding address type.\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\doxylink{group__addressmemory_ga21f8c43c2b1503cc785618c462ac7661}{svm\+\_\+memory\+\_\+address\+\_\+is\+\_\+defined} 

\doxylink{group__writememory_ga41b5b7f2a4dc8b0fe7cbe3e81a346d59}{svm\+\_\+memory\+\_\+write\+\_\+address} 

\doxylink{group__addressmemory_gab537da58c446f89dc507f920ac82f6b6}{svm\+\_\+memory\+\_\+address\+\_\+is\+\_\+writable} 

\doxylink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock} 

\doxylink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current} 
\end{DoxySeeAlso}
