RTEMS 6.3
Loading...
Searching...
No Matches
Semaphore Manager Multiprocessing (MP) Support

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

Files

file  cpukit/include/rtems/rtems/semmp.h
 This header file provides the implementation interfaces of the Semaphore Manager Multiprocessing (MP) Support.
file  cpukit/rtems/src/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.
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.
void _Semaphore_Core_mutex_mp_support (Thread_Control *the_thread, Objects_Id id)
 Semaphore Core Mutex MP Support.
void _Semaphore_Core_semaphore_mp_support (Thread_Control *the_thread, Objects_Id id)
 Semaphore Core MP Support.

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.