RTEMS: Semaphore MP Support

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Files | Data Structures | Enumerations | Functions
Semaphore MP Support
API » Classic » Multiprocessing

## 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.
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 encapsulates functionality related to the transparent multiprocessing support within the Classic API Semaphore Manager.

## Enumeration Type Documentation

## ◆ Semaphore_MP_Remote_operations

enum 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_thread | the remote thread the semaphore was surrendered to
  [in] | id | is 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_thread | the remote thread the semaphore was surrendered to
  [in] | id | is 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.