INOS
|
#include <cinosbus.h>
Public Member Functions | |
DECLARE_DYNAMIC (SINOSBusPostTiming) | |
Public Attributes | |
uint32 | m_uPostOverrunCounter |
bool | m_bValid |
uint32 | m_uSuspendTicks |
int32 | m_uAct |
uint32 | m_uMax |
uint32 | m_uAllowed |
uint32 | m_uPostHooks |
number of bus post hooks | |
Struct to measure 'bus post timing'. It's used like this: Whenever the post hook has completed, it stores the current ticks in the m_uSuspendTicks and sets m_bValid to 'true'. Note that there's one instance of this struct for each category. Whenever the category (e.g. GINLink0) get's woken up, the time measurement happens by comparing the current ticks to the m_uSuspendTicks. The difference of ticks is the theoretical "spare time" that could have been used by the "Post" task - and thus is the "reserve". That value is substracted from m_uAllowed (which is e.g. 62.5us, 125us, 250us, etc.) and then we have the 'percentage amount of time' consumed by the "Post" task. Note that if m_bValid is not set to 'true' it means that the "Post" task has not yet completed and therefore we have a postoverrun (or someone is debugging the task or similar). In that case, m_uMax will be set to m_uAllowed to indicate that 100% of the time has been consumed.