RTEMS CPU Kit with SuperCore  4.11.3
semmp.h
Go to the documentation of this file.
1 
13 /* COPYRIGHT (c) 1989-2013.
14  * On-Line Applications Research Corporation (OAR).
15  *
16  * The license and distribution terms for this file may be
17  * found in the file LICENSE in this distribution or at
18  * http://www.rtems.org/license/LICENSE.
19  */
20 
21 #ifndef _RTEMS_RTEMS_SEMMP_H
22 #define _RTEMS_RTEMS_SEMMP_H
23 
24 #ifndef _RTEMS_RTEMS_SEMIMPL_H
25 # error "Never use <rtems/rtems/semmp.h> directly; include <rtems/rtems/semimpl.h> instead."
26 #endif
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
46 typedef enum {
47  SEMAPHORE_MP_ANNOUNCE_CREATE = 0,
48  SEMAPHORE_MP_ANNOUNCE_DELETE = 1,
49  SEMAPHORE_MP_EXTRACT_PROXY = 2,
50  SEMAPHORE_MP_OBTAIN_REQUEST = 3,
51  SEMAPHORE_MP_OBTAIN_RESPONSE = 4,
52  SEMAPHORE_MP_RELEASE_REQUEST = 5,
53  SEMAPHORE_MP_RELEASE_RESPONSE = 6
55 
60 typedef struct {
61  rtems_packet_prefix Prefix;
63  rtems_name name;
64  rtems_option option_set;
65  Objects_Id proxy_id;
67 
76  Objects_Id semaphore_id,
77  rtems_name name,
78  Objects_Id proxy_id
79 );
80 
89  Objects_Id semaphore_id,
90  rtems_option option_set,
91  rtems_interval timeout
92 );
93 
102  Objects_Id semaphore_id,
103  Thread_Control *the_thread
104 );
105 
113  rtems_packet_prefix *the_packet_prefix
114 );
115 
124  Thread_Control *the_proxy
125 );
126 
135  void *argument
136 );
137 
144 
156  Thread_Control *the_thread,
157  Objects_Id id
158 );
159 
171  Thread_Control *the_thread,
172  Objects_Id id
173 );
174 
175 #ifdef __cplusplus
176 }
177 #endif
178 
181 #endif
182 /* end of file */
void _Semaphore_Core_semaphore_mp_support(Thread_Control *the_thread, Objects_Id id)
Semaphore Core MP Support.
void _Semaphore_MP_Send_response_packet(Semaphore_MP_Remote_operations operation, Objects_Id semaphore_id, Thread_Control *the_thread)
Semaphore MP Send Response Packet.
Definition: semmp.c:118
The following data structure defines the packet used to perform remote semaphore operations.
Definition: semmp.h:60
void _Semaphore_MP_Send_object_was_deleted(Thread_Control *the_proxy)
Semaphore MP Send Object was Deleted.
Definition: semmp.c:236
Semaphore_MP_Remote_operations
The following enumerated type defines the list of remote semaphore operations.
Definition: semmp.h:46
Watchdog_Interval rtems_interval
Used to manage and manipulate intervals specified by clock ticks.
Definition: types.h:119
rtems_status_code
Classic API Status.
Definition: status.h:46
uint32_t rtems_name
Classic API object name type.
Definition: types.h:74
This structure defines the Thread Control Block (TCB).
Definition: thread.h:671
uint32_t rtems_option
The following type defines the control block used to manage option sets.
Definition: options.h:45
void _Semaphore_MP_Process_packet(rtems_packet_prefix *the_packet_prefix)
Semaphore MP Process Packet.
Definition: semmp.c:156
void _Semaphore_Core_mutex_mp_support(Thread_Control *the_thread, Objects_Id id)
Semaphore Core Mutex MP Support.
Semaphore_MP_Packet * _Semaphore_MP_Get_packet(void)
Semaphore MP Get Packet.
Definition: semmp.c:265
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.
Definition: semmp.c:70
void _Semaphore_MP_Send_extract_proxy(void *argument)
Semaphore MP Send Extract Proxy.
Definition: semmp.c:250
uint32_t Objects_Id
The following type defines the control block used to manage object IDs.
Definition: object.h:122
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.
Definition: semmp.c:29