void OS_LeaveCriticalSection (void) { char temp; _OS_Flags.bInCriticalSection = 0; temp = 0; if (_OS_Flags.bGIE_CTemp) temp |= 0x80; OS_RI(temp); }
void OS_LeaveCriticalSection (void) { char temp; _OS_Flags.bInCriticalSection = 0; temp = 0; if (_OS_Flags.bI0_CTemp) temp |= 0x20; if (_OS_Flags.bI1_CTemp) temp |= 0x08; OS_RI(temp); }
void _OS_Dtimer_Create (OST_DTIMER *dtimer) { _OS_Temp = OS_DI(); dtimer->Next = _OS_DTimers.Next; dtimer->Flags = _OS_DTimers.Flags; dtimer->Timer = 0; _OS_DTimers.Next = (OST_DTIMER*)dtimer; _OS_DTimers.Flags.bNextEnable = 1; OS_RI(_OS_Temp); }
void _OS_Dtimer_Create (OST_DTIMER *dtimer) { _OS_Temp = OS_DI(); dtimer->Next = _OS_DTimers.Next; dtimer->Timer = 0; // Perform "dtimer->Flags = _OS_DTimers.Flags;": *(unsigned char*)dtimer = *(unsigned char*)&_OS_DTimers.Flags; _OS_DTimers.Next = (OST_DTIMER*)dtimer; OS_DTIMER_ATOMIC_WRITE_A(_OS_DTimers.Flags.bNextEnable = 1); OS_RI(_OS_Temp); }
void OS_LeaveCriticalSection (void) { _OS_Flags.bInCriticalSection = 0; OS_RI(_OS_Flags.cIPL_Temp << 5); }