RTEMS 6.1-rc1
Files | Data Structures | Enumerations | Functions
Semaphore Manager Multiprocessing (MP) Support

This group contains the implementation to support the Semaphore Manager in multiprocessing (MP) configurations. More...

Files

file  semmp.h
 This header file provides the implementation interfaces of the Semaphore Manager Multiprocessing (MP) Support.
 
file  semmp.c
 This source file contains the implementation to support the Semaphore Manager in multiprocessing (MP) configurations.
 

Data Structures

struct  Semaphore_MP_Packet
 

Enumerations

enum  Semaphore_MP_Remote_operations {
  SEMAPHORE_MP_ANNOUNCE_CREATE = 0 , SEMAPHORE_MP_ANNOUNCE_DELETE = 1 , SEMAPHORE_MP_EXTRACT_PROXY = 2 , SEMAPHORE_MP_OBTAIN_REQUEST = 3 ,
  SEMAPHORE_MP_OBTAIN_RESPONSE = 4 , SEMAPHORE_MP_RELEASE_REQUEST = 5 , SEMAPHORE_MP_RELEASE_RESPONSE = 6
}
 

Functions

void _Semaphore_MP_Send_process_packet (Semaphore_MP_Remote_operations operation, Objects_Id semaphore_id, rtems_name name, Objects_Id proxy_id)
 Semaphore MP Send Process Packet. More...
 
rtems_status_code _Semaphore_MP_Obtain (rtems_id id, rtems_option option_set, rtems_interval timeout)
 Issues a remote rtems_semaphore_obtain() request.
 
rtems_status_code _Semaphore_MP_Release (rtems_id id)
 Issues a remote rtems_semaphore_release() request.
 
void _Semaphore_MP_Send_object_was_deleted (Thread_Control *the_proxy, Objects_Id mp_id)
 Semaphore MP Send Object was Deleted. More...
 
void _Semaphore_Core_mutex_mp_support (Thread_Control *the_thread, Objects_Id id)
 Semaphore Core Mutex MP Support. More...
 
void _Semaphore_Core_semaphore_mp_support (Thread_Control *the_thread, Objects_Id id)
 Semaphore Core MP Support. More...
 

Detailed Description

This group contains the implementation to support the Semaphore Manager in multiprocessing (MP) configurations.

Enumeration Type Documentation

◆ Semaphore_MP_Remote_operations

The following enumerated type defines the list of remote semaphore operations.

Function Documentation

◆ _Semaphore_Core_mutex_mp_support()

void _Semaphore_Core_mutex_mp_support ( Thread_Control the_thread,
Objects_Id  id 
)

Semaphore Core Mutex MP Support.

This function processes the global actions necessary for remote accesses to a global semaphore based on a core mutex. This function is called by the core.

Parameters
[in]the_threadthe remote thread the semaphore was surrendered to
[in]idis the id of the surrendered semaphore

◆ _Semaphore_Core_semaphore_mp_support()

void _Semaphore_Core_semaphore_mp_support ( Thread_Control the_thread,
Objects_Id  id 
)

Semaphore Core MP Support.

This function processes the global actions necessary for remote accesses to a global semaphore based on a core semaphore. This function is called by the core.

Parameters
[in]the_threadthe remote thread the semaphore was surrendered to
[in]idis the id of the surrendered semaphore

◆ _Semaphore_MP_Send_object_was_deleted()

void _Semaphore_MP_Send_object_was_deleted ( Thread_Control the_proxy,
Objects_Id  mp_id 
)

Semaphore MP Send Object was Deleted.

This routine is invoked indirectly by the thread queue when a proxy has been removed from the thread queue and the remote node must be informed of this.

◆ _Semaphore_MP_Send_process_packet()

void _Semaphore_MP_Send_process_packet ( Semaphore_MP_Remote_operations  operation,
Objects_Id  semaphore_id,
rtems_name  name,
Objects_Id  proxy_id 
)

Semaphore MP Send Process Packet.

This routine performs a remote procedure call so that a process operation can be performed on another node.