Global¶
- group Global_sysJobs
sysJobs globals
lorem
Macros¶
- group Macros_sysJobs_h
Variables¶
- group Variables_sysJobs_h
API’s¶
- group Apis_sysJobs_h
Getters¶
- group Getters_sysJobs_h
Functions
-
CosmOS_SysJobsGroupConfigurationType *sysJobs_getSysJobsGroups(CosmOS_SysJobsConfigurationType *sysJobs)¶
Get sysJobs groups.
- Parameters
sysJobs – [in] configuration pointer
- Returns
-
BitWidthType sysJobs_getSysJobsNumOfGroups(CosmOS_SysJobsConfigurationType *sysJobs)¶
Get sysJobs numOfGroups.
- Parameters
sysJobs – [in] configuration pointer
- Returns
BitWidthType
-
BitWidthType sysJobs_getSysJobsHyperTick(CosmOS_SysJobsConfigurationType *sysJobs)¶
Get sysJobs hyperTick.
- Parameters
sysJobs – [in] configuration pointer
- Returns
BitWidthType
-
BitWidthType sysJobs_getSysJobsCurrentTick(CosmOS_SysJobsConfigurationType *sysJobs)¶
Get sysJobs currentTick.
- Parameters
sysJobs – [in] configuration pointer
- Returns
BitWidthType
-
CosmOS_GenericVoidType *sysJobs_getSysJobsGroupHandlers(CosmOS_SysJobsConfigurationType *sysJobs, BitWidthType groupId)¶
Get sysJobs group handlers.
- Parameters
sysJobs – [in] configuration pointer
groupId – [in] specific group id that can be found in configured array of sysJob groups
- Returns
CosmOS_GenericVoidType *
-
BitWidthType sysJobs_getSysJobsGroupNumOfHandlers(CosmOS_SysJobsConfigurationType *sysJobs, BitWidthType groupId)¶
Get sysJobs group numOfHandlers.
- Parameters
sysJobs – [in] configuration pointer
groupId – [in] specific group id that can be found in configured array of sysJob groups
- Returns
BitWidthType
-
BitWidthType sysJobs_getSysJobsGroupTickMultiplicator(CosmOS_SysJobsConfigurationType *sysJobs, BitWidthType groupId)¶
Get sysJobs group tickMultiplicator.
- Parameters
sysJobs – [in] configuration pointer
groupId – [in] specific group id that can be found in configured array of sysJob groups
- Returns
BitWidthType
-
CosmOS_SysJobsGroupConfigurationType *sysJobs_getSysJobsGroups(CosmOS_SysJobsConfigurationType *sysJobs)¶
Setters¶
- group Setters_sysJobs_h
Functions
-
void sysJobs_setSysJobsCurrentTick(CosmOS_SysJobsConfigurationType *sysJobs, BitWidthType currentTickParam)¶
Set sysJobs currentTick. This function cannot be called from the unprivileged context directly.
- Parameters
sysJobs – [out] configuration pointer
currentTickParam – [in] tick to be set
- Returns
none
-
void sysJobs_setSysJobsCurrentTick(CosmOS_SysJobsConfigurationType *sysJobs, BitWidthType currentTickParam)¶
General¶
- group General_sysJobs_h
Functions
-
void sysJobs_dispatcher(BitWidthType entityId)¶
System jobs dispatcher. This function cannot be called from the unprivileged context directly. DEMO.
The implementation contains obtaining of the core configuration by calling core_getCoreCfg function and using it in the function core_getCoreSysJobs to get system jobs variable for the current core. As the system jobs have internal scheduling the function sysJobs_getSysJobsCurrentTick is used to get its current internal tick. The current tick is then incremented by 1. The number of system jobs groups for the current core is obtained by calling sysJobs_getSysJobsNumOfGroups function and for loop that iterates over all system jobs groups for current core configuration implemented. For every system jobs group the group tick multiplicator is obtained by sysJobs_getSysJobsGroupTickMultiplicator function and then the if condition is implemented to check if the current system jobs tick modulo group tick multiplicator is zero, otherwise the group is skipped. If the result of modulo operation is zero, handlers are obtained from the current system jobs group by calling function sysJobs_getSysJobsGroupHandlers and also the number of handlers is obtained by calling function sysJobs_getSysJobsGroupNumOfHandlers. Then nested for loop is implemented that iterates over all handlers configured in the current group and run them. In the end the system jobs hypertick is obtained by calling function sysJobs_getSysJobsHyperTick and used in modulo operation with the current system jobs tick and the result is set to the current system jobs tick by calling functio sysJobs_setSysJobsCurrentTick.
- Parameters
entityId – [in] is used during the system call dispatching
- Returns
none
-
void sysJobs_dispatcher(BitWidthType entityId)¶