RTEMS  5.0.0
semmp.h
Go to the documentation of this file.
1 
10 /* COPYRIGHT (c) 1989-2013.
11  * On-Line Applications Research Corporation (OAR).
12  *
13  * The license and distribution terms for this file may be
14  * found in the file LICENSE in this distribution or at
15  * http://www.rtems.org/license/LICENSE.
16  */
17 
18 #ifndef _RTEMS_RTEMS_SEMMP_H
19 #define _RTEMS_RTEMS_SEMMP_H
20 
21 #ifndef _RTEMS_RTEMS_SEMIMPL_H
22 # error "Never use <rtems/rtems/semmp.h> directly; include <rtems/rtems/semimpl.h> instead."
23 #endif
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
43 typedef enum {
44  SEMAPHORE_MP_ANNOUNCE_CREATE = 0,
45  SEMAPHORE_MP_ANNOUNCE_DELETE = 1,
46  SEMAPHORE_MP_EXTRACT_PROXY = 2,
47  SEMAPHORE_MP_OBTAIN_REQUEST = 3,
48  SEMAPHORE_MP_OBTAIN_RESPONSE = 4,
49  SEMAPHORE_MP_RELEASE_REQUEST = 5,
50  SEMAPHORE_MP_RELEASE_RESPONSE = 6
52 
57 typedef struct {
58  rtems_packet_prefix Prefix;
60  rtems_name name;
61  rtems_option option_set;
62  Objects_Id proxy_id;
64 
65 RTEMS_INLINE_ROUTINE bool _Semaphore_MP_Is_remote( Objects_Id id )
66 {
68 }
69 
78  Objects_Id semaphore_id,
79  rtems_name name,
80  Objects_Id proxy_id
81 );
82 
87  rtems_id id,
88  rtems_option option_set,
89  rtems_interval timeout
90 );
91 
96 
104  rtems_packet_prefix *the_packet_prefix
105 );
106 
115  Thread_Control *the_proxy,
116  Objects_Id mp_id
117 );
118 
130  Thread_Control *the_thread,
131  Objects_Id id
132 );
133 
145  Thread_Control *the_thread,
146  Objects_Id id
147 );
148 
149 #ifdef __cplusplus
150 }
151 #endif
152 
155 #endif
156 /* end of file */
void _Semaphore_Core_semaphore_mp_support(Thread_Control *the_thread, Objects_Id id)
Semaphore Core MP Support.
Watchdog_Interval rtems_interval
Used to manage and manipulate intervals specified by clock ticks.
Definition: types.h:127
Definition: semmp.h:57
uint32_t rtems_name
Classic API object name type.
Definition: types.h:77
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:65
Semaphore_MP_Remote_operations
Definition: semmp.h:43
rtems_status_code
Classic API Status.
Definition: status.h:43
Definition: thread.h:728
bool _Objects_MP_Is_remote(Objects_Id id, const Objects_Information *information)
Returns true, if the object identifier is in the global object identifier cache of the specified obje...
Definition: objectmp.c:341
rtems_status_code _Semaphore_MP_Obtain(rtems_id id, rtems_option option_set, rtems_interval timeout)
Issues a remote rtems_semaphore_obtain() request.
Definition: semmp.c:128
uint32_t rtems_option
Definition: options.h:42
rtems_status_code _Semaphore_MP_Release(rtems_id id)
Issues a remote rtems_semaphore_release() request.
Definition: semmp.c:142
void _Semaphore_MP_Process_packet(rtems_packet_prefix *the_packet_prefix)
Semaphore MP Process Packet.
Definition: semmp.c:190
void _Semaphore_Core_mutex_mp_support(Thread_Control *the_thread, Objects_Id id)
Semaphore Core Mutex MP Support.
Objects_Information _Semaphore_Information
The Classic Semaphore objects information.
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:83
void _Semaphore_MP_Send_object_was_deleted(Thread_Control *the_proxy, Objects_Id mp_id)
Semaphore MP Send Object was Deleted.
Definition: semmp.c:269
uint32_t Objects_Id
Definition: object.h:75
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:35