\doxysubsection{SVM memory pointers}
\hypertarget{group__pointermemory}{}\label{group__pointermemory}\index{SVM memory pointers@{SVM memory pointers}}


This module contains API functions to handle SVM memory pointers.  


\doxysubsubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga613f7430f76ab41fd47f6a386c370828}{SVM\+\_\+\+Value\+\_\+\+Pointer}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__pointermemory_ga57f6fada714525fd3ce71fb1d0341765}{svm\+\_\+memory\+\_\+pointer\+\_\+list\+\_\+accessible}} (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)
\begin{DoxyCompactList}\small\item\em This function extracts all memory zones recursively accessible from a pointer in a memory. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga3dffb7b48e1c724c527353525675e41c}{SVM\+\_\+\+Value\+\_\+\+String}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__pointermemory_ga28c27e0080886f6c3ea59be1d9f7d8ce}{svm\+\_\+memory\+\_\+pointer\+\_\+list\+\_\+alias}} (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)
\begin{DoxyCompactList}\small\item\em This function extracts all alias having their pointer within a memory zone. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga3dffb7b48e1c724c527353525675e41c}{SVM\+\_\+\+Value\+\_\+\+String}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__pointermemory_ga351d3481dd7f136122a3dd3522847203}{svm\+\_\+memory\+\_\+pointer\+\_\+expand\+\_\+alias}} (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)
\begin{DoxyCompactList}\small\item\em This function extracts all alias having their pointer intersecting with a memory zone. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} \mbox{\hyperlink{group__pointermemory_ga76dd2354fe8a67e4e7d60c2dd542ef68}{svm\+\_\+memory\+\_\+pointer\+\_\+has\+\_\+alias}} (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)
\begin{DoxyCompactList}\small\item\em This function checks whether an alias pointer has an intersection with a memory zone. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_gab09bc91d1ed2c59cf667d75b06fb3170}{SVM\+\_\+\+Memory\+\_\+\+Zone}} \mbox{\hyperlink{group__pointermemory_gaea07eaa495cd25c4d72fb0ab9ad1037b}{svm\+\_\+memory\+\_\+pointer\+\_\+get\+\_\+zone}} (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)
\begin{DoxyCompactList}\small\item\em This function creates a memory zone corresponding to the pointer. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__pointermemory_ga24a815384496c193f858104c593aa02b}{svm\+\_\+memory\+\_\+pointer\+\_\+set\+\_\+zone}} (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_gab09bc91d1ed2c59cf667d75b06fb3170}{SVM\+\_\+\+Memory\+\_\+\+Zone}} zone)
\begin{DoxyCompactList}\small\item\em This function changes the memory under the pointer to the types of the zone. \end{DoxyCompactList}\end{DoxyCompactItemize}


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



\doxysubsubsection{Function Documentation}
\Hypertarget{group__pointermemory_ga351d3481dd7f136122a3dd3522847203}\label{group__pointermemory_ga351d3481dd7f136122a3dd3522847203} 
\index{SVM memory pointers@{SVM memory pointers}!svm\_memory\_pointer\_expand\_alias@{svm\_memory\_pointer\_expand\_alias}}
\index{svm\_memory\_pointer\_expand\_alias@{svm\_memory\_pointer\_expand\_alias}!SVM memory pointers@{SVM memory pointers}}
\doxysubsubsubsection{\texorpdfstring{svm\_memory\_pointer\_expand\_alias()}{svm\_memory\_pointer\_expand\_alias()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga3dffb7b48e1c724c527353525675e41c}{SVM\+\_\+\+Value\+\_\+\+String}} \texorpdfstring{$\ast$}{*} svm\+\_\+memory\+\_\+pointer\+\_\+expand\+\_\+alias (\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 }\end{DoxyParamCaption})}



This function extracts all alias having their pointer intersecting with a memory zone. 


\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 memory zone to check.\\
\hline
\end{DoxyParams}
The returned alias have their pointer intersecting in the given memory zone. Each returned alias has at least one address in common with the input pointer, but can have adresses outside the input pointer.

\begin{DoxyReturn}{Returns}
A NULL terminated array of string values containing the aliases.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
The returned array is a valid SVM variable\+: its scope can be changed if needed, and the pointer shall not be freed explicitely.
\end{DoxyNote}

\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
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\doxylink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock} 

\doxylink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current} 
\end{DoxySeeAlso}
\Hypertarget{group__pointermemory_gaea07eaa495cd25c4d72fb0ab9ad1037b}\label{group__pointermemory_gaea07eaa495cd25c4d72fb0ab9ad1037b} 
\index{SVM memory pointers@{SVM memory pointers}!svm\_memory\_pointer\_get\_zone@{svm\_memory\_pointer\_get\_zone}}
\index{svm\_memory\_pointer\_get\_zone@{svm\_memory\_pointer\_get\_zone}!SVM memory pointers@{SVM memory pointers}}
\doxysubsubsubsection{\texorpdfstring{svm\_memory\_pointer\_get\_zone()}{svm\_memory\_pointer\_get\_zone()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_gab09bc91d1ed2c59cf667d75b06fb3170}{SVM\+\_\+\+Memory\+\_\+\+Zone}} svm\+\_\+memory\+\_\+pointer\+\_\+get\+\_\+zone (\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 }\end{DoxyParamCaption})}



This function creates a memory zone corresponding to the pointer. 


\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 memory zone to build.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The memory zone under the pointer.
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em MEMORY} & interruption when a memory address inside the pointer is not defined. \\
\hline
{\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
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\doxylink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock} 

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

\doxylink{group__memoryzone_ga3f95583aa8b1f964046451713d6974d8}{svm\+\_\+memory\+\_\+zone\+\_\+new} 

\doxylink{group__allocationmemory_gabc086ae85392ff9c51a146a7040c5a67}{svm\+\_\+memory\+\_\+allocate} 
\end{DoxySeeAlso}
\Hypertarget{group__pointermemory_ga76dd2354fe8a67e4e7d60c2dd542ef68}\label{group__pointermemory_ga76dd2354fe8a67e4e7d60c2dd542ef68} 
\index{SVM memory pointers@{SVM memory pointers}!svm\_memory\_pointer\_has\_alias@{svm\_memory\_pointer\_has\_alias}}
\index{svm\_memory\_pointer\_has\_alias@{svm\_memory\_pointer\_has\_alias}!SVM memory pointers@{SVM memory pointers}}
\doxysubsubsubsection{\texorpdfstring{svm\_memory\_pointer\_has\_alias()}{svm\_memory\_pointer\_has\_alias()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} svm\+\_\+memory\+\_\+pointer\+\_\+has\+\_\+alias (\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 }\end{DoxyParamCaption})}



This function checks whether an alias pointer has an intersection with a memory zone. 


\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 memory zone to check.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE when at least an alias has an address in common with the pointer, FALSE otherwise.
\end{DoxyReturn}

\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
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\doxylink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock} 

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

\doxylink{group__pointermemory_ga351d3481dd7f136122a3dd3522847203}{svm\+\_\+memory\+\_\+pointer\+\_\+expand\+\_\+alias} 
\end{DoxySeeAlso}
\Hypertarget{group__pointermemory_ga57f6fada714525fd3ce71fb1d0341765}\label{group__pointermemory_ga57f6fada714525fd3ce71fb1d0341765} 
\index{SVM memory pointers@{SVM memory pointers}!svm\_memory\_pointer\_list\_accessible@{svm\_memory\_pointer\_list\_accessible}}
\index{svm\_memory\_pointer\_list\_accessible@{svm\_memory\_pointer\_list\_accessible}!SVM memory pointers@{SVM memory pointers}}
\doxysubsubsubsection{\texorpdfstring{svm\_memory\_pointer\_list\_accessible()}{svm\_memory\_pointer\_list\_accessible()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga613f7430f76ab41fd47f6a386c370828}{SVM\+\_\+\+Value\+\_\+\+Pointer}} \texorpdfstring{$\ast$}{*} svm\+\_\+memory\+\_\+pointer\+\_\+list\+\_\+accessible (\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 }\end{DoxyParamCaption})}



This function extracts all memory zones recursively accessible from a pointer in 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 pointer locating the first memory zone.\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
The returned values are optimised out\+: the memory zones graph is flatten and contiguous zones are merged to ensure every address is represented only once in the result. 

The input pointer is always placed on the first element of the reply regardless the merge of the accessible zones.
\end{DoxyNote}
Usage example\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{group__api__types_ga613f7430f76ab41fd47f6a386c370828}{SVM\_Value\_Pointer}}\ *pointer\ =\ \mbox{\hyperlink{group__pointermemory_ga57f6fada714525fd3ce71fb1d0341765}{svm\_memory\_pointer\_list\_accessible}}(svm,kernel,initial\_pointer);}
\DoxyCodeLine{\textcolor{keywordflow}{for}(\ ;\ *pointer\ ;\ ++pointer)\ \textcolor{comment}{//\ we\ don't\ need\ to\ keep\ pointer\ on\ the\ first\ pointer}}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{group__memoriesscope_ga3b42f589fe7b6fe25eb081af853fde57}{svm\_memory\_scope\_set\_local}}(svm,kernel,*pointer);}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{group__api__types_ga3dffb7b48e1c724c527353525675e41c}{SVM\_Value\_String}}\ *alias\ =\ \mbox{\hyperlink{group__pointermemory_ga28c27e0080886f6c3ea59be1d9f7d8ce}{svm\_memory\_pointer\_list\_alias}}(svm,kernel,*pointer);}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{for}(\ ;\ *alias\ ;\ ++alias)\ \textcolor{comment}{//\ we\ don't\ need\ to\ keep\ alias\ on\ the\ first\ alias}}
\DoxyCodeLine{\ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{group__memoriesscope_gaad9a6959c8c54153b954fc4a7a21b01c}{svm\_memory\_scope\_set\_local\_alias}}(svm,kernel,*alias);}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


\begin{DoxyReturn}{Returns}
A NULL terminated array of pointer values locating all accessible memory.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
The returned array is a valid SVM variable\+: its scope can be changed if needed, and the pointer shall not be freed explicitely.
\end{DoxyNote}

\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
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\doxylink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock} 

\doxylink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current} 
\end{DoxySeeAlso}
\Hypertarget{group__pointermemory_ga28c27e0080886f6c3ea59be1d9f7d8ce}\label{group__pointermemory_ga28c27e0080886f6c3ea59be1d9f7d8ce} 
\index{SVM memory pointers@{SVM memory pointers}!svm\_memory\_pointer\_list\_alias@{svm\_memory\_pointer\_list\_alias}}
\index{svm\_memory\_pointer\_list\_alias@{svm\_memory\_pointer\_list\_alias}!SVM memory pointers@{SVM memory pointers}}
\doxysubsubsubsection{\texorpdfstring{svm\_memory\_pointer\_list\_alias()}{svm\_memory\_pointer\_list\_alias()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga3dffb7b48e1c724c527353525675e41c}{SVM\+\_\+\+Value\+\_\+\+String}} \texorpdfstring{$\ast$}{*} svm\+\_\+memory\+\_\+pointer\+\_\+list\+\_\+alias (\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 }\end{DoxyParamCaption})}



This function extracts all alias having their pointer within a memory zone. 


\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 memory zone to check.\\
\hline
\end{DoxyParams}
The returned alias have their pointer included in the given memory zone. If an alias has at least one address outside this zone, it will not be retrieved by this API function.

\begin{DoxyReturn}{Returns}
A NULL terminated array of string values containing the aliases.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
The returned array is a valid SVM variable\+: its scope can be changed if needed, and the pointer shall not be freed explicitely.
\end{DoxyNote}
Usage example\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{group__api__types_ga613f7430f76ab41fd47f6a386c370828}{SVM\_Value\_Pointer}}\ *pointer\ =\ \mbox{\hyperlink{group__pointermemory_ga57f6fada714525fd3ce71fb1d0341765}{svm\_memory\_pointer\_list\_accessible}}(svm,kernel,initial\_pointer);}
\DoxyCodeLine{\textcolor{keywordflow}{for}(\ ;\ *pointer\ ;\ ++pointer)\ \textcolor{comment}{//\ we\ don't\ need\ to\ keep\ pointer\ on\ the\ first\ pointer}}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{group__memoriesscope_ga3b42f589fe7b6fe25eb081af853fde57}{svm\_memory\_scope\_set\_local}}(svm,kernel,*pointer);}
\DoxyCodeLine{\ \ \ \ \mbox{\hyperlink{group__api__types_ga3dffb7b48e1c724c527353525675e41c}{SVM\_Value\_String}}\ *alias\ =\ \mbox{\hyperlink{group__pointermemory_ga28c27e0080886f6c3ea59be1d9f7d8ce}{svm\_memory\_pointer\_list\_alias}}(svm,kernel,*pointer);}
\DoxyCodeLine{\ \ \ \ \textcolor{keywordflow}{for}(\ ;\ *alias\ ;\ ++alias)\ \textcolor{comment}{//\ we\ don't\ need\ to\ keep\ alias\ on\ the\ first\ alias}}
\DoxyCodeLine{\ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{group__memoriesscope_gaad9a6959c8c54153b954fc4a7a21b01c}{svm\_memory\_scope\_set\_local\_alias}}(svm,kernel,*alias);}
\DoxyCodeLine{\ \ \ \ \}}
\DoxyCodeLine{\}}

\end{DoxyCode}



\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
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\doxylink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock} 

\doxylink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current} 
\end{DoxySeeAlso}
\Hypertarget{group__pointermemory_ga24a815384496c193f858104c593aa02b}\label{group__pointermemory_ga24a815384496c193f858104c593aa02b} 
\index{SVM memory pointers@{SVM memory pointers}!svm\_memory\_pointer\_set\_zone@{svm\_memory\_pointer\_set\_zone}}
\index{svm\_memory\_pointer\_set\_zone@{svm\_memory\_pointer\_set\_zone}!SVM memory pointers@{SVM memory pointers}}
\doxysubsubsubsection{\texorpdfstring{svm\_memory\_pointer\_set\_zone()}{svm\_memory\_pointer\_set\_zone()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+memory\+\_\+pointer\+\_\+set\+\_\+zone (\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_gab09bc91d1ed2c59cf667d75b06fb3170}{SVM\+\_\+\+Memory\+\_\+\+Zone}}}]{zone }\end{DoxyParamCaption})}



This function changes the memory under the pointer to the types of the zone. 


\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 memory zone to alter. \\
\hline
\mbox{\texttt{ in}}  & {\em zone} & The types to use.\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
The addresses impacted by the function are defined but no longer initialised after this function call.
\end{DoxyNote}

\begin{DoxyExceptions}{Exceptions}
{\em MEMORY} & interruption when a memory address inside the pointer is not defined. \\
\hline
{\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 FAILURE} & interruption when the zone and the pointer have different sizes.\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\doxylink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock} 

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

\doxylink{group__memoryzone_ga3f95583aa8b1f964046451713d6974d8}{svm\+\_\+memory\+\_\+zone\+\_\+new} 

\doxylink{group__allocationmemory_gabc086ae85392ff9c51a146a7040c5a67}{svm\+\_\+memory\+\_\+allocate} 
\end{DoxySeeAlso}
