RTEMS  5.0.0
Files | Data Structures | Enumerations | Functions
Semaphore MP Support

Files

file  semmp.h
 
file  semmp.c
 Semaphore MP Support.
 

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

RTEMS_INLINE_ROUTINE bool _Semaphore_MP_Is_remote (Objects_Id id)
 
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_Process_packet (rtems_packet_prefix *the_packet_prefix)
 Semaphore MP Process Packet. More...
 
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 encapsulates functionality related to the transparent multiprocessing support within the Classic API Semaphore Manager.

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_Process_packet()

void _Semaphore_MP_Process_packet ( rtems_packet_prefix *  the_packet_prefix)

Semaphore MP Process Packet.

This routine performs the actions specific to this package for the request from another node.

◆ _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.