This module contains API functions to handle SVM processor function return stack.  
More...
|  | 
| SVM_FUNCTION SVM_Size | svm_processor_returnstack_get_size (const void *svm, const SVM_Kernel kernel) | 
|  | This function retrieves the return stack size of a processor.  More... 
 | 
|  | 
| SVM_FUNCTION void | svm_processor_returnstack_swap_level (const void *svm, const SVM_Kernel kernel, const SVM_Index level) | 
|  | This function swaps a state in the return stack of a processor with the current state of this processor.  More... 
 | 
|  | 
| SVM_FUNCTION SVM_Index | svm_processor_returnstack_find_flag (const void *svm, const SVM_Kernel kernel, const SVM_Value_String flag, const SVM_Index start) | 
|  | This function returns the level of the nearest frame having the flag raised within the return stack of a processor from a given level.  More... 
 | 
|  | 
| SVM_FUNCTION SVM_Index | svm_processor_returnstack_find_flag__string (const void *svm, const SVM_Kernel kernel, const SVM_String flag, const SVM_Index start) | 
|  | This function returns the level of the nearest frame having the flag raised within the return stack of a processor from a given level.  More... 
 | 
|  | 
| SVM_FUNCTION SVM_Index | svm_processor_returnstack_find_flag__raw (const void *svm, const SVM_Kernel kernel, const char *flag, const SVM_Index start) | 
|  | This function returns the level of the nearest frame having the flag raised within the return stack of a processor from a given level.  More... 
 | 
|  | 
| SVM_FUNCTION void | svm_processor_returnstack_move_level (const void *svm, const SVM_Kernel kernel, const SVM_Index start, const SVM_Index end, const SVM_Index target) | 
|  | This function moves a portion of the return stack to another level.  More... 
 | 
|  | 
This module contains API functions to handle SVM processor function return stack. 
◆ svm_processor_returnstack_find_flag()
This function returns the level of the nearest frame having the flag raised within the return stack of a processor from a given level. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | kernel | The kernel in which the targeted processor is. |  | [in] | flag | The flag name to find. |  | [in] | start | The level of the state to be swaped in the return stack. |  
 
The start has to be set between 0 and the return stack size. When the return stack size is provided, no search is done and the return stack size is immediately returned.
- Returns
- Returns the first level when the flag is found. Returns the return stack size when not found.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  | FAILURE | interruption when the kernel is not owned by our process or is not in a process locked by ours. |  | PROCESSOR | interruption when the return stack does not contain enough levels. |  
 
- See also
- svm_process_ownership_lock 
- 
svm_kernel_get_current 
 
 
◆ svm_processor_returnstack_find_flag__raw()
This function returns the level of the nearest frame having the flag raised within the return stack of a processor from a given level. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | kernel | The kernel in which the targeted processor is. |  | [in] | flag | The flag name to find. |  | [in] | start | The level of the state to be swaped in the return stack. |  
 
The start has to be set between 0 and the return stack size. When the return stack size is provided, no search is done and the return stack size is immediately returned.
- Returns
- Returns the first level when the flag is found. Returns the return stack size when not found.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  | FAILURE | interruption when the kernel is not owned by our process or is not in a process locked by ours. |  | PROCESSOR | interruption when the return stack does not contain enough levels. |  
 
- See also
- svm_process_ownership_lock 
- 
svm_kernel_get_current 
 
 
◆ svm_processor_returnstack_find_flag__string()
This function returns the level of the nearest frame having the flag raised within the return stack of a processor from a given level. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | kernel | The kernel in which the targeted processor is. |  | [in] | flag | The flag name to find. |  | [in] | start | The level of the state to be swaped in the return stack. |  
 
The start has to be set between 0 and the return stack size. When the return stack size is provided, no search is done and the return stack size is immediately returned.
- Returns
- Returns the first level when the flag is found. Returns the return stack size when not found.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  | FAILURE | interruption when the kernel is not owned by our process or is not in a process locked by ours. |  | PROCESSOR | interruption when the return stack does not contain enough levels. |  
 
- See also
- svm_process_ownership_lock 
- 
svm_kernel_get_current 
 
 
◆ svm_processor_returnstack_get_size()
This function retrieves the return stack size of a processor. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | kernel | The kernel in which the targeted processor is. |  
 
- Returns
- The number of function returns the processor can do.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  | FAILURE | interruption when the kernel is not owned by our process or is not in a process locked by ours. |  
 
- See also
- svm_process_ownership_lock 
- 
svm_kernel_get_current 
 
 
◆ svm_processor_returnstack_move_level()
This function moves a portion of the return stack to another level. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | kernel | The kernel in which the targeted processor is. |  | [in] | start | The first return stack level to move. |  | [in] | end | The first return stack level after the portion to move. |  | [in] | target | The level where to move the portion of the return stack. |  
 
After the move, the first level of the moved is placed at the target.
- Note
- The start and end levels can be between 0 and the return stack size included, and the start shall be inferior to the end. 
- 
The target can be between 0 and the size of the stack minus the portion size, included.
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  | FAILURE | interruption when the kernel is not owned by our process or is not in a process locked by ours. |  | FAILURE | interruption when the start and end levels are inconsistent. |  | PROCESSOR | interruption when the return stack does not contain enough levels. |  | PROCESSOR | interruption when the move targets a level outside the return stack. |  
 
- See also
- svm_process_ownership_lock 
- 
svm_kernel_get_current 
 
 
◆ svm_processor_returnstack_swap_level()
This function swaps a state in the return stack of a processor with the current state of this processor. 
- Parameters
- 
  
    | [in] | svm | The SVM pointer passed as first argument of the callback function. |  | [in] | kernel | The kernel in which the targeted processor is. |  | [in] | level | The level of the state to be swaped in the return stack. |  
 
- Exceptions
- 
  
    | FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |  | FAILURE | interruption when the kernel is not owned by our process or is not in a process locked by ours. |  | PROCESSOR | interruption when the return stack does not contain enough levels. |  
 
- See also
- svm_process_ownership_lock 
- 
svm_kernel_get_current