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

CosmOS_SysJobsGroupConfigurationType *

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

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

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