ReXGlue SDK
Loading...
Searching...
No Matches
rex::kernel::X_KPRCB Struct Reference

#include <rex/kernel/types/thread.h>

Public Attributes

be_ptr< X_KTHREAD > current_thread
be_ptr< X_KTHREAD > next_thread
be_ptr< X_KTHREAD > idle_thread
u8 current_cpu
be_u32 processor_mask
be_u32 dpc_clock
be_u32 interrupt_clock
be_u32 interrupt_count
be_u32 ipi_frozen
be_u32 ipi_args [3]
be_u32 targeted_ipi_cpus_mask
be_u32 ipi_function
be_ptr< X_KPRCB > ipi_initiator_prcb
be_u32 request_summary
be_u32 dpc_interrupt_requested
be_u32 dpc_lock
X_LIST_ENTRY queued_dpcs_list_head
be_u32 dpc_active
X_KSPINLOCK ready_list_lock
be_u32 idle_thread_active
X_SINGLE_LIST_ENTRY enqueued_threads_list
be_u32 has_ready_thread_by_priority
be_u32 ready_summary_mask
X_LIST_ENTRY dispatcher_ready_list_head [32]
X_KDPC thread_exit_dpc
X_LIST_ENTRY terminating_threads_list
X_KDPC switch_thread_processor_dpc

Detailed Description

Guest layout of the processor control block embedded in X_KPCR.

Member Data Documentation

◆ dispatcher_ready_list_head

X_LIST_ENTRY rex::kernel::X_KPRCB::dispatcher_ready_list_head[32]

Dispatcher ready list per priority.

◆ dpc_active

be_u32 rex::kernel::X_KPRCB::dpc_active

Nonzero while this processor runs a DPC.

◆ dpc_clock

be_u32 rex::kernel::X_KPRCB::dpc_clock

Ticks this processor spent running DPCs.

◆ dpc_interrupt_requested

be_u32 rex::kernel::X_KPRCB::dpc_interrupt_requested

Nonzero while a DPC interrupt is requested.

◆ dpc_lock

be_u32 rex::kernel::X_KPRCB::dpc_lock

Lock that guards queued_dpcs_list_head.

◆ enqueued_threads_list

X_SINGLE_LIST_ENTRY rex::kernel::X_KPRCB::enqueued_threads_list

Threads waiting to be readied.

◆ has_ready_thread_by_priority

be_u32 rex::kernel::X_KPRCB::has_ready_thread_by_priority

Flags each priority that has a ready thread.

◆ idle_thread_active

be_u32 rex::kernel::X_KPRCB::idle_thread_active

Nonzero while the idle thread of this processor runs.

◆ interrupt_clock

be_u32 rex::kernel::X_KPRCB::interrupt_clock

Ticks this processor spent servicing interrupts.

◆ ipi_args

be_u32 rex::kernel::X_KPRCB::ipi_args[3]

Arguments passed to ipi_function.

◆ ipi_function

be_u32 rex::kernel::X_KPRCB::ipi_function

Guest address of the function an interprocessor interrupt runs.

◆ ipi_initiator_prcb

be_ptr<X_KPRCB> rex::kernel::X_KPRCB::ipi_initiator_prcb

Control block of the sender.

◆ processor_mask

be_u32 rex::kernel::X_KPRCB::processor_mask

Mask with only the bit of this processor set.

◆ ready_list_lock

X_KSPINLOCK rex::kernel::X_KPRCB::ready_list_lock

Lock that guards the ready lists of this processor.

◆ ready_summary_mask

be_u32 rex::kernel::X_KPRCB::ready_summary_mask

◆ targeted_ipi_cpus_mask

be_u32 rex::kernel::X_KPRCB::targeted_ipi_cpus_mask

Mask of the processors an interprocessor interrupt targets.


The documentation for this struct was generated from the following file: