\doxysubsection{SVM kernel getters}
\hypertarget{group__getkernels}{}\label{group__getkernels}\index{SVM kernel getters@{SVM kernel getters}}


This module contains API functions to get SVM kernels.  


\doxysubsubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} \mbox{\hyperlink{group__getkernels_gab4f58646582a7949796f068df17a13e1}{svm\+\_\+kernel\+\_\+new\+\_\+code}} (const void \texorpdfstring{$\ast$}{*}svm, const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} transmit\+\_\+interruptions, const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} last\+\_\+return\+\_\+is\+\_\+shutdown, const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} protected\+\_\+mode, const \mbox{\hyperlink{group__api__types_gaa9ef3e93dd2aee35350fd61cc54851fa}{SVM\+\_\+\+Access\+Control}} access\+\_\+control, const \mbox{\hyperlink{group__api__types_ga2bac50ec69e3f4b0b660eeb39a183927}{SVM\+\_\+\+Code}} code)
\begin{DoxyCompactList}\small\item\em This function creates a new kernel. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} \mbox{\hyperlink{group__getkernels_ga06afcb59104eeecc4639553ce77ce0e1}{svm\+\_\+kernel\+\_\+new\+\_\+symbol}} (const void \texorpdfstring{$\ast$}{*}svm, const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} transmit\+\_\+interruptions, const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} last\+\_\+return\+\_\+is\+\_\+shutdown, const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} protected\+\_\+mode, const \mbox{\hyperlink{group__api__types_gaa9ef3e93dd2aee35350fd61cc54851fa}{SVM\+\_\+\+Access\+Control}} access\+\_\+control, const \mbox{\hyperlink{group__api__types_ga9b78468202465689b5cdc9c276d5f564}{SVM\+\_\+\+Value\+\_\+\+Symbol}} symbol)
\begin{DoxyCompactList}\small\item\em This function creates a new kernel. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} \mbox{\hyperlink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current}} (const void \texorpdfstring{$\ast$}{*}svm)
\begin{DoxyCompactList}\small\item\em This function retrieves the current kernel. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_gabbfa54994e431fe68d4f6580c112e1a0}{SVM\+\_\+\+Process}} \mbox{\hyperlink{group__getkernels_gaf999bf5b70ca3c7b456c885a271d8cef}{svm\+\_\+kernel\+\_\+get\+\_\+process}} (const void \texorpdfstring{$\ast$}{*}svm, const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} kernel)
\begin{DoxyCompactList}\small\item\em This function returns the process associated to a kernel. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsubsection{Detailed Description}
This module contains API functions to get SVM kernels. 



\doxysubsubsection{Function Documentation}
\Hypertarget{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}\label{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5} 
\index{SVM kernel getters@{SVM kernel getters}!svm\_kernel\_get\_current@{svm\_kernel\_get\_current}}
\index{svm\_kernel\_get\_current@{svm\_kernel\_get\_current}!SVM kernel getters@{SVM kernel getters}}
\doxysubsubsubsection{\texorpdfstring{svm\_kernel\_get\_current()}{svm\_kernel\_get\_current()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} svm\+\_\+kernel\+\_\+get\+\_\+current (\begin{DoxyParamCaption}\item[{const void \texorpdfstring{$\ast$}{*}}]{svm }\end{DoxyParamCaption})}



This function retrieves 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{DoxyWarning}{Warning}
The resulting variable can be set global and added to a C/\+C++ structure linked to a type which can be written into the memory of the current kernel. In such case, a circular loop is created, preventing the variable to be destroyed at the proper time unless the variable is set local outside the type destructor or the value is explicitely removed from the kernel memory.
\end{DoxyWarning}
\begin{DoxyReturn}{Returns}
The current kernel if the API function is invoked inside a kernel, a NULL pointer 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
\end{DoxyExceptions}
\Hypertarget{group__getkernels_gaf999bf5b70ca3c7b456c885a271d8cef}\label{group__getkernels_gaf999bf5b70ca3c7b456c885a271d8cef} 
\index{SVM kernel getters@{SVM kernel getters}!svm\_kernel\_get\_process@{svm\_kernel\_get\_process}}
\index{svm\_kernel\_get\_process@{svm\_kernel\_get\_process}!SVM kernel getters@{SVM kernel getters}}
\doxysubsubsubsection{\texorpdfstring{svm\_kernel\_get\_process()}{svm\_kernel\_get\_process()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_gabbfa54994e431fe68d4f6580c112e1a0}{SVM\+\_\+\+Process}} svm\+\_\+kernel\+\_\+get\+\_\+process (\begin{DoxyParamCaption}\item[{const void \texorpdfstring{$\ast$}{*}}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}}}]{kernel }\end{DoxyParamCaption})}



This function returns the process associated to a kernel. 


\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 to diagnose.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The process associated to the kernel if attached to a process, NULL 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
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\doxylink{group__processes}{SVM processes} 
\end{DoxySeeAlso}
\Hypertarget{group__getkernels_gab4f58646582a7949796f068df17a13e1}\label{group__getkernels_gab4f58646582a7949796f068df17a13e1} 
\index{SVM kernel getters@{SVM kernel getters}!svm\_kernel\_new\_code@{svm\_kernel\_new\_code}}
\index{svm\_kernel\_new\_code@{svm\_kernel\_new\_code}!SVM kernel getters@{SVM kernel getters}}
\doxysubsubsubsection{\texorpdfstring{svm\_kernel\_new\_code()}{svm\_kernel\_new\_code()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} svm\+\_\+kernel\+\_\+new\+\_\+code (\begin{DoxyParamCaption}\item[{const void \texorpdfstring{$\ast$}{*}}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}}}]{transmit\+\_\+interruptions,  }\item[{const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}}}]{last\+\_\+return\+\_\+is\+\_\+shutdown,  }\item[{const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}}}]{protected\+\_\+mode,  }\item[{const \mbox{\hyperlink{group__api__types_gaa9ef3e93dd2aee35350fd61cc54851fa}{SVM\+\_\+\+Access\+Control}}}]{access\+\_\+control,  }\item[{const \mbox{\hyperlink{group__api__types_ga2bac50ec69e3f4b0b660eeb39a183927}{SVM\+\_\+\+Code}}}]{code }\end{DoxyParamCaption})}



This function creates a new kernel. 


\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 transmit\+\_\+interruptions} & If the kernel is interrupted, this flag asks the kernel to forward the interruption to the next kernel. \\
\hline
\mbox{\texttt{ in}}  & {\em last\+\_\+return\+\_\+is\+\_\+shutdown} & This flag indicates whether an extra return on an empty return stack can be considered as a shutdown. \\
\hline
\mbox{\texttt{ in}}  & {\em protected\+\_\+mode} & This flag indicates that the code should be executed in protected mode. \\
\hline
\mbox{\texttt{ in}}  & {\em access\+\_\+control} & The limitations to apply to the code execution. A NULL pointer means no specific restriction. \\
\hline
\mbox{\texttt{ in}}  & {\em code} & The code to execute within the kernel.\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
When this API function is called within a kernel, the protected mode and the access control are always set as restrictions of the current limitations. In particular, if the current kernel executes code in protected mode, the created kernel will automatically be in protected mode, no matter the protected\+\_\+mode flag could be.

Access control is ignored when the kernel is not created in protected mode.
\end{DoxyNote}
\begin{DoxyWarning}{Warning}
When this API function is called outside a kernel, the protected mode and access control parameters are directly applied. This can lead to a security issue unless either the plugin callback containing such call can only be triggered by a system instruction, or the code is coming only from safe sources.
\end{DoxyWarning}
\begin{DoxyReturn}{Returns}
The created kernel.
\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 this API function is invoked outside a kernel and outside a system callback.\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\doxylink{group__accesscontrol}{SVM access control} 

\doxylink{group__getkernels_gad6a03dbf0dd283278cdc4bbc2266efa5}{svm\+\_\+kernel\+\_\+get\+\_\+current} 
\end{DoxySeeAlso}
\Hypertarget{group__getkernels_ga06afcb59104eeecc4639553ce77ce0e1}\label{group__getkernels_ga06afcb59104eeecc4639553ce77ce0e1} 
\index{SVM kernel getters@{SVM kernel getters}!svm\_kernel\_new\_symbol@{svm\_kernel\_new\_symbol}}
\index{svm\_kernel\_new\_symbol@{svm\_kernel\_new\_symbol}!SVM kernel getters@{SVM kernel getters}}
\doxysubsubsubsection{\texorpdfstring{svm\_kernel\_new\_symbol()}{svm\_kernel\_new\_symbol()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga19af2c6060f3ae282ea4e73121fac69c}{SVM\+\_\+\+Kernel}} svm\+\_\+kernel\+\_\+new\+\_\+symbol (\begin{DoxyParamCaption}\item[{const void \texorpdfstring{$\ast$}{*}}]{svm,  }\item[{const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}}}]{transmit\+\_\+interruptions,  }\item[{const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}}}]{last\+\_\+return\+\_\+is\+\_\+shutdown,  }\item[{const \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}}}]{protected\+\_\+mode,  }\item[{const \mbox{\hyperlink{group__api__types_gaa9ef3e93dd2aee35350fd61cc54851fa}{SVM\+\_\+\+Access\+Control}}}]{access\+\_\+control,  }\item[{const \mbox{\hyperlink{group__api__types_ga9b78468202465689b5cdc9c276d5f564}{SVM\+\_\+\+Value\+\_\+\+Symbol}}}]{symbol }\end{DoxyParamCaption})}



This function creates a new kernel. 


\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 transmit\+\_\+interruptions} & If the kernel is interrupted, this flag asks the kernel to forward the interruption to the next kernel. \\
\hline
\mbox{\texttt{ in}}  & {\em last\+\_\+return\+\_\+is\+\_\+shutdown} & This flag indicates whether an extra return on an empty return stack can be considered as a shutdown. \\
\hline
\mbox{\texttt{ in}}  & {\em protected\+\_\+mode} & This flag indicates that the code should be executed in protected mode. \\
\hline
\mbox{\texttt{ in}}  & {\em access\+\_\+control} & The limitations to apply to the code execution. A NULL pointer means no specific restriction. \\
\hline
\mbox{\texttt{ in}}  & {\em symbol} & The symbol to jump to within the kernel.\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
When this API function is called within a kernel, the protected mode and the access control are always set as restrictions of the current limitations. In particular, if the current kernel executes code in protected mode, the created kernel will automatically be in protected mode, no matter the protected\+\_\+mode flag could be.

Access control is ignored when the kernel is not created in protected mode.
\end{DoxyNote}
\begin{DoxyWarning}{Warning}
When this API function is called outside a kernel, the protected mode and access control parameters are directly applied. This can lead to a security issue unless either the plugin callback containing such call can only be triggered by a system instruction, or the code is coming only from safe sources.
\end{DoxyWarning}
\begin{DoxyReturn}{Returns}
The created kernel.
\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 this API function is invoked outside a kernel and outside a system callback.\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\doxylink{group__accesscontrol}{SVM access control} 

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