\hypertarget{group__instructionoverrideprocessors}{}\doxysection{SVM processor instruction overrides}
\label{group__instructionoverrideprocessors}\index{SVM processor instruction overrides@{SVM processor instruction overrides}}


This module contains API functions to handle SVM processor instruction overrides.  


\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__instructionoverrideprocessors_ga89e4e347d992a6de1c3c1ea9ad076441}{svm\+\_\+processor\+\_\+instructionoverride\+\_\+set\+\_\+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, const \mbox{\hyperlink{group__api__types_ga90c57554e1d1ea2967e133696d0cf2cd}{SVM\+\_\+\+Value\+\_\+\+Plugin\+Entry\+Point}} name, const \mbox{\hyperlink{group__api__types_gaab347fe7005c87722bd7d80cfe94333c}{SVM\+\_\+\+Size}} argc, const \mbox{\hyperlink{group__api__types_gab05a82304ba262cf3ae97b0c5f8ab707}{SVM\+\_\+\+Parameter}} argv\mbox{[}$\,$\mbox{]}, const \mbox{\hyperlink{group__api__types_gaadf0256d3fc6a42e5f3f03f57d63c14a}{SVM\+\_\+\+Object\+\_\+\+Level}} level)
\begin{DoxyCompactList}\small\item\em This function sets an instruction override on a local address. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__instructionoverrideprocessors_gae6b037fbdc0ec7101f11a2de6b007cb7}{svm\+\_\+processor\+\_\+instructionoverride\+\_\+set\+\_\+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, const \mbox{\hyperlink{group__api__types_ga90c57554e1d1ea2967e133696d0cf2cd}{SVM\+\_\+\+Value\+\_\+\+Plugin\+Entry\+Point}} name, const \mbox{\hyperlink{group__api__types_gaab347fe7005c87722bd7d80cfe94333c}{SVM\+\_\+\+Size}} argc, const \mbox{\hyperlink{group__api__types_gab05a82304ba262cf3ae97b0c5f8ab707}{SVM\+\_\+\+Parameter}} argv\mbox{[}$\,$\mbox{]}, const \mbox{\hyperlink{group__api__types_gaadf0256d3fc6a42e5f3f03f57d63c14a}{SVM\+\_\+\+Object\+\_\+\+Level}} level)
\begin{DoxyCompactList}\small\item\em This function sets an instruction override on a local address. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} \mbox{\hyperlink{group__instructionoverrideprocessors_gac8f5a184555393b49a9d7748fa61368e}{svm\+\_\+processor\+\_\+instructionoverride\+\_\+has\+\_\+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, const \mbox{\hyperlink{group__api__types_gaadf0256d3fc6a42e5f3f03f57d63c14a}{SVM\+\_\+\+Object\+\_\+\+Level}} level)
\begin{DoxyCompactList}\small\item\em This function checks whether a processor has an instruction override on a local address. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} \mbox{\hyperlink{group__instructionoverrideprocessors_ga534f9472e9b00402fde879fb52aecf1c}{svm\+\_\+processor\+\_\+instructionoverride\+\_\+has\+\_\+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, const \mbox{\hyperlink{group__api__types_gaadf0256d3fc6a42e5f3f03f57d63c14a}{SVM\+\_\+\+Object\+\_\+\+Level}} level)
\begin{DoxyCompactList}\small\item\em This function checks whether a processor has an instruction override on a symbol. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__instructionoverrideprocessors_ga9e6610793d625fd3a867404001518abc}{svm\+\_\+processor\+\_\+instructionoverride\+\_\+reset\+\_\+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, const \mbox{\hyperlink{group__api__types_gaadf0256d3fc6a42e5f3f03f57d63c14a}{SVM\+\_\+\+Object\+\_\+\+Level}} level)
\begin{DoxyCompactList}\small\item\em This function removes an instruction override on a local address. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void \mbox{\hyperlink{group__instructionoverrideprocessors_gaf0370b3897c88874c07b2512f21aec8c}{svm\+\_\+processor\+\_\+instructionoverride\+\_\+reset\+\_\+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, const \mbox{\hyperlink{group__api__types_gaadf0256d3fc6a42e5f3f03f57d63c14a}{SVM\+\_\+\+Object\+\_\+\+Level}} level)
\begin{DoxyCompactList}\small\item\em This function removes an instruction override on a symbol. \end{DoxyCompactList}\end{DoxyCompactItemize}


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



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__instructionoverrideprocessors_ga534f9472e9b00402fde879fb52aecf1c}\label{group__instructionoverrideprocessors_ga534f9472e9b00402fde879fb52aecf1c}} 
\index{SVM processor instruction overrides@{SVM processor instruction overrides}!svm\_processor\_instructionoverride\_has\_global@{svm\_processor\_instructionoverride\_has\_global}}
\index{svm\_processor\_instructionoverride\_has\_global@{svm\_processor\_instructionoverride\_has\_global}!SVM processor instruction overrides@{SVM processor instruction overrides}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_instructionoverride\_has\_global()}{svm\_processor\_instructionoverride\_has\_global()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} svm\+\_\+processor\+\_\+instructionoverride\+\_\+has\+\_\+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,  }\item[{const \mbox{\hyperlink{group__api__types_gaadf0256d3fc6a42e5f3f03f57d63c14a}{SVM\+\_\+\+Object\+\_\+\+Level}}}]{level }\end{DoxyParamCaption})}



This function checks whether a processor has an instruction override on a symbol. 


\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 symbol to check. \\
\hline
\mbox{\texttt{ in}}  & {\em level} & The level of instruction override.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE when the symbol has an instruction override, FALSE otherwise.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
The level can be LOCAL or GLOBAL. Cascaded instruction overrides are considered local by this API function.
\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__instructionoverrideprocessors_gac8f5a184555393b49a9d7748fa61368e}\label{group__instructionoverrideprocessors_gac8f5a184555393b49a9d7748fa61368e}} 
\index{SVM processor instruction overrides@{SVM processor instruction overrides}!svm\_processor\_instructionoverride\_has\_local@{svm\_processor\_instructionoverride\_has\_local}}
\index{svm\_processor\_instructionoverride\_has\_local@{svm\_processor\_instructionoverride\_has\_local}!SVM processor instruction overrides@{SVM processor instruction overrides}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_instructionoverride\_has\_local()}{svm\_processor\_instructionoverride\_has\_local()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} \mbox{\hyperlink{group__api__types_ga872facc2eea0e7296e689134f568b804}{SVM\+\_\+\+Boolean}} svm\+\_\+processor\+\_\+instructionoverride\+\_\+has\+\_\+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,  }\item[{const \mbox{\hyperlink{group__api__types_gaadf0256d3fc6a42e5f3f03f57d63c14a}{SVM\+\_\+\+Object\+\_\+\+Level}}}]{level }\end{DoxyParamCaption})}



This function checks whether a processor has an instruction override on a local address. 


\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 local address to check. \\
\hline
\mbox{\texttt{ in}}  & {\em level} & The level of instruction override.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
TRUE when the address has an instruction override, FALSE otherwise.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
The level can be LOCAL or GLOBAL. Cascaded instruction overrides are considered local by this API function.
\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__instructionoverrideprocessors_gaf0370b3897c88874c07b2512f21aec8c}\label{group__instructionoverrideprocessors_gaf0370b3897c88874c07b2512f21aec8c}} 
\index{SVM processor instruction overrides@{SVM processor instruction overrides}!svm\_processor\_instructionoverride\_reset\_global@{svm\_processor\_instructionoverride\_reset\_global}}
\index{svm\_processor\_instructionoverride\_reset\_global@{svm\_processor\_instructionoverride\_reset\_global}!SVM processor instruction overrides@{SVM processor instruction overrides}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_instructionoverride\_reset\_global()}{svm\_processor\_instructionoverride\_reset\_global()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+processor\+\_\+instructionoverride\+\_\+reset\+\_\+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,  }\item[{const \mbox{\hyperlink{group__api__types_gaadf0256d3fc6a42e5f3f03f57d63c14a}{SVM\+\_\+\+Object\+\_\+\+Level}}}]{level }\end{DoxyParamCaption})}



This function removes an instruction override on a symbol. 


\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 symbol where the override shall be removed. \\
\hline
\mbox{\texttt{ in}}  & {\em level} & The level of instruction override.\\
\hline
\end{DoxyParams}
This function removes an instruction override at the symbol.


\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__instructionoverrideprocessors_ga9e6610793d625fd3a867404001518abc}\label{group__instructionoverrideprocessors_ga9e6610793d625fd3a867404001518abc}} 
\index{SVM processor instruction overrides@{SVM processor instruction overrides}!svm\_processor\_instructionoverride\_reset\_local@{svm\_processor\_instructionoverride\_reset\_local}}
\index{svm\_processor\_instructionoverride\_reset\_local@{svm\_processor\_instructionoverride\_reset\_local}!SVM processor instruction overrides@{SVM processor instruction overrides}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_instructionoverride\_reset\_local()}{svm\_processor\_instructionoverride\_reset\_local()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+processor\+\_\+instructionoverride\+\_\+reset\+\_\+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,  }\item[{const \mbox{\hyperlink{group__api__types_gaadf0256d3fc6a42e5f3f03f57d63c14a}{SVM\+\_\+\+Object\+\_\+\+Level}}}]{level }\end{DoxyParamCaption})}



This function removes an instruction override on a local address. 


\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 local address where the override shall be removed. \\
\hline
\mbox{\texttt{ in}}  & {\em level} & The level of instruction override.\\
\hline
\end{DoxyParams}
This function removes an instruction override at the local address of the current 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__instructionoverrideprocessors_gae6b037fbdc0ec7101f11a2de6b007cb7}\label{group__instructionoverrideprocessors_gae6b037fbdc0ec7101f11a2de6b007cb7}} 
\index{SVM processor instruction overrides@{SVM processor instruction overrides}!svm\_processor\_instructionoverride\_set\_global@{svm\_processor\_instructionoverride\_set\_global}}
\index{svm\_processor\_instructionoverride\_set\_global@{svm\_processor\_instructionoverride\_set\_global}!SVM processor instruction overrides@{SVM processor instruction overrides}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_instructionoverride\_set\_global()}{svm\_processor\_instructionoverride\_set\_global()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+processor\+\_\+instructionoverride\+\_\+set\+\_\+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,  }\item[{const \mbox{\hyperlink{group__api__types_ga90c57554e1d1ea2967e133696d0cf2cd}{SVM\+\_\+\+Value\+\_\+\+Plugin\+Entry\+Point}}}]{name,  }\item[{const \mbox{\hyperlink{group__api__types_gaab347fe7005c87722bd7d80cfe94333c}{SVM\+\_\+\+Size}}}]{argc,  }\item[{const \mbox{\hyperlink{group__api__types_gab05a82304ba262cf3ae97b0c5f8ab707}{SVM\+\_\+\+Parameter}}}]{argv\mbox{[}$\,$\mbox{]},  }\item[{const \mbox{\hyperlink{group__api__types_gaadf0256d3fc6a42e5f3f03f57d63c14a}{SVM\+\_\+\+Object\+\_\+\+Level}}}]{level }\end{DoxyParamCaption})}



This function sets an instruction override on a local address. 


\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 symbol to override. \\
\hline
\mbox{\texttt{ in}}  & {\em name} & The instruction name. \\
\hline
\mbox{\texttt{ in}}  & {\em argc} & The number of instruction parameters. \\
\hline
\mbox{\texttt{ in}}  & {\em argv} & The instruction parameters. \\
\hline
\mbox{\texttt{ in}}  & {\em level} & The level of instruction override.\\
\hline
\end{DoxyParams}
This API function sets an instruction override on the processor, at the given symbol. This instruction will be executed when the current instruction pointer matches the symbol, replacing the code one at the same symbol location.

\begin{DoxyNote}{Note}
The created instruction will have the code location of the instruction calling this function. Parameter checks will be performed when the instruction is executed.
\end{DoxyNote}
\begin{DoxyWarning}{Warning}
Only plugin instructions are allowed. Return values from these instructions are lost.
\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 FAILURE} & interruption when the symbol already has an instruction override. \\
\hline
{\em PROCESSOR} & interruption when the instruction does not exist.\\
\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__pluginobjects_ga506635b16bdd60ca5ef3b9c031cd2497}{svm\+\_\+plugin\+\_\+has\+\_\+instruction}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__instructionoverrideprocessors_ga89e4e347d992a6de1c3c1ea9ad076441}\label{group__instructionoverrideprocessors_ga89e4e347d992a6de1c3c1ea9ad076441}} 
\index{SVM processor instruction overrides@{SVM processor instruction overrides}!svm\_processor\_instructionoverride\_set\_local@{svm\_processor\_instructionoverride\_set\_local}}
\index{svm\_processor\_instructionoverride\_set\_local@{svm\_processor\_instructionoverride\_set\_local}!SVM processor instruction overrides@{SVM processor instruction overrides}}
\doxysubsubsection{\texorpdfstring{svm\_processor\_instructionoverride\_set\_local()}{svm\_processor\_instructionoverride\_set\_local()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__apimacros_ga0d0dae93534c2ba22499a92705a4e391}{SVM\+\_\+\+FUNCTION}} void svm\+\_\+processor\+\_\+instructionoverride\+\_\+set\+\_\+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,  }\item[{const \mbox{\hyperlink{group__api__types_ga90c57554e1d1ea2967e133696d0cf2cd}{SVM\+\_\+\+Value\+\_\+\+Plugin\+Entry\+Point}}}]{name,  }\item[{const \mbox{\hyperlink{group__api__types_gaab347fe7005c87722bd7d80cfe94333c}{SVM\+\_\+\+Size}}}]{argc,  }\item[{const \mbox{\hyperlink{group__api__types_gab05a82304ba262cf3ae97b0c5f8ab707}{SVM\+\_\+\+Parameter}}}]{argv\mbox{[}$\,$\mbox{]},  }\item[{const \mbox{\hyperlink{group__api__types_gaadf0256d3fc6a42e5f3f03f57d63c14a}{SVM\+\_\+\+Object\+\_\+\+Level}}}]{level }\end{DoxyParamCaption})}



This function sets an instruction override on a local address. 


\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 local address to override. \\
\hline
\mbox{\texttt{ in}}  & {\em name} & The instruction name. \\
\hline
\mbox{\texttt{ in}}  & {\em argc} & The number of instruction parameters. \\
\hline
\mbox{\texttt{ in}}  & {\em argv} & The instruction parameters. \\
\hline
\mbox{\texttt{ in}}  & {\em level} & The level of instruction override.\\
\hline
\end{DoxyParams}
This API function sets an instruction override on the processor, at the given address of the current code of the processor. This instruction will be executed when the current instruction pointer matches the address, replacing the code one at the same address location.

\begin{DoxyNote}{Note}
The created instruction will have the code location of the instruction calling this function. Parameter checks will be performed when the instruction is executed.
\end{DoxyNote}
\begin{DoxyWarning}{Warning}
Only plugin instructions are allowed. Return values from these instructions are lost.
\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 FAILURE} & interruption when the address already has an instruction override. \\
\hline
{\em PROCESSOR} & interruption when the instruction does not exist.\\
\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__pluginobjects_ga506635b16bdd60ca5ef3b9c031cd2497}{svm\+\_\+plugin\+\_\+has\+\_\+instruction}} 
\end{DoxySeeAlso}
