RTEMS: Thread Handler Multiprocessing Support

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Files | Macros | Functions
Thread Handler Multiprocessing Support
Internal » SuperCore

Thread Handler Multiprocessing Support. More...

## Files
file | threadmp.h
| Multiprocessing Portion of the Thread Package.
file | threadmp.c
| Distributed MP Support.

## Macros
#define | _Thread_MP_Is_receive(_the_thread) ((_the_thread) == _MPCI_Receive_server_tcb)

## Functions
void | _Thread_MP_Handler_initialization (uint32_t maximum_proxies)
| Initialize MP thread handler.
Thread_Control * | _Thread_MP_Allocate_proxy (States_Control the_state)
| Allocates a MP proxy control block from the inactive chain of free proxy control blocks.
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.
void | _Thread_MP_Free_proxy (Thread_Control *the_thread)
| Trees a proxy control block to the inactive chain of free proxy control blocks.
RTEMS_INLINE_ROUTINE bool | _Thread_MP_Is_remote (Objects_Id id)
| Checks if the thread MP with this object id is remote.

## Detailed Description

Thread Handler Multiprocessing Support.

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.

## Macro Definition Documentation

## ◆ _Thread_MP_Is_receive

#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.

Note
  This is a macro to avoid needing a prototype for _MPCI_Receive_server_tcb until it is used.

## Function Documentation

## ◆ _Thread_MP_Allocate_proxy()

Thread_Control * _Thread_MP_Allocate_proxy | ( | States_Control | the_state | ) |

Allocates 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.

Note
  This function returns a thread control pointer because proxies are substitutes for remote threads.

- Parameters

    the_state | The state for the allocated MP proxy control block.

## ◆ _Thread_MP_Find_proxy()

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 red-black tree of proxy control blocks.

Parameters

  the_id | The id of the proxy control block to remove.

Returns
  The removed proxy control block.

## ◆ _Thread_MP_Handler_initialization()

void _Thread_MP_Handler_initialization | ( | uint32_t | maximum_proxies | ) |

Initialize MP thread handler.

This routine initializes the multiprocessing portion of the Thread Handler.

Parameters

  maximum_proxies | The maximum number of proxies for the MP thread handler.

## ◆ _Thread_MP_Is_remote()

RTEMS_INLINE_ROUTINE bool _Thread_MP_Is_remote | ( | Objects_Id | id | ) |

Checks if the thread MP with this object id is remote.

Parameters

  id | The object id.

Return values

  true | The object id is valid and the thread MP with this object id is remote.
  false | The object if is not valid or the thread MP with this object id is not remote.