Thread Enumerations and Types
enum thread_state { THREAD_STATE_IDLE_THREAD, THREAD_STATE_READY, THREAD_STATE_RUNNING, THREAD_STATE_BLOCKED, THREAD_STATE_SLEEPING, THREAD_STATE_ZOMBIE, THREAD_STATE_TERMINATED, THREAD_STATE_HALTED,};enum thread_wait_type { THREAD_WAIT_NONE, THREAD_WAIT_UNINTERRUPTIBLE, THREAD_WAIT_INTERRUPTIBLE,};enum thread_flags { THREAD_FLAG_FLEXIBLE_RT = 1 << 1, THREAD_FLAG_EXECUTING_APC = 1 << 2, THREAD_FLAG_DYING = 1 << 3, THREAD_FLAG_YIELDED_AFTER_WAKE = 1 << 4, THREAD_FLAG_WAKE_MATCHED = 1 << 5, THREAD_FLAG_RT_FAULT_TOLERANCE = 1 << 6,};enum thread_prio_class { THREAD_PRIO_CLASS_BACKGROUND = 0, THREAD_PRIO_CLASS_TIMESHARE = 1, THREAD_PRIO_CLASS_RT = 2, THREAD_PRIO_CLASS_URGENT = 3,};enum thread_wake_reason { THREAD_WAKE_REASON_BLOCKING_IO = 1, THREAD_WAKE_REASON_BLOCKING_MANUAL = 2, THREAD_WAKE_REASON_SLEEP_TIMEOUT = 3, THREAD_WAKE_REASON_SLEEP_MANUAL = 4,};enum thread_block_reason { THREAD_BLOCK_REASON_IO = 5, THREAD_BLOCK_REASON_MANUAL = 6,};enum thread_sleep_reason { THREAD_SLEEP_REASON_MANUAL = 7,};enum wake_reason { WAKE_REASON_NONE = 0, WAKE_REASON_SIGNAL = 1, WAKE_REASON_TIMEOUT = 2,};Defines
Section titled “Defines”#define THREAD_STACK_SIZE (PAGE_SIZE * 4)#define THREAD_PRIO_CLASS_COUNT (4)