RTEMS CPU Kit with SuperCore
4.11.3
|
This handler encapsulates functionality which is related to managing threads in a multiprocessor system configuration. More...
![]() |
Files | |
file | threadmp.c |
Distributed MP Support. | |
Macros | |
#define | _Thread_MP_Is_receive(_the_thread) ((_the_thread) == _MPCI_Receive_server_tcb) |
This function returns true if the thread in question is the multiprocessing receive thread. More... | |
Functions | |
void | _Thread_MP_Handler_initialization (uint32_t maximum_proxies) |
Initialize MP thread handler. More... | |
Thread_Control * | _Thread_MP_Allocate_proxy (States_Control the_state) |
Allocate a MP proxy control block from the inactive chain of free proxy control blocks. More... | |
Thread_Control * | _Thread_MP_Find_proxy (Objects_Id the_id) |
Removes the MP proxy control block for the specified id from the active chain of proxy control blocks. More... | |
RTEMS_INLINE_ROUTINE void | _Thread_MP_Free_proxy (Thread_Control *the_thread) |
This routine frees a proxy control block to the inactive chain of free proxy control blocks. | |
Variables | |
SCORE_EXTERN Chain_Control | _Thread_MP_Active_proxies |
Manage the active set MP proxies. More... | |
SCORE_EXTERN Chain_Control | _Thread_MP_Inactive_proxies |
Manage the inactive set of MP proxies. More... | |
This handler encapsulates functionality which is related to managing threads in a multiprocessor system configuration.
This handler must manage proxies which represent remote threads blocking on local operations.
#define _Thread_MP_Is_receive | ( | _the_thread | ) | ((_the_thread) == _MPCI_Receive_server_tcb) |
This function returns true if the thread in question is the multiprocessing receive thread.
Thread_Control* _Thread_MP_Allocate_proxy | ( | States_Control | the_state | ) |
Allocate a MP proxy control block from the inactive chain of free proxy control blocks.
This allocates a proxy control block from the inactive chain of free proxy control blocks.
References _Chain_Get(), _Thread_Is_null(), and _Thread_MP_Inactive_proxies.
Thread_Control* _Thread_MP_Find_proxy | ( | Objects_Id | the_id | ) |
Removes the MP proxy control block for the specified id from the active chain of proxy control blocks.
This function removes the proxy control block for the specified id from the active chain of proxy control blocks.
References _Addresses_Subtract_offset(), _Chain_First(), _Chain_Is_tail(), _ISR_Disable, and _Thread_MP_Active_proxies.
void _Thread_MP_Handler_initialization | ( | uint32_t | maximum_proxies | ) |
Initialize MP thread handler.
This routine initializes the multiprocessing portion of the Thread Handler.
References _Chain_Initialize(), _Chain_Initialize_empty(), _Thread_MP_Active_proxies, _Thread_MP_Inactive_proxies, and _Workspace_Allocate_or_fatal_error().
SCORE_EXTERN Chain_Control _Thread_MP_Active_proxies |
Manage the active set MP proxies.
The following chain is used to manage the active set proxies.
Referenced by _Thread_MP_Find_proxy(), and _Thread_MP_Handler_initialization().
SCORE_EXTERN Chain_Control _Thread_MP_Inactive_proxies |
Manage the inactive set of MP proxies.
The following chain is used to manage the inactive set of proxies.
Referenced by _Thread_MP_Allocate_proxy(), and _Thread_MP_Handler_initialization().