29#if !defined( __INOS_1MS_H ) 
   68        long SetInterval(
long aiInterval)
 
 
   96        CINOSxmsHandler(
void* aHandler, 
void* aObject, int32 aInterval, 
bool aActive=
true, 
bool aSingle=
false)
 
  100            pHandler = (void(*)(void)) aHandler;
 
  105        virtual void Call()
 override { INOSCallClassMember_0(pObject, (
void *) pHandler); }
 
 
  125        typedef std::function<void()> tFunction;
 
  129                m_Function(aFunction)
 
  134        virtual void Call()
 override { m_Function(); }
 
  140        const tFunction m_Function;
 
 
  222                uintptr_t& aTimeoutId, 
const CINOSxmsHandlerFunction::tFunction& aFunction, int32 aMS,
 
  223                bool aActive=
true, 
bool aSingle=
false);
 
  247            { 
return g_pTarget->GetTickCount();};
 
 
  250            { 
return aiTickCount-g_pTarget->GetTickCount();};
 
 
  253            { 
return g_pTarget->GetTickAddress();};
 
 
  256            { m_pTickAddress = apAddress; *m_pTickAddress = 0; };
 
 
  259            { 
return GetResumeTicks();};
 
 
  261        typedef uintptr_t tIntervalId;
 
  276        template<
typename TFct>
 
  277        void SetInterval(TFct aFct, uint32 aIntervalMs, tIntervalId& aIntervalId) {
 
 
  290                aIntervalId = tIntervalId();
 
 
  294        typedef uintptr_t tTimeoutId;
 
  309        template<
typename TFct>
 
  310        void SetTimeout(TFct aFct, uint32 aTimeoutMs, tTimeoutId& aTimeoutId) {
 
  311            AddHandler(aTimeoutId, aFct, aTimeoutMs, 
true, 
true);
 
 
  323                aTimeoutId = tTimeoutId();
 
 
  329            { 
return m_Hooks.
HasHooks(auNumber); }
 
 
  337        TINOSDoubleLinkedList<int32>* p1msTimers;
 
  341        int32* m_pTickAddress = 0;
 
  346        uint32 m_uTicksFor1ms = 0;
 
  355            eThresholdMultiplier = 10   
 
  357        uint32 m_uTicksThresholdToSwitchSelected = 0;
 
  360        uint32 m_uCountOfReselection = 0;
 
  363        volatile uint32 m_uMostRecentlyResumedTicks = 0;
 
  366        uint32 m_uOverrun = 0;
 
  370        uint32 m_uWakeUpCount = 0;
 
 
  425#define pINOS1ms CINOS1ms::pInstance() 
  428#define g_pINOS1ms CINOS1ms::pInstance() 
#define DECLARE_DYNAMIC_PLACEMENT(aClass)
Definition cinospartitionmemory.h:348
 
#define DECLARE_DYNAMIC(aClass)
Definition cinospartitionmemory.h:328
 
Definition inos_1ms.h:173
 
virtual void Action() override
Task action loop, needs to be overwritten by the user. For more info, see section Creation.
 
void RemoveHandler(CINOSxmsHandlerBase *aHandler, bool aDelete=true)
 
bool KickExactly(CINOSTask *apSource=0) INOS_COMPILE_OPTIMIZED
 
uint32 GetSystemTicksAtLast1msTick()
Definition inos_1ms.h:258
 
void AddHandler(CINOSxmsHandlerBase *aHandler)
 
int32 GetTickCount()
Definition inos_1ms.h:246
 
bool KickSporadically() INOS_COMPILE_OPTIMIZED
 
void ClearInterval(tIntervalId &aIntervalId)
Definition inos_1ms.h:286
 
void SetTimeout(TFct aFct, uint32 aTimeoutMs, tTimeoutId &aTimeoutId)
Definition inos_1ms.h:310
 
void SetInterval(TFct aFct, uint32 aIntervalMs, tIntervalId &aIntervalId)
Definition inos_1ms.h:277
 
static CINOSMutex m_Mutex
public
Definition inos_1ms.h:411
 
int32 GetTickDelta(int32 aiTickCount)
Definition inos_1ms.h:249
 
static CINOS1ms & Instance()
singleton
 
static uint32 m_uCoreMask
core mask
Definition inos_1ms.h:413
 
CINOSxmsHandler * AddHandler(void *aHandler, void *aObject, int32 aMS, bool aActive=true, bool aSingle=false)
 
void eAddTimer(uint32 aTimerPtr)
 
bool HasHandlers(uint32 auNumber)
Definition inos_1ms.h:328
 
CINOSxmsHandlerFunction * AddHandler(uintptr_t &aTimeoutId, const CINOSxmsHandlerFunction::tFunction &aFunction, int32 aMS, bool aActive=true, bool aSingle=false)
 
void AddTimer(int32 *aTimer)
 
int32 * GetTickAddress()
Definition inos_1ms.h:252
 
void SetTickAddress(int32 *apAddress)
Definition inos_1ms.h:255
 
void ClearTimeout(tTimeoutId &aTimeoutId)
Definition inos_1ms.h:319
 
Definition cinosbushooks.h:145
 
void SetIntervalCmd(uint32 auInterval)
Set hook interval.
Definition cinosbushooks.h:163
 
uint32 GetIntervalAct() const
Get actual hook interval counter.
Definition cinosbushooks.h:180
 
uint32 GetIntervalCmd()
Get commanded hook interval.
Definition cinosbushooks.h:173
 
uint32 Disable()
Disable hook.
 
uint32 Enable()
Enable hook.
 
Definition cinosbushooks.h:479
 
bool HasHooks(uint32 auNumber)
Check whether the given number of hooks are still available.
Definition cinosbushooks.h:887
 
Definition cinosmutex.h:36
 
Definition cinostask.h:52
 
long GetTimer() const
Definition inos_1ms.h:75
 
Definition inos_1ms.h:121
 
virtual void Call() override
Definition inos_1ms.h:134
 
virtual void Call() override
Definition inos_1ms.h:105