\hypertarget{group__executionprocessor}{}\doxysection{SVM processor execution}
\label{group__executionprocessor}\index{SVM processor execution@{SVM processor execution}}


This module contains API functions to handle SVM processor execution.  


\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga2bac50ec69e3f4b0b660eeb39a183927}{SVM\+\_\+\+Code}} \mbox{\hyperlink{group__executionprocessor_gaae5bbe3299ea080cb76a86134dd17ead}{svm\+\_\+processor\+\_\+get\+\_\+currentcode}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} kernel)
\begin{DoxyCompactList}\small\item\em This function extracts the SVM code actually executed by the processor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga9b78468202465689b5cdc9c276d5f564}{SVM\+\_\+\+Value\+\_\+\+Symbol}} \mbox{\hyperlink{group__executionprocessor_ga3763ca074edd6eed95edf116966f7f91}{svm\+\_\+processor\+\_\+get\+\_\+nextinstruction}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} kernel)
\begin{DoxyCompactList}\small\item\em This function retrieves the address of the next instruction a processor will execute. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga9b78468202465689b5cdc9c276d5f564}{SVM\+\_\+\+Value\+\_\+\+Symbol}} \mbox{\hyperlink{group__executionprocessor_ga5d083a3a9bd543074fd4b1b92a53e580}{svm\+\_\+processor\+\_\+get\+\_\+currentinstruction}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} kernel)
\begin{DoxyCompactList}\small\item\em This function retrieves the address of the current instruction a processor is executing. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executionprocessor_gabf3a1387c4d0e23f3675cad5b18b3b86}{svm\+\_\+processor\+\_\+jump\+\_\+local}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} kernel, const \mbox{\hyperlink{group__api__types_gae19c9a8c6077446e11c34dd11059f647}{SVM\+\_\+\+Address}} address)
\begin{DoxyCompactList}\small\item\em This function does a local jump on a processor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executionprocessor_ga83ec220f7d1b9c8833b58c15875ef7f1}{svm\+\_\+processor\+\_\+jump\+\_\+global}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} kernel, const \mbox{\hyperlink{group__api__types_ga9b78468202465689b5cdc9c276d5f564}{SVM\+\_\+\+Value\+\_\+\+Symbol}} symbol)
\begin{DoxyCompactList}\small\item\em This function does a global jump on a processor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executionprocessor_ga894c96559686ee7a99f251a326cc5ac4}{svm\+\_\+processor\+\_\+call\+\_\+local}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} kernel, const \mbox{\hyperlink{group__api__types_gae19c9a8c6077446e11c34dd11059f647}{SVM\+\_\+\+Address}} function, const \mbox{\hyperlink{group__api__types_ga613f7430f76ab41fd47f6a386c370828}{SVM\+\_\+\+Value\+\_\+\+Pointer}} parameters)
\begin{DoxyCompactList}\small\item\em This function does a local SVM code function call on a processor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executionprocessor_ga1a57fd486f8781674c51b6ab58624293}{svm\+\_\+processor\+\_\+call\+\_\+global}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} kernel, const \mbox{\hyperlink{group__api__types_ga9b78468202465689b5cdc9c276d5f564}{SVM\+\_\+\+Value\+\_\+\+Symbol}} function, const \mbox{\hyperlink{group__api__types_ga613f7430f76ab41fd47f6a386c370828}{SVM\+\_\+\+Value\+\_\+\+Pointer}} parameters)
\begin{DoxyCompactList}\small\item\em This function does a global SVM code function call on a processor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executionprocessor_ga4646c890586e4bc201d73e89ac123c3c}{svm\+\_\+processor\+\_\+call\+\_\+identical}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} kernel, const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} transfer)
\begin{DoxyCompactList}\small\item\em This function does an identical SVM code function call on a processor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executionprocessor_gacde097c15f9792ead90459d1149cf18d}{svm\+\_\+processor\+\_\+return}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} kernel)
\begin{DoxyCompactList}\small\item\em This function does a SVM code function return on a processor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executionprocessor_gaf2b6508da5923b82dbf550dce9276785}{svm\+\_\+processor\+\_\+current\+\_\+shutdown}} (const void $\ast$svm)
\begin{DoxyCompactList}\small\item\em This function shuts down the processor of the current kernel. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executionprocessor_ga8bed18a97de4fc7f1a2657498143dba3}{svm\+\_\+processor\+\_\+current\+\_\+sleep}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_gaffdbc5928860a9f9c0f1db65bfb63b30}{SVM\+\_\+\+Value\+\_\+\+Integer}} seconds, const \mbox{\hyperlink{group__api__types_gaffdbc5928860a9f9c0f1db65bfb63b30}{SVM\+\_\+\+Value\+\_\+\+Integer}} milliseconds, const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} soft)
\begin{DoxyCompactList}\small\item\em This function stops the execution of the processor of the current kernel for a given time as integer values. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executionprocessor_gade8012877e94c05967690de2b417add6}{svm\+\_\+processor\+\_\+current\+\_\+sleep\+\_\+\+\_\+raw}} (const void $\ast$svm, const unsigned long int seconds, const unsigned long int milliseconds, const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} soft)
\begin{DoxyCompactList}\small\item\em This function stops the execution of the processor of the current kernel for a given time as raw integers. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
This module contains API functions to handle SVM processor execution. 



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__executionprocessor_ga1a57fd486f8781674c51b6ab58624293}\label{group__executionprocessor_ga1a57fd486f8781674c51b6ab58624293}} 
\index{SVM processor execution@{SVM processor execution}!svm\_processor\_call\_global@{svm\_processor\_call\_global}}
\index{svm\_processor\_call\_global@{svm\_processor\_call\_global}!SVM processor execution@{SVM processor execution}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_call\_global()}{svm\_processor\_call\_global()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+processor\+\_\+call\+\_\+global (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}}}]{kernel,  }\item[{const \mbox{\hyperlink{group__api__types_ga9b78468202465689b5cdc9c276d5f564}{SVM\+\_\+\+Value\+\_\+\+Symbol}}}]{function,  }\item[{const \mbox{\hyperlink{group__api__types_ga613f7430f76ab41fd47f6a386c370828}{SVM\+\_\+\+Value\+\_\+\+Pointer}}}]{parameters }\end{DoxyParamCaption})}



This function does a global SVM code function call on a processor. 


\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 processor is. \\
\hline
\mbox{\texttt{ in}}  & {\em function} & The address of the function to jump to. \\
\hline
\mbox{\texttt{ in}}  & {\em parameters} & The memory pointer locating the function parameters.\\
\hline
\end{DoxyParams}
The current state of the processor is saved on the return stack, then the next instruction is set to the function address eventually outside the current SVM code executed by the processor, and the current memory pointer is set to the parameters location.


\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}
\mbox{\hyperlink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock}} 

\mbox{\hyperlink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__executionprocessor_ga4646c890586e4bc201d73e89ac123c3c}\label{group__executionprocessor_ga4646c890586e4bc201d73e89ac123c3c}} 
\index{SVM processor execution@{SVM processor execution}!svm\_processor\_call\_identical@{svm\_processor\_call\_identical}}
\index{svm\_processor\_call\_identical@{svm\_processor\_call\_identical}!SVM processor execution@{SVM processor execution}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_call\_identical()}{svm\_processor\_call\_identical()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+processor\+\_\+call\+\_\+identical (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}}}]{kernel,  }\item[{const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}}}]{transfer }\end{DoxyParamCaption})}



This function does an identical SVM code function call on a processor. 


\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 processor is. \\
\hline
\mbox{\texttt{ in}}  & {\em transfer} & Indicates whether the local memory shall be transferred to the call.\\
\hline
\end{DoxyParams}
The current state of the processor is saved on the return stack. The memory already allocated in the current function can not be managed by the two calls\+: The memory can be managed by the current function call or transferred to the new function call. If the return stack is not modified, it is advised to set the transfer boolean to TRUE.

\begin{DoxyNote}{Note}
This API function can be used to store the current state of the processor, but has to be used with caution.
\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}
\mbox{\hyperlink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock}} 

\mbox{\hyperlink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__executionprocessor_ga894c96559686ee7a99f251a326cc5ac4}\label{group__executionprocessor_ga894c96559686ee7a99f251a326cc5ac4}} 
\index{SVM processor execution@{SVM processor execution}!svm\_processor\_call\_local@{svm\_processor\_call\_local}}
\index{svm\_processor\_call\_local@{svm\_processor\_call\_local}!SVM processor execution@{SVM processor execution}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_call\_local()}{svm\_processor\_call\_local()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+processor\+\_\+call\+\_\+local (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}}}]{kernel,  }\item[{const \mbox{\hyperlink{group__api__types_gae19c9a8c6077446e11c34dd11059f647}{SVM\+\_\+\+Address}}}]{function,  }\item[{const \mbox{\hyperlink{group__api__types_ga613f7430f76ab41fd47f6a386c370828}{SVM\+\_\+\+Value\+\_\+\+Pointer}}}]{parameters }\end{DoxyParamCaption})}



This function does a local SVM code function call on a processor. 


\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 processor is. \\
\hline
\mbox{\texttt{ in}}  & {\em function} & The address of the function to jump to. \\
\hline
\mbox{\texttt{ in}}  & {\em parameters} & The memory pointer locating the function parameters.\\
\hline
\end{DoxyParams}
The current state of the processor is saved on the return stack, then the next instruction is set to the function address inside the current SVM code executed by the processor, and the current memory pointer is set to the parameters location.


\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}
\mbox{\hyperlink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock}} 

\mbox{\hyperlink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__executionprocessor_gaf2b6508da5923b82dbf550dce9276785}\label{group__executionprocessor_gaf2b6508da5923b82dbf550dce9276785}} 
\index{SVM processor execution@{SVM processor execution}!svm\_processor\_current\_shutdown@{svm\_processor\_current\_shutdown}}
\index{svm\_processor\_current\_shutdown@{svm\_processor\_current\_shutdown}!SVM processor execution@{SVM processor execution}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_current\_shutdown()}{svm\_processor\_current\_shutdown()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+processor\+\_\+current\+\_\+shutdown (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm }\end{DoxyParamCaption})}



This function shuts down the processor of the current kernel. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em svm} & The SVM pointer passed as first argument of the callback function.\\
\hline
\end{DoxyParams}

\begin{DoxyExceptions}{Exceptions}
{\em FAILURE} & interruption when a parameter is incorrect. (Please refer to the main description page of this API.) \\
\hline
\end{DoxyExceptions}
\mbox{\Hypertarget{group__executionprocessor_ga8bed18a97de4fc7f1a2657498143dba3}\label{group__executionprocessor_ga8bed18a97de4fc7f1a2657498143dba3}} 
\index{SVM processor execution@{SVM processor execution}!svm\_processor\_current\_sleep@{svm\_processor\_current\_sleep}}
\index{svm\_processor\_current\_sleep@{svm\_processor\_current\_sleep}!SVM processor execution@{SVM processor execution}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_current\_sleep()}{svm\_processor\_current\_sleep()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+processor\+\_\+current\+\_\+sleep (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_gaffdbc5928860a9f9c0f1db65bfb63b30}{SVM\+\_\+\+Value\+\_\+\+Integer}}}]{seconds,  }\item[{const \mbox{\hyperlink{group__api__types_gaffdbc5928860a9f9c0f1db65bfb63b30}{SVM\+\_\+\+Value\+\_\+\+Integer}}}]{milliseconds,  }\item[{const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}}}]{soft }\end{DoxyParamCaption})}



This function stops the execution of the processor of the current kernel for a given time as integer values. 


\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 seconds} & The number of seconds to wait. \\
\hline
\mbox{\texttt{ in}}  & {\em milliseconds} & The number of extra milliseconds to wait. \\
\hline
\mbox{\texttt{ in}}  & {\em soft} & The process is put in pause while waiting.\\
\hline
\end{DoxyParams}
This function put the process on hold for a given while.

\begin{DoxyWarning}{Warning}
Usage of the system sleep functions may result in an undefined behavior. Always use this function instead.
\end{DoxyWarning}
\begin{DoxyNote}{Note}
The soft parameter should be set to TRUE, as a FALSE value may freeze the application and should be used only when the scheduling of the process shall not be modified.
\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 a sleep is performed in protected mode outside a WAITING instruction. \\
\hline
{\em FAILURE} & interruption when this API function is called outside a kernel. \\
\hline
{\em FAILURE} & interruption when seconds or milliseconds are a negative integer.\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__executeprocesses_ga67fd8cef99f2331e7304d0e3ea1bac2a}{svm\+\_\+process\+\_\+pause}} 

\mbox{\hyperlink{group__executeprocesses_gaf3cc9ca9d4947f7fea9ec1ac40d58957}{svm\+\_\+process\+\_\+resume}} 

\mbox{\hyperlink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__executionprocessor_gade8012877e94c05967690de2b417add6}\label{group__executionprocessor_gade8012877e94c05967690de2b417add6}} 
\index{SVM processor execution@{SVM processor execution}!svm\_processor\_current\_sleep\_\_raw@{svm\_processor\_current\_sleep\_\_raw}}
\index{svm\_processor\_current\_sleep\_\_raw@{svm\_processor\_current\_sleep\_\_raw}!SVM processor execution@{SVM processor execution}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_current\_sleep\_\_raw()}{svm\_processor\_current\_sleep\_\_raw()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+processor\+\_\+current\+\_\+sleep\+\_\+\+\_\+raw (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const unsigned long int}]{seconds,  }\item[{const unsigned long int}]{milliseconds,  }\item[{const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}}}]{soft }\end{DoxyParamCaption})}



This function stops the execution of the processor of the current kernel for a given time as raw integers. 


\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 seconds} & The number of seconds to wait. \\
\hline
\mbox{\texttt{ in}}  & {\em milliseconds} & The number of extra milliseconds to wait. \\
\hline
\mbox{\texttt{ in}}  & {\em soft} & The process is put in pause while waiting.\\
\hline
\end{DoxyParams}
This function put the process on hold for a given while.

\begin{DoxyWarning}{Warning}
Usage of the system sleep functions may result in an undefined behavior. Always use this function instead.
\end{DoxyWarning}
\begin{DoxyNote}{Note}
The soft parameter should be set to TRUE, as a FALSE value may freeze the application and should be used only when the scheduling of the process shall not be modified.
\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 this API function is called outside a kernel. \\
\hline
{\em FAILURE} & interruption when a sleep is performed in protected mode outside a WAITING instruction.\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__executeprocesses_ga67fd8cef99f2331e7304d0e3ea1bac2a}{svm\+\_\+process\+\_\+pause}} 

\mbox{\hyperlink{group__executeprocesses_gaf3cc9ca9d4947f7fea9ec1ac40d58957}{svm\+\_\+process\+\_\+resume}} 

\mbox{\hyperlink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__executionprocessor_gaae5bbe3299ea080cb76a86134dd17ead}\label{group__executionprocessor_gaae5bbe3299ea080cb76a86134dd17ead}} 
\index{SVM processor execution@{SVM processor execution}!svm\_processor\_get\_currentcode@{svm\_processor\_get\_currentcode}}
\index{svm\_processor\_get\_currentcode@{svm\_processor\_get\_currentcode}!SVM processor execution@{SVM processor execution}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_get\_currentcode()}{svm\_processor\_get\_currentcode()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga2bac50ec69e3f4b0b660eeb39a183927}{SVM\+\_\+\+Code}} svm\+\_\+processor\+\_\+get\+\_\+currentcode (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}}}]{kernel }\end{DoxyParamCaption})}



This function extracts the SVM code actually executed by the processor. 


\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 from which the code will be extracted.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The SVM code executed by the processor.
\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}
\mbox{\hyperlink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock}} 

\mbox{\hyperlink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__executionprocessor_ga5d083a3a9bd543074fd4b1b92a53e580}\label{group__executionprocessor_ga5d083a3a9bd543074fd4b1b92a53e580}} 
\index{SVM processor execution@{SVM processor execution}!svm\_processor\_get\_currentinstruction@{svm\_processor\_get\_currentinstruction}}
\index{svm\_processor\_get\_currentinstruction@{svm\_processor\_get\_currentinstruction}!SVM processor execution@{SVM processor execution}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_get\_currentinstruction()}{svm\_processor\_get\_currentinstruction()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga9b78468202465689b5cdc9c276d5f564}{SVM\+\_\+\+Value\+\_\+\+Symbol}} svm\+\_\+processor\+\_\+get\+\_\+currentinstruction (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}}}]{kernel }\end{DoxyParamCaption})}



This function retrieves the address of the current instruction a processor is executing. 


\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 processor is.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The symbol pointing on the current instruction.
\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}
\mbox{\hyperlink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock}} 

\mbox{\hyperlink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current}} 

\mbox{\hyperlink{group__symbolvalues_ga7c9ec2a46ff23cd1fc3450a8956407b8}{svm\+\_\+value\+\_\+symbol\+\_\+get\+\_\+location}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__executionprocessor_ga3763ca074edd6eed95edf116966f7f91}\label{group__executionprocessor_ga3763ca074edd6eed95edf116966f7f91}} 
\index{SVM processor execution@{SVM processor execution}!svm\_processor\_get\_nextinstruction@{svm\_processor\_get\_nextinstruction}}
\index{svm\_processor\_get\_nextinstruction@{svm\_processor\_get\_nextinstruction}!SVM processor execution@{SVM processor execution}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_get\_nextinstruction()}{svm\_processor\_get\_nextinstruction()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga9b78468202465689b5cdc9c276d5f564}{SVM\+\_\+\+Value\+\_\+\+Symbol}} svm\+\_\+processor\+\_\+get\+\_\+nextinstruction (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}}}]{kernel }\end{DoxyParamCaption})}



This function retrieves the address of the next instruction a processor will execute. 


\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 processor is.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The symbol pointing on the next instruction.
\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}
\mbox{\hyperlink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock}} 

\mbox{\hyperlink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__executionprocessor_ga83ec220f7d1b9c8833b58c15875ef7f1}\label{group__executionprocessor_ga83ec220f7d1b9c8833b58c15875ef7f1}} 
\index{SVM processor execution@{SVM processor execution}!svm\_processor\_jump\_global@{svm\_processor\_jump\_global}}
\index{svm\_processor\_jump\_global@{svm\_processor\_jump\_global}!SVM processor execution@{SVM processor execution}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_jump\_global()}{svm\_processor\_jump\_global()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+processor\+\_\+jump\+\_\+global (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}}}]{kernel,  }\item[{const \mbox{\hyperlink{group__api__types_ga9b78468202465689b5cdc9c276d5f564}{SVM\+\_\+\+Value\+\_\+\+Symbol}}}]{symbol }\end{DoxyParamCaption})}



This function does a global jump on a processor. 


\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 processor is. \\
\hline
\mbox{\texttt{ in}}  & {\em symbol} & The address to jump to.\\
\hline
\end{DoxyParams}
The next instruction pointer of the processor is set to an address potentially outside the current SVM code.


\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}
\mbox{\hyperlink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock}} 

\mbox{\hyperlink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__executionprocessor_gabf3a1387c4d0e23f3675cad5b18b3b86}\label{group__executionprocessor_gabf3a1387c4d0e23f3675cad5b18b3b86}} 
\index{SVM processor execution@{SVM processor execution}!svm\_processor\_jump\_local@{svm\_processor\_jump\_local}}
\index{svm\_processor\_jump\_local@{svm\_processor\_jump\_local}!SVM processor execution@{SVM processor execution}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_jump\_local()}{svm\_processor\_jump\_local()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+processor\+\_\+jump\+\_\+local (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}}}]{kernel,  }\item[{const \mbox{\hyperlink{group__api__types_gae19c9a8c6077446e11c34dd11059f647}{SVM\+\_\+\+Address}}}]{address }\end{DoxyParamCaption})}



This function does a local jump on a processor. 


\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 processor is. \\
\hline
\mbox{\texttt{ in}}  & {\em address} & The address to jump to.\\
\hline
\end{DoxyParams}
The next instruction pointer of the processor is set to an address inside the current SVM code.


\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}
\mbox{\hyperlink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock}} 

\mbox{\hyperlink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__executionprocessor_gacde097c15f9792ead90459d1149cf18d}\label{group__executionprocessor_gacde097c15f9792ead90459d1149cf18d}} 
\index{SVM processor execution@{SVM processor execution}!svm\_processor\_return@{svm\_processor\_return}}
\index{svm\_processor\_return@{svm\_processor\_return}!SVM processor execution@{SVM processor execution}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_return()}{svm\_processor\_return()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+processor\+\_\+return (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}}}]{kernel }\end{DoxyParamCaption})}



This function does a SVM code function return on a processor. 


\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 processor is.\\
\hline
\end{DoxyParams}
The current state is replaced by the last pushed state on the return stack, the last pushed state is removed from the return stack, and the allocated memory associated to the destroyed state is deleted.


\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 PROCESSOR} & interruption when the return stack is empty.\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__ownershipprocesses_ga535796c3203a2baa8095c951b9b2c205}{svm\+\_\+process\+\_\+ownership\+\_\+lock}} 

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