\hypertarget{group__executeprocesses}{}\doxysection{SVM process execution}
\label{group__executeprocesses}\index{SVM process execution@{SVM process execution}}


This module contains API functions to handle SVM process execution.  


\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executeprocesses_ga5fdb1d3e4da252d6ab112964d7068b32}{svm\+\_\+process\+\_\+run}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_gabbfa54994e431fe68d4f6580c112e1a0}{SVM\+\_\+\+Process}} process, const \mbox{\hyperlink{group__api__types_gaffdbc5928860a9f9c0f1db65bfb63b30}{SVM\+\_\+\+Value\+\_\+\+Integer}} delay)
\begin{DoxyCompactList}\small\item\em This function requires the execution of a process with a delay as an integer value. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executeprocesses_ga4e87c88b0cbe6f2e9d0b2e046d4c6b15}{svm\+\_\+process\+\_\+run\+\_\+\+\_\+raw}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_gabbfa54994e431fe68d4f6580c112e1a0}{SVM\+\_\+\+Process}} process, const unsigned long int delay)
\begin{DoxyCompactList}\small\item\em This function requires the execution of a process with a delay as an raw integer. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executeprocesses_ga2b63eeef893aa664e42f3a12cb50aea6}{svm\+\_\+process\+\_\+suspend}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_gabbfa54994e431fe68d4f6580c112e1a0}{SVM\+\_\+\+Process}} process)
\begin{DoxyCompactList}\small\item\em This function requests the suspension of a process. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executeprocesses_ga316755bb2ab8f4539f5a7c5240950b49}{svm\+\_\+process\+\_\+terminate}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_gabbfa54994e431fe68d4f6580c112e1a0}{SVM\+\_\+\+Process}} process)
\begin{DoxyCompactList}\small\item\em This function requests the terminaison of a process. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executeprocesses_ga0a3dc5c9346abb37416f9445d780e0b9}{svm\+\_\+process\+\_\+interrupt}} (const void $\ast$svm, const \mbox{\hyperlink{group__api__types_gabbfa54994e431fe68d4f6580c112e1a0}{SVM\+\_\+\+Process}} process, const \mbox{\hyperlink{group__api__types_ga05264517c09f5a00e9f4a613739fbd79}{SVM\+\_\+\+Value\+\_\+\+Interruption}} interruption)
\begin{DoxyCompactList}\small\item\em This function requests the interruption of a process. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executeprocesses_ga67fd8cef99f2331e7304d0e3ea1bac2a}{svm\+\_\+process\+\_\+pause}} (const void $\ast$svm)
\begin{DoxyCompactList}\small\item\em This function changes the current process status to notify it enters in a blocking wait inside an instruction. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__executeprocesses_gaf3cc9ca9d4947f7fea9ec1ac40d58957}{svm\+\_\+process\+\_\+resume}} (const void $\ast$svm)
\begin{DoxyCompactList}\small\item\em This function changes the current process status to notify it exits a blocking wait inside an instruction. \end{DoxyCompactList}\end{DoxyCompactItemize}


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



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__executeprocesses_ga0a3dc5c9346abb37416f9445d780e0b9}\label{group__executeprocesses_ga0a3dc5c9346abb37416f9445d780e0b9}} 
\index{SVM process execution@{SVM process execution}!svm\_process\_interrupt@{svm\_process\_interrupt}}
\index{svm\_process\_interrupt@{svm\_process\_interrupt}!SVM process execution@{SVM process execution}}
\doxysubsubsection{\texorpdfstring{svm\_process\_interrupt()}{svm\_process\_interrupt()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+process\+\_\+interrupt (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_gabbfa54994e431fe68d4f6580c112e1a0}{SVM\+\_\+\+Process}}}]{process,  }\item[{const \mbox{\hyperlink{group__api__types_ga05264517c09f5a00e9f4a613739fbd79}{SVM\+\_\+\+Value\+\_\+\+Interruption}}}]{interruption }\end{DoxyParamCaption})}



This function requests the interruption of a process. 


\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 process} & The process to interrupt. \\
\hline
\mbox{\texttt{ in}}  & {\em interruption} & The interruption to use for process interruption.\\
\hline
\end{DoxyParams}
The process does need to be locked by us.

\begin{DoxyNote}{Note}
The interruption of the process is asynchronous, and it will be interrupted once the interruption request reaches the process.
\end{DoxyNote}

\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__executeprocesses_ga67fd8cef99f2331e7304d0e3ea1bac2a}\label{group__executeprocesses_ga67fd8cef99f2331e7304d0e3ea1bac2a}} 
\index{SVM process execution@{SVM process execution}!svm\_process\_pause@{svm\_process\_pause}}
\index{svm\_process\_pause@{svm\_process\_pause}!SVM process execution@{SVM process execution}}
\doxysubsubsection{\texorpdfstring{svm\_process\_pause()}{svm\_process\_pause()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+process\+\_\+pause (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm }\end{DoxyParamCaption})}



This function changes the current process status to notify it enters in a blocking wait inside an instruction. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em svm} & The SVM pointer passed as first argument of the callback function.\\
\hline
\end{DoxyParams}
The process status is changed to WAITING and a notification is sent to its scheduler.

\begin{DoxyNote}{Note}
If the instruction execution is reached before a call to svm\+\_\+process\+\_\+resume, the process is automatically resumed before the next instruction execution.
\end{DoxyNote}
An example of a proper implementation of a pause in the current process could be\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{group__executeprocesses_ga67fd8cef99f2331e7304d0e3ea1bac2a}{svm\_process\_pause}}(svm); \textcolor{comment}{// Current process notifies the start of the pause}}
\DoxyCodeLine{\textcolor{comment}{// Code waiting for an external condition}}
\DoxyCodeLine{\mbox{\hyperlink{group__executeprocesses_gaf3cc9ca9d4947f7fea9ec1ac40d58957}{svm\_process\_resume}}(svm); \textcolor{comment}{// Current process notifies the end of the pause}}

\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 this API function is called outside a waiting instruction.\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__executeprocesses_gaf3cc9ca9d4947f7fea9ec1ac40d58957}{svm\+\_\+process\+\_\+resume}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__executeprocesses_gaf3cc9ca9d4947f7fea9ec1ac40d58957}\label{group__executeprocesses_gaf3cc9ca9d4947f7fea9ec1ac40d58957}} 
\index{SVM process execution@{SVM process execution}!svm\_process\_resume@{svm\_process\_resume}}
\index{svm\_process\_resume@{svm\_process\_resume}!SVM process execution@{SVM process execution}}
\doxysubsubsection{\texorpdfstring{svm\_process\_resume()}{svm\_process\_resume()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+process\+\_\+resume (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm }\end{DoxyParamCaption})}



This function changes the current process status to notify it exits a blocking wait inside an instruction. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em svm} & The SVM pointer passed as first argument of the callback function.\\
\hline
\end{DoxyParams}
The process status is changed to CONTINUE and a notification is sent to its scheduler. The process waits for the execution restart triggered by the scheduler. The process status is changed to RUNNING and a notification is sent to its scheduler.

\begin{DoxyNote}{Note}
Other events received by the process while waiting for the execution request are postponed, usually at the end of the execution of the current instruction.
\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 waiting instruction.\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__executeprocesses_ga67fd8cef99f2331e7304d0e3ea1bac2a}{svm\+\_\+process\+\_\+pause}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__executeprocesses_ga5fdb1d3e4da252d6ab112964d7068b32}\label{group__executeprocesses_ga5fdb1d3e4da252d6ab112964d7068b32}} 
\index{SVM process execution@{SVM process execution}!svm\_process\_run@{svm\_process\_run}}
\index{svm\_process\_run@{svm\_process\_run}!SVM process execution@{SVM process execution}}
\doxysubsubsection{\texorpdfstring{svm\_process\_run()}{svm\_process\_run()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+process\+\_\+run (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_gabbfa54994e431fe68d4f6580c112e1a0}{SVM\+\_\+\+Process}}}]{process,  }\item[{const \mbox{\hyperlink{group__api__types_gaffdbc5928860a9f9c0f1db65bfb63b30}{SVM\+\_\+\+Value\+\_\+\+Integer}}}]{delay }\end{DoxyParamCaption})}



This function requires the execution of a process with a delay as an integer value. 


\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 process} & The process to run. \\
\hline
\mbox{\texttt{ in}}  & {\em delay} & The delay before the process replies when locked.\\
\hline
\end{DoxyParams}
The process does need to be locked by us.

\begin{DoxyNote}{Note}
The execution of the process is asynchronous, and it will start run once the execution request reached the process.
\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 from a process. \\
\hline
\end{DoxyExceptions}
\mbox{\Hypertarget{group__executeprocesses_ga4e87c88b0cbe6f2e9d0b2e046d4c6b15}\label{group__executeprocesses_ga4e87c88b0cbe6f2e9d0b2e046d4c6b15}} 
\index{SVM process execution@{SVM process execution}!svm\_process\_run\_\_raw@{svm\_process\_run\_\_raw}}
\index{svm\_process\_run\_\_raw@{svm\_process\_run\_\_raw}!SVM process execution@{SVM process execution}}
\doxysubsubsection{\texorpdfstring{svm\_process\_run\_\_raw()}{svm\_process\_run\_\_raw()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+process\+\_\+run\+\_\+\+\_\+raw (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_gabbfa54994e431fe68d4f6580c112e1a0}{SVM\+\_\+\+Process}}}]{process,  }\item[{const unsigned long int}]{delay }\end{DoxyParamCaption})}



This function requires the execution of a process with a delay as an raw integer. 


\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 process} & The process to run. \\
\hline
\mbox{\texttt{ in}}  & {\em delay} & The delay before the process replies when locked.\\
\hline
\end{DoxyParams}
The process does need to be locked by us.

\begin{DoxyNote}{Note}
The execution of the process is asynchronous, and it will start run once the execution request reaches the process.
\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 from a process. \\
\hline
\end{DoxyExceptions}
\mbox{\Hypertarget{group__executeprocesses_ga2b63eeef893aa664e42f3a12cb50aea6}\label{group__executeprocesses_ga2b63eeef893aa664e42f3a12cb50aea6}} 
\index{SVM process execution@{SVM process execution}!svm\_process\_suspend@{svm\_process\_suspend}}
\index{svm\_process\_suspend@{svm\_process\_suspend}!SVM process execution@{SVM process execution}}
\doxysubsubsection{\texorpdfstring{svm\_process\_suspend()}{svm\_process\_suspend()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+process\+\_\+suspend (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_gabbfa54994e431fe68d4f6580c112e1a0}{SVM\+\_\+\+Process}}}]{process }\end{DoxyParamCaption})}



This function requests the suspension of a process. 


\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 process} & The process to suspend.\\
\hline
\end{DoxyParams}
The process does need to be locked by us.

\begin{DoxyNote}{Note}
The suspension of the process is asynchronous, and it will be suspension once the suspension request reaches the process.
\end{DoxyNote}

\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__executeprocesses_ga316755bb2ab8f4539f5a7c5240950b49}\label{group__executeprocesses_ga316755bb2ab8f4539f5a7c5240950b49}} 
\index{SVM process execution@{SVM process execution}!svm\_process\_terminate@{svm\_process\_terminate}}
\index{svm\_process\_terminate@{svm\_process\_terminate}!SVM process execution@{SVM process execution}}
\doxysubsubsection{\texorpdfstring{svm\_process\_terminate()}{svm\_process\_terminate()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+process\+\_\+terminate (\begin{DoxyParamCaption}\item[{const void $\ast$}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_gabbfa54994e431fe68d4f6580c112e1a0}{SVM\+\_\+\+Process}}}]{process }\end{DoxyParamCaption})}



This function requests the terminaison of a process. 


\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 process} & The process to terminate.\\
\hline
\end{DoxyParams}
The process does need to be locked by us.

\begin{DoxyNote}{Note}
The terminaison of the process is asynchronous, and it will be terminated once the terminaison request reaches the process.
\end{DoxyNote}

\begin{DoxyExceptions}{Exceptions}
{\em FAILURE} & interruption when a parameter is incorrect. (Please refer to the main description page of this API.) \\
\hline
\end{DoxyExceptions}
