This module contains API functions to handle SVM process execution.
More...
This module contains API functions to handle SVM process execution.
◆ svm_process_interrupt()
This function requests the interruption of a process.
- Parameters
-
[in] | svm | The SVM pointer passed as first argument of the callback function. |
[in] | process | The process to interrupt. |
[in] | interruption | The interruption to use for process interruption. |
The process does need to be locked by us.
- Note
- The interruption of the process is asynchronous, and it will be interrupted once the interruption request reaches the process.
- Exceptions
-
FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |
◆ svm_process_pause()
This function changes the current process status to notify it enters in a blocking wait inside an instruction.
- Parameters
-
[in] | svm | The SVM pointer passed as first argument of the callback function. |
The process status is changed to WAITING and a notification is sent to its scheduler.
- Note
- If the instruction execution is reached before a call to svm_process_resume, the process is automatically resumed before the next instruction execution.
An example of a proper implementation of a pause in the current process could be:
SVM_FUNCTION void svm_process_pause(const void *svm)
This function changes the current process status to notify it enters in a blocking wait inside an ins...
SVM_FUNCTION void svm_process_resume(const void *svm)
This function changes the current process status to notify it exits a blocking wait inside an instruc...
- Exceptions
-
FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |
FAILURE | interruption when this API function is called outside a waiting instruction. |
- See also
- svm_process_resume
◆ svm_process_resume()
This function changes the current process status to notify it exits a blocking wait inside an instruction.
- Parameters
-
[in] | svm | The SVM pointer passed as first argument of the callback function. |
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.
- 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.
- Exceptions
-
FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |
FAILURE | interruption when this API function is called outside a waiting instruction. |
- See also
- svm_process_pause
◆ svm_process_run()
This function requires the execution of a process with a delay as an integer value.
- Parameters
-
[in] | svm | The SVM pointer passed as first argument of the callback function. |
[in] | process | The process to run. |
[in] | delay | The delay before the process replies when locked. |
The process does need to be locked by us.
- Note
- The execution of the process is asynchronous, and it will start run once the execution request reached the process.
- Exceptions
-
FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |
FAILURE | interruption when this API function is called from a process. |
◆ svm_process_run__raw()
SVM_FUNCTION void svm_process_run__raw |
( |
const void * |
svm, |
|
|
const SVM_Process |
process, |
|
|
const unsigned long int |
delay |
|
) |
| |
This function requires the execution of a process with a delay as an raw integer.
- Parameters
-
[in] | svm | The SVM pointer passed as first argument of the callback function. |
[in] | process | The process to run. |
[in] | delay | The delay before the process replies when locked. |
The process does need to be locked by us.
- Note
- The execution of the process is asynchronous, and it will start run once the execution request reaches the process.
- Exceptions
-
FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |
FAILURE | interruption when this API function is called from a process. |
◆ svm_process_suspend()
This function requests the suspension of a process.
- Parameters
-
[in] | svm | The SVM pointer passed as first argument of the callback function. |
[in] | process | The process to suspend. |
The process does need to be locked by us.
- Note
- The suspension of the process is asynchronous, and it will be suspension once the suspension request reaches the process.
- Exceptions
-
FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |
◆ svm_process_terminate()
This function requests the terminaison of a process.
- Parameters
-
[in] | svm | The SVM pointer passed as first argument of the callback function. |
[in] | process | The process to terminate. |
The process does need to be locked by us.
- Note
- The terminaison of the process is asynchronous, and it will be terminated once the terminaison request reaches the process.
- Exceptions
-
FAILURE | interruption when a parameter is incorrect. (Please refer to the main description page of this API.) |