39 void*
operator new(
size_t sz,
void* pv) {
return reinterpret_cast<Semaphore*
>(pv); };
62 void Init(uint16_t u16InitVal_, uint16_t u16MaxVal_);
109 bool Pend(uint32_t u32WaitTimeMS_);
137 bool Pend_i(uint32_t u32WaitTimeMS_);
Basic data type primatives used throughout the OS.
uint8_t WakeNext()
Wake the next thread waiting on the semaphore. Used internally.
the Semaphore class provides Binary & Counting semaphore objects, based on BlockingObject base class...
Blocking object base class declarations.
uint16_t m_u16MaxValue
Maximum count that can be held by this semaphore.
Mark3 Kernel Configuration This file is used to configure the kernel for your specific application in...
bool Pend_i(uint32_t u32WaitTimeMS_)
Pend_i.
The Thread Class. This object providing the fundamental thread control data structures and functions ...
void WakeMe(Thread *pclChosenOne_)
Wake a thread blocked on the semaphore. This is an internal function used for implementing timed sema...
void Pend()
Decrement the semaphore count. If the count is zero, the calling Thread will block until the semaphor...
uint16_t GetCount()
Return the current semaphore counter. This can be usedd by a thread to bypass blocking on a semaphore...
bool Post()
Increment the semaphore count. If the semaphore count is zero at the time this is called...
The BlockingObject class. Class implementing thread-blocking primatives. used for implementing things...
void Init(uint16_t u16InitVal_, uint16_t u16MaxVal_)
Initialize a semaphore before use. Must be called before attempting post/pend operations on the objec...
uint16_t m_u16Value
Current count held by the semaphore.
Thread linked-list declarations.