RTEMS CPU Kit with SuperCore
4.11.3
|
Semaphore Manager MP Support. More...
![]() |
Files | |
file | semmp.c |
Semaphore MP Support. | |
Data Structures | |
struct | Semaphore_MP_Packet |
The following data structure defines the packet used to perform remote semaphore operations. More... | |
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 } |
The following enumerated type defines the list of remote semaphore operations. | |
Semaphore Manager MP Support.
This encapsulates functionality related to the transparent multiprocessing support within the Classic API Semaphore Manager.
This include file contains all the constants and structures associated with the Multiprocessing Support in the Semaphore Manager.
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.
[in] | the_thread | the remote thread the semaphore was surrendered to |
[in] | id | is the id of the surrendered semaphore |
Referenced by _Semaphore_MP_Get_packet().
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.
[in] | the_thread | the remote thread the semaphore was surrendered to |
[in] | id | is the id of the surrendered semaphore |
Semaphore_MP_Packet* _Semaphore_MP_Get_packet | ( | void | ) |
Semaphore MP Get Packet.
This function is used to obtain a semaphore mp packet.
References _MPCI_Get_packet(), _Semaphore_Core_mutex_mp_support(), _Semaphore_MP_Send_response_packet(), and RTEMS_SUCCESSFUL.
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.
void _Semaphore_MP_Send_extract_proxy | ( | void * | argument | ) |
Semaphore MP Send Extract Proxy.
This routine is invoked when a task is deleted and it has a proxy which must be removed from a thread queue and the remote node must be informed of this.
References _Semaphore_MP_Send_process_packet().
void _Semaphore_MP_Send_object_was_deleted | ( | Thread_Control * | the_proxy | ) |
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.
References _Semaphore_MP_Send_response_packet(), and RTEMS_OBJECT_WAS_DELETED.
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.
Referenced by _Semaphore_MP_Send_extract_proxy(), and rtems_semaphore_create().
rtems_status_code _Semaphore_MP_Send_request_packet | ( | Semaphore_MP_Remote_operations | operation, |
Objects_Id | semaphore_id, | ||
rtems_option | option_set, | ||
rtems_interval | timeout | ||
) |
Semaphore MP Send Request Packet.
This routine performs a remote procedure call so that a directive operation can be initiated on another node.
void _Semaphore_MP_Send_response_packet | ( | Semaphore_MP_Remote_operations | operation, |
Objects_Id | semaphore_id, | ||
Thread_Control * | the_thread | ||
) |
Semaphore MP Send Response Packet.
This routine performs a remote procedure call so that a directive can be performed on another node.
Referenced by _Semaphore_MP_Get_packet(), and _Semaphore_MP_Send_object_was_deleted().