RTEMS  5.1
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 
105  Thread_Control *the_proxy,
106  Objects_Id mp_id
107 );
108 
120  Thread_Control *the_thread,
121  Objects_Id id
122 );
123 
135  Thread_Control *the_thread,
136  Objects_Id id
137 );
138 
139 #ifdef __cplusplus
140 }
141 #endif
142 
145 #endif
146 /* end of file */
void _Semaphore_Core_semaphore_mp_support(Thread_Control *the_thread, Objects_Id id)
Semaphore Core MP Support.
Definition: semmp.c:313
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
Semaphore_MP_Remote_operations
Definition: semmp.h:43
rtems_status_code
Classic API Status.
Definition: status.h:43
Definition: thread.h:732
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:129
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:143
void _Semaphore_Core_mutex_mp_support(Thread_Control *the_thread, Objects_Id id)
Semaphore Core Mutex MP Support.
Definition: semmp.c:299
uint32_t Objects_Id
Definition: object.h:80
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:270
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
bool _Objects_MP_Is_remote(Objects_Id id, const Objects_Information *information)
Checks if the object identifier is in the global object identifier cache of the specified object info...
Definition: objectmp.c:338
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:36