Mark3 Realtime Kernel
Mark3::Thread Class Reference

The Thread Class. This object providing the fundamental thread control data structures and functions that define a single thread of execution in the Mark3 operating system. It is the fundamental data type used to provide multitasking support in the kernel. More...

#include <thread.h>

Inheritance diagram for Mark3::Thread:
Mark3::TypedLinkListNode< Thread > Mark3::LinkListNode

Public Member Functions

void * operator new (size_t sz, void *pv)
 
 ~Thread ()
 
 Thread ()
 
bool IsInitialized ()
 IsInitialized Used to check whether or not a thread has been initialized prior to use. More...
 
void Init (K_WORD *pwStack_, uint16_t u16StackSize_, PORT_PRIO_TYPE uXPriority_, ThreadEntryFunc pfEntryPoint_, void *pvArg_)
 Init Initialize a thread prior to its use. Initialized threads are placed in the stopped state, and are not scheduled until the thread's start method has been invoked first. More...
 
void Start ()
 Start Start the thread - remove it from the stopped list, add it to the scheduler's list of threads (at the thread's set priority), and continue along. More...
 
void Stop ()
 Stop Stop a thread that's actively scheduled without destroying its stacks. Stopped threads can be restarted using the Start() API. More...
 
void SetName (const char *szName_)
 SetName Set the name of the thread - this is purely optional, but can be useful when identifying issues that come along when multiple threads are at play in a system. More...
 
const char * GetName ()
 GetName. More...
 
ThreadListGetOwner (void)
 GetOwner Return the ThreadList where the thread belongs when it's in the active/ready state in the scheduler. More...
 
ThreadListGetCurrent (void)
 GetCurrent Return the ThreadList where the thread is currently located. More...
 
PORT_PRIO_TYPE GetPriority (void)
 GetPriority Return the priority of the current thread. More...
 
PORT_PRIO_TYPE GetCurPriority (void)
 GetCurPriority Return the priority of the current thread. More...
 
void SetQuantum (uint16_t u16Quantum_)
 SetQuantum Set the thread's round-robin execution quantum. More...
 
uint16_t GetQuantum (void)
 GetQuantum Get the thread's round-robin execution quantum. More...
 
void SetCurrent (ThreadList *pclNewList_)
 SetCurrent. Set the thread's current to the specified thread list. More...
 
void SetOwner (ThreadList *pclNewList_)
 SetOwner. Set the thread's owner to the specified thread list. More...
 
void SetPriority (PORT_PRIO_TYPE uXPriority_)
 SetPriority. Set the priority of the Thread (running or otherwise) to a different level. This activity involves re-scheduling, and must be done so with due caution, as it may effect the determinism of the system. More...
 
void InheritPriority (PORT_PRIO_TYPE uXPriority_)
 InheritPriority Allow the thread to run at a different priority level (temporarily) for the purpose of avoiding priority inversions. This should only be called from within the implementation of blocking-objects. More...
 
void Exit ()
 Exit. Remove the thread from being scheduled again. The thread is effectively destroyed when this occurs. This is extremely useful for cases where a thread encounters an unrecoverable error and needs to be restarted, or in the context of systems where threads need to be created and destroyed dynamically. More...
 
void SetID (uint8_t u8ID_)
 SetID Set an arbitrary 8-bit ID to uniquely identify this thread. More...
 
uint8_t GetID ()
 GetID Return the thread's integer ID. Note that this ID is not guaranteed to be unique when dynamic threading is used in the system, or there are more than 255 threads. Also not guaranteed to be unique if the SetID function is called by the user. More...
 
uint16_t GetStackSlack ()
 GetStackSlack Performs a (somewhat lengthy) check on the thread stack to check the amount of stack margin (or "slack") remaining on the stack. If you're having problems with blowing your stack, you can run this function at points in your code during development to see what operations cause problems. Also useful during development as a tool to optimally size thread stacks. More...
 
uint16_t GetEventFlagMask ()
 GetEventFlagMask returns the thread's current event-flag mask, which is used in conjunction with the EventFlag blocking object type. More...
 
void SetEventFlagMask (uint16_t u16Mask_)
 SetEventFlagMask Sets the active event flag bitfield mask. More...
 
void SetEventFlagMode (EventFlagOperation eMode_)
 SetEventFlagMode Sets the active event flag operation mode. More...
 
EventFlagOperation GetEventFlagMode ()
 GetEventFlagMode Returns the thread's event flag's operating mode. More...
 
TimerGetTimer ()
 
void SetExpired (bool bExpired_)
 SetExpired Set the status of the current blocking call on the thread. More...
 
bool GetExpired ()
 GetExpired Return the status of the most-recent blocking call on the thread. More...
 
void * GetExtendedContext ()
 GetExtendedContext Return the Thread object's extended-context data pointer. Used by code implementing a user-defined thread-local storage model. Pointer exists only for the lifespan of the Thread. More...
 
void SetExtendedContext (void *pvData_)
 SetExtendedContext Assign the Thread object's extended-context data pointer. Used by code implementing a user-defined thread-local storage model. More...
 
ThreadState GetState ()
 GetState Returns the current state of the thread to the caller. Can be used to determine whether or not a thread is ready (or running), stopped, or terminated/exit'd. More...
 
void SetState (ThreadState eState_)
 SetState Set the thread's state to a new value. This is only to be used by code within the kernel, and is not indended for use by an end-user. More...
 
K_WORDGetStack ()
 GetStack. More...
 
K_WORDGetStackTop ()
 GetStackTop. More...
 
uint16_t GetStackSize ()
 GetStackSize. More...
 
int * ErrnoStorage ()
 ErrnoStorage. More...
 

Static Public Member Functions

static ThreadInit (uint16_t u16StackSize_, PORT_PRIO_TYPE uXPriority_, ThreadEntryFunc pfEntryPoint_, void *pvArg_)
 Init Create and initialize a new thread, using memory from the auto-allocated heap region to supply both the thread object and its stack. The thread returned can then be started using the Start() method directly. Note that the memory used to create this thread cannot be reclaimed, and so this API is only suitable for threads that exist for the duration of runtime. More...
 
static void Sleep (uint32_t u32TimeMs_)
 Sleep Put the thread to sleep for the specified time (in milliseconds). Actual time slept may be longer (but not less than) the interval specified. More...
 
static void Yield (void)
 Yield Yield the thread - this forces the system to call the scheduler and determine what thread should run next. This is typically used when threads are moved in and out of the scheduler. More...
 
static void CoopYield (void)
 CoopYield Cooperative yield - This forces the system to not only call the scheduler, but also move the currently executing thread to the back of the current thread list, allowing other same-priority threads the opportunity to run. This is used primarily for cooperative scheduling between threads in the same priority level. More...
 

Private Member Functions

void SetPriorityBase (PORT_PRIO_TYPE uXPriority_)
 SetPriorityBase. More...
 

Static Private Member Functions

static void ContextSwitchSWI (void)
 ContextSwitchSWI This code is used to trigger the context switch interrupt. Called whenever the kernel decides that it is necessary to swap out the current thread for the "next" thread. More...
 

Private Attributes

K_WORDm_pwStackTop
 Pointer to the top of the thread's stack. More...
 
K_WORDm_pwStack
 Pointer to the thread's stack. More...
 
uint8_t m_u8ThreadID
 Thread ID. More...
 
PORT_PRIO_TYPE m_uXPriority
 Default priority of the thread. More...
 
PORT_PRIO_TYPE m_uXCurPriority
 Current priority of the thread (priority inheritence) More...
 
ThreadState m_eState
 Enum indicating the thread's current state. More...
 
void * m_pvExtendedContext
 Pointer provided to a Thread to implement thread-local storage. More...
 
const char * m_szName
 Thread name. More...
 
uint16_t m_u16StackSize
 Size of the stack (in bytes) More...
 
ThreadListm_pclCurrent
 Pointer to the thread-list where the thread currently resides. More...
 
ThreadListm_pclOwner
 Pointer to the thread-list where the thread resides when active. More...
 
ThreadEntryFunc m_pfEntryPoint
 The entry-point function called when the thread starts. More...
 
void * m_pvArg
 Pointer to the argument passed into the thread's entrypoint. More...
 
uint16_t m_u16Quantum
 Thread quantum (in milliseconds) More...
 
uint16_t m_u16FlagMask
 Event-flag mask. More...
 
EventFlagOperation m_eFlagMode
 Event-flag mode. More...
 
bool m_bExpired
 Indicate whether or not a blocking-object timeout has occurred. More...
 
int m_iErrno
 Storage used to hold a thread-safe errno value. More...
 
Timer m_clTimer
 Timer used for blocking-object timeouts. More...
 

Friends

class ThreadPort
 

Additional Inherited Members

Detailed Description

The Thread Class. This object providing the fundamental thread control data structures and functions that define a single thread of execution in the Mark3 operating system. It is the fundamental data type used to provide multitasking support in the kernel.

Examples:
lab10_notifications/main.cpp, lab11_mailboxes/main.cpp, lab1_kernel_setup/main.cpp, lab2_coroutines/main.cpp, lab3_round_robin/main.cpp, lab4_semaphores/main.cpp, lab5_mutexes/main.cpp, lab6_timers/main.cpp, lab7_events/main.cpp, lab8_messages/main.cpp, and lab9_dynamic_threads/main.cpp.

Definition at line 64 of file thread.h.

Constructor & Destructor Documentation

◆ ~Thread()

Mark3::Thread::~Thread ( )

Definition at line 30 of file thread.cpp.

◆ Thread()

Mark3::Thread::Thread ( )
inline

Definition at line 70 of file thread.h.

Member Function Documentation

◆ ContextSwitchSWI()

void Mark3::Thread::ContextSwitchSWI ( void  )
staticprivate

ContextSwitchSWI This code is used to trigger the context switch interrupt. Called whenever the kernel decides that it is necessary to swap out the current thread for the "next" thread.

Definition at line 391 of file thread.cpp.

◆ CoopYield()

void Mark3::Thread::CoopYield ( void  )
static

CoopYield Cooperative yield - This forces the system to not only call the scheduler, but also move the currently executing thread to the back of the current thread list, allowing other same-priority threads the opportunity to run. This is used primarily for cooperative scheduling between threads in the same priority level.

Definition at line 324 of file thread.cpp.

◆ ErrnoStorage()

int* Mark3::Thread::ErrnoStorage ( )
inline

ErrnoStorage.

Returns
Pointer to thread's unique errno storage value

Definition at line 424 of file thread.h.

◆ Exit()

void Mark3::Thread::Exit ( )

Exit. Remove the thread from being scheduled again. The thread is effectively destroyed when this occurs. This is extremely useful for cases where a thread encounters an unrecoverable error and needs to be restarted, or in the context of systems where threads need to be created and destroyed dynamically.

This must not be called on the idle thread.

Examples:
lab9_dynamic_threads/main.cpp.

Definition at line 187 of file thread.cpp.

◆ GetCurPriority()

PORT_PRIO_TYPE Mark3::Thread::GetCurPriority ( void  )
inline

GetCurPriority Return the priority of the current thread.

Returns
Priority of the current thread

Definition at line 181 of file thread.h.

◆ GetCurrent()

ThreadList* Mark3::Thread::GetCurrent ( void  )
inline

GetCurrent Return the ThreadList where the thread is currently located.

Returns
Pointer to the thread's current list

Definition at line 166 of file thread.h.

◆ GetEventFlagMask()

uint16_t Mark3::Thread::GetEventFlagMask ( )
inline

GetEventFlagMask returns the thread's current event-flag mask, which is used in conjunction with the EventFlag blocking object type.

Returns
A copy of the thread's event flag mask

Definition at line 317 of file thread.h.

◆ GetEventFlagMode()

EventFlagOperation Mark3::Thread::GetEventFlagMode ( )
inline

GetEventFlagMode Returns the thread's event flag's operating mode.

Returns
The thread's event flag mode.

Definition at line 336 of file thread.h.

◆ GetExpired()

bool Mark3::Thread::GetExpired ( )

GetExpired Return the status of the most-recent blocking call on the thread.

Returns
true - call expired, false - call did not expire

Definition at line 424 of file thread.cpp.

◆ GetExtendedContext()

void* Mark3::Thread::GetExtendedContext ( )
inline

GetExtendedContext Return the Thread object's extended-context data pointer. Used by code implementing a user-defined thread-local storage model. Pointer exists only for the lifespan of the Thread.

Returns
Thread's extended context data pointer.

Definition at line 368 of file thread.h.

◆ GetID()

uint8_t Mark3::Thread::GetID ( )
inline

GetID Return the thread's integer ID. Note that this ID is not guaranteed to be unique when dynamic threading is used in the system, or there are more than 255 threads. Also not guaranteed to be unique if the SetID function is called by the user.

Returns
Thread's 8-bit ID, set by the user

Definition at line 292 of file thread.h.

◆ GetName()

const char* Mark3::Thread::GetName ( )
inline

GetName.

Returns
Pointer to the name of the thread. If this is not set, will be nullptr.

Definition at line 149 of file thread.h.

◆ GetOwner()

ThreadList* Mark3::Thread::GetOwner ( void  )
inline

GetOwner Return the ThreadList where the thread belongs when it's in the active/ready state in the scheduler.

Returns
Pointer to the Thread's owner list

Definition at line 159 of file thread.h.

◆ GetPriority()

PORT_PRIO_TYPE Mark3::Thread::GetPriority ( void  )
inline

GetPriority Return the priority of the current thread.

Returns
Priority of the current thread

Definition at line 174 of file thread.h.

◆ GetQuantum()

uint16_t Mark3::Thread::GetQuantum ( void  )
inline

GetQuantum Get the thread's round-robin execution quantum.

Returns
The thread's quantum

Definition at line 197 of file thread.h.

◆ GetStack()

K_WORD* Mark3::Thread::GetStack ( )
inline

GetStack.

Returns
Pointer to the blob of memory used as the thread's stack

Definition at line 403 of file thread.h.

◆ GetStackSize()

uint16_t Mark3::Thread::GetStackSize ( )
inline

GetStackSize.

Returns
Size of the thread's stack in bytes

Definition at line 418 of file thread.h.

◆ GetStackSlack()

uint16_t Mark3::Thread::GetStackSlack ( )

GetStackSlack Performs a (somewhat lengthy) check on the thread stack to check the amount of stack margin (or "slack") remaining on the stack. If you're having problems with blowing your stack, you can run this function at points in your code during development to see what operations cause problems. Also useful during development as a tool to optimally size thread stacks.

Returns
The amount of slack (unused bytes) on the stack
Examples:
lab9_dynamic_threads/main.cpp.

◆ GetStackTop()

K_WORD* Mark3::Thread::GetStackTop ( )
inline

GetStackTop.

Returns
Pointer to the thread object's current top-of-stack address. Note: This only returns the top-of-stack address stored in this context object, which is updated on context-switch. If this is called by the currently-executing thread, it will thus not contain the same value as the CPU's hardware stack pointer.

Definition at line 412 of file thread.h.

◆ GetState()

ThreadState Mark3::Thread::GetState ( )
inline

GetState Returns the current state of the thread to the caller. Can be used to determine whether or not a thread is ready (or running), stopped, or terminated/exit'd.

Returns
ThreadState_t representing the thread's current state
Examples:
lab9_dynamic_threads/main.cpp.

Definition at line 389 of file thread.h.

◆ GetTimer()

Timer * Mark3::Thread::GetTimer ( )

Return a pointer to the thread's timer object

Definition at line 411 of file thread.cpp.

◆ InheritPriority()

void Mark3::Thread::InheritPriority ( PORT_PRIO_TYPE  uXPriority_)

InheritPriority Allow the thread to run at a different priority level (temporarily) for the purpose of avoiding priority inversions. This should only be called from within the implementation of blocking-objects.

Parameters
uXPriority_New Priority to boost to.

Definition at line 382 of file thread.cpp.

◆ Init() [1/2]

void Mark3::Thread::Init ( K_WORD pwStack_,
uint16_t  u16StackSize_,
PORT_PRIO_TYPE  uXPriority_,
ThreadEntryFunc  pfEntryPoint_,
void *  pvArg_ 
)

Init Initialize a thread prior to its use. Initialized threads are placed in the stopped state, and are not scheduled until the thread's start method has been invoked first.

Parameters
pwStack_Pointer to the stack to use for the thread
u16StackSize_Size of the stack (in bytes)
uXPriority_Priority of the thread (0 = idle, 7 = max)
pfEntryPoint_This is the function that gets called when the thread is started
pvArg_Pointer to the argument passed into the thread's entrypoint function.
Examples:
lab9_dynamic_threads/main.cpp.

Definition at line 49 of file thread.cpp.

◆ Init() [2/2]

Thread * Mark3::Thread::Init ( uint16_t  u16StackSize_,
PORT_PRIO_TYPE  uXPriority_,
ThreadEntryFunc  pfEntryPoint_,
void *  pvArg_ 
)
static

Init Create and initialize a new thread, using memory from the auto-allocated heap region to supply both the thread object and its stack. The thread returned can then be started using the Start() method directly. Note that the memory used to create this thread cannot be reclaimed, and so this API is only suitable for threads that exist for the duration of runtime.

Parameters
u16StackSize_Size of the stack (in bytes)
uXPriority_Priority of the thread (0 = idle, 7 = max)
pfEntryPoint_This is the function that gets called when the thread is started
pvArg_Pointer to the argument passed into the thread's entrypoint function.
Returns
Pointer to a newly-created thread.

Definition at line 101 of file thread.cpp.

◆ IsInitialized()

bool Mark3::Thread::IsInitialized ( void  )
inline

IsInitialized Used to check whether or not a thread has been initialized prior to use.

Returns
return true if the thread object has been initialized, false otherwise.

Definition at line 77 of file thread.h.

◆ operator new()

void* Mark3::Thread::operator new ( size_t  sz,
void *  pv 
)
inline

Definition at line 67 of file thread.h.

◆ SetCurrent()

void Mark3::Thread::SetCurrent ( ThreadList pclNewList_)
inline

SetCurrent. Set the thread's current to the specified thread list.

Parameters
pclNewList_Pointer to the threadlist to apply thread ownership

Definition at line 206 of file thread.h.

◆ SetEventFlagMask()

void Mark3::Thread::SetEventFlagMask ( uint16_t  u16Mask_)
inline

SetEventFlagMask Sets the active event flag bitfield mask.

Parameters
u16Mask_

Definition at line 323 of file thread.h.

◆ SetEventFlagMode()

void Mark3::Thread::SetEventFlagMode ( EventFlagOperation  eMode_)
inline

SetEventFlagMode Sets the active event flag operation mode.

Parameters
eMode_Event flag operation mode, defines the logical operator to apply to the event flag.

Definition at line 330 of file thread.h.

◆ SetExpired()

void Mark3::Thread::SetExpired ( bool  bExpired_)

SetExpired Set the status of the current blocking call on the thread.

Parameters
bExpired_true - call expired, false - call did not expire

Definition at line 417 of file thread.cpp.

◆ SetExtendedContext()

void Mark3::Thread::SetExtendedContext ( void *  pvData_)
inline

SetExtendedContext Assign the Thread object's extended-context data pointer. Used by code implementing a user-defined thread-local storage model.

Object assigned to the context pointer should persist for the duration of the Thread.

Parameters
pvData_Object to assign to the extended data pointer.+

Definition at line 380 of file thread.h.

◆ SetID()

void Mark3::Thread::SetID ( uint8_t  u8ID_)
inline

SetID Set an arbitrary 8-bit ID to uniquely identify this thread.

Parameters
u8ID_8-bit Thread ID, set by the user

Definition at line 282 of file thread.h.

◆ SetName()

void Mark3::Thread::SetName ( const char *  szName_)
inline

SetName Set the name of the thread - this is purely optional, but can be useful when identifying issues that come along when multiple threads are at play in a system.

Parameters
szName_Char string containing the thread name

Definition at line 143 of file thread.h.

◆ SetOwner()

void Mark3::Thread::SetOwner ( ThreadList pclNewList_)
inline

SetOwner. Set the thread's owner to the specified thread list.

Parameters
pclNewList_Pointer to the threadlist to apply thread ownership

Definition at line 213 of file thread.h.

◆ SetPriority()

void Mark3::Thread::SetPriority ( PORT_PRIO_TYPE  uXPriority_)

SetPriority. Set the priority of the Thread (running or otherwise) to a different level. This activity involves re-scheduling, and must be done so with due caution, as it may effect the determinism of the system.

This should always be called from within a critical section to prevent system issues.

Parameters
uXPriority_New priority of the thread

Definition at line 341 of file thread.cpp.

◆ SetPriorityBase()

void Mark3::Thread::SetPriorityBase ( PORT_PRIO_TYPE  uXPriority_)
private

SetPriorityBase.

Parameters
uXPriority_

Definition at line 331 of file thread.cpp.

◆ SetQuantum()

void Mark3::Thread::SetQuantum ( uint16_t  u16Quantum_)
inline

SetQuantum Set the thread's round-robin execution quantum.

Parameters
u16Quantum_Thread's execution quantum (in milliseconds)

Definition at line 190 of file thread.h.

◆ SetState()

void Mark3::Thread::SetState ( ThreadState  eState_)
inline

SetState Set the thread's state to a new value. This is only to be used by code within the kernel, and is not indended for use by an end-user.

Parameters
eState_New thread state to set.

Definition at line 397 of file thread.h.

◆ Sleep()

void Mark3::Thread::Sleep ( uint32_t  u32TimeMs_)
static

Sleep Put the thread to sleep for the specified time (in milliseconds). Actual time slept may be longer (but not less than) the interval specified.

Parameters
u32TimeMs_Time to sleep (in ms)
Examples:
lab10_notifications/main.cpp, lab11_mailboxes/main.cpp, lab1_kernel_setup/main.cpp, lab2_coroutines/main.cpp, lab7_events/main.cpp, lab8_messages/main.cpp, and lab9_dynamic_threads/main.cpp.

Definition at line 249 of file thread.cpp.

◆ Start()

void Mark3::Thread::Start ( void  )

Start Start the thread - remove it from the stopped list, add it to the scheduler's list of threads (at the thread's set priority), and continue along.

Examples:
lab9_dynamic_threads/main.cpp.

Definition at line 110 of file thread.cpp.

◆ Stop()

void Mark3::Thread::Stop ( void  )

Stop Stop a thread that's actively scheduled without destroying its stacks. Stopped threads can be restarted using the Start() API.

Definition at line 141 of file thread.cpp.

◆ Yield()

void Mark3::Thread::Yield ( void  )
static

Yield Yield the thread - this forces the system to call the scheduler and determine what thread should run next. This is typically used when threads are moved in and out of the scheduler.

Definition at line 304 of file thread.cpp.

Friends And Related Function Documentation

◆ ThreadPort

friend class ThreadPort
friend

Definition at line 426 of file thread.h.

Member Data Documentation

◆ m_bExpired

bool Mark3::Thread::m_bExpired
private

Indicate whether or not a blocking-object timeout has occurred.

Definition at line 505 of file thread.h.

◆ m_clTimer

Timer Mark3::Thread::m_clTimer
private

Timer used for blocking-object timeouts.

Definition at line 511 of file thread.h.

◆ m_eFlagMode

EventFlagOperation Mark3::Thread::m_eFlagMode
private

Event-flag mode.

Definition at line 501 of file thread.h.

◆ m_eState

ThreadState Mark3::Thread::m_eState
private

Enum indicating the thread's current state.

Definition at line 464 of file thread.h.

◆ m_iErrno

int Mark3::Thread::m_iErrno
private

Storage used to hold a thread-safe errno value.

Definition at line 508 of file thread.h.

◆ m_pclCurrent

ThreadList* Mark3::Thread::m_pclCurrent
private

Pointer to the thread-list where the thread currently resides.

Definition at line 480 of file thread.h.

◆ m_pclOwner

ThreadList* Mark3::Thread::m_pclOwner
private

Pointer to the thread-list where the thread resides when active.

Definition at line 483 of file thread.h.

◆ m_pfEntryPoint

ThreadEntryFunc Mark3::Thread::m_pfEntryPoint
private

The entry-point function called when the thread starts.

Definition at line 486 of file thread.h.

◆ m_pvArg

void* Mark3::Thread::m_pvArg
private

Pointer to the argument passed into the thread's entrypoint.

Definition at line 489 of file thread.h.

◆ m_pvExtendedContext

void* Mark3::Thread::m_pvExtendedContext
private

Pointer provided to a Thread to implement thread-local storage.

Definition at line 468 of file thread.h.

◆ m_pwStack

K_WORD* Mark3::Thread::m_pwStack
private

Pointer to the thread's stack.

Definition at line 452 of file thread.h.

◆ m_pwStackTop

K_WORD* Mark3::Thread::m_pwStackTop
private

Pointer to the top of the thread's stack.

!! NOTE !!! ORDER IS IMPORTANT - DO NOT MOVE THESE MEMBER VARIABLE DECLARATIONS !! UNLESS YOU REALLY KNOW WHAT YOU'RE DOING! IF YOU MUST ADD NEW MEMBERS, ENSURE !! TO ADD THEM AT THE BOTTOM

Definition at line 449 of file thread.h.

◆ m_szName

const char* Mark3::Thread::m_szName
private

Thread name.

Definition at line 473 of file thread.h.

◆ m_u16FlagMask

uint16_t Mark3::Thread::m_u16FlagMask
private

Event-flag mask.

Definition at line 498 of file thread.h.

◆ m_u16Quantum

uint16_t Mark3::Thread::m_u16Quantum
private

Thread quantum (in milliseconds)

Definition at line 493 of file thread.h.

◆ m_u16StackSize

uint16_t Mark3::Thread::m_u16StackSize
private

Size of the stack (in bytes)

Definition at line 477 of file thread.h.

◆ m_u8ThreadID

uint8_t Mark3::Thread::m_u8ThreadID
private

Thread ID.

Definition at line 455 of file thread.h.

◆ m_uXCurPriority

PORT_PRIO_TYPE Mark3::Thread::m_uXCurPriority
private

Current priority of the thread (priority inheritence)

Definition at line 461 of file thread.h.

◆ m_uXPriority

PORT_PRIO_TYPE Mark3::Thread::m_uXPriority
private

Default priority of the thread.

Definition at line 458 of file thread.h.


The documentation for this class was generated from the following files: