RTEMS: cpukit/include/rtems/rtems/semmp.h Source File

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
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
26extern "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
51} Semaphore_MP_Remote_operations;
52
57 typedef struct {
58 rtems_packet_prefix Prefix;
59 Semaphore_MP_Remote_operations operation;
60 rtems_name name;
61 rtems_option option_set;
62 Objects_Id proxy_id;
63} Semaphore_MP_Packet;
64
65 RTEMS_INLINE_ROUTINE bool _Semaphore_MP_Is_remote( Objects_Id id )
66{
67 return _Objects_MP_Is_remote( id, &_Semaphore_Information );
68}
69
76void _Semaphore_MP_Send_process_packet (
77 Semaphore_MP_Remote_operations operation,
78 Objects_Id semaphore_id,
79 rtems_name name,
80 Objects_Id proxy_id
81);
82
86 rtems_status_code _Semaphore_MP_Obtain(
87 rtems_id id,
88 rtems_option option_set,
89 rtems_interval timeout
90);
91
95 rtems_status_code _Semaphore_MP_Release( rtems_id id );
96
104void _Semaphore_MP_Send_object_was_deleted (
105 Thread_Control *the_proxy,
106 Objects_Id mp_id
107);
108
119void _Semaphore_Core_mutex_mp_support (
120 Thread_Control *the_thread,
121 Objects_Id id
122);
123
134void _Semaphore_Core_semaphore_mp_support (
135 Thread_Control *the_thread,
136 Objects_Id id
137);
138
139#ifdef __cplusplus
140}
141#endif
142
145#endif
146/* end of file */
rtems_option
uint32_t rtems_option
Definition: options.h:42
_Semaphore_MP_Obtain
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
_Semaphore_Core_semaphore_mp_support
void _Semaphore_Core_semaphore_mp_support(Thread_Control *the_thread, Objects_Id id)
Semaphore Core MP Support.
Definition: semmp.c:313
Semaphore_MP_Remote_operations
Semaphore_MP_Remote_operations
Definition: semmp.h:43
_Semaphore_Core_mutex_mp_support
void _Semaphore_Core_mutex_mp_support(Thread_Control *the_thread, Objects_Id id)
Semaphore Core Mutex MP Support.
Definition: semmp.c:299
_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.
Definition: semmp.c:270
_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.
Definition: semmp.c:36
_Semaphore_MP_Release
rtems_status_code _Semaphore_MP_Release(rtems_id id)
Issues a remote rtems_semaphore_release() request.
Definition: semmp.c:143
_Semaphore_Information
Objects_Information _Semaphore_Information
The Classic Semaphore objects information.
rtems_status_code
rtems_status_code
Classic API Status.
Definition: status.h:43
rtems_name
uint32_t rtems_name
Classic API object name type.
Definition: types.h:77
rtems_id
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:83
rtems_interval
Watchdog_Interval rtems_interval
Used to manage and manipulate intervals specified by clock ticks.
Definition: types.h:127
RTEMS_INLINE_ROUTINE
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
_Objects_MP_Is_remote
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
Objects_Id
uint32_t Objects_Id
Definition: object.h:80
Semaphore_MP_Packet
Definition: semmp.h:57
_Thread_Control
Definition: thread.h:732