RTEMS 6.1-rc1
semmp.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-2-Clause */
2
12/* COPYRIGHT (c) 1989-2013.
13 * On-Line Applications Research Corporation (OAR).
14 *
15 * Redistribution and use in source and binary forms, with or without
16 * modification, are permitted provided that the following conditions
17 * are met:
18 * 1. Redistributions of source code must retain the above copyright
19 * notice, this list of conditions and the following disclaimer.
20 * 2. Redistributions in binary form must reproduce the above copyright
21 * notice, this list of conditions and the following disclaimer in the
22 * documentation and/or other materials provided with the distribution.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
28 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 * POSSIBILITY OF SUCH DAMAGE.
35 */
36
37#ifndef _RTEMS_RTEMS_SEMMP_H
38#define _RTEMS_RTEMS_SEMMP_H
39
40#ifndef _RTEMS_RTEMS_SEMIMPL_H
41# error "Never use <rtems/rtems/semmp.h> directly; include <rtems/rtems/semimpl.h> instead."
42#endif
43
44#ifdef __cplusplus
45extern "C" {
46#endif
47
64typedef enum {
65 SEMAPHORE_MP_ANNOUNCE_CREATE = 0,
66 SEMAPHORE_MP_ANNOUNCE_DELETE = 1,
67 SEMAPHORE_MP_EXTRACT_PROXY = 2,
68 SEMAPHORE_MP_OBTAIN_REQUEST = 3,
69 SEMAPHORE_MP_OBTAIN_RESPONSE = 4,
70 SEMAPHORE_MP_RELEASE_REQUEST = 5,
71 SEMAPHORE_MP_RELEASE_RESPONSE = 6
73
78typedef struct {
79 rtems_packet_prefix Prefix;
81 rtems_name name;
82 rtems_option option_set;
83 Objects_Id proxy_id;
85
86static inline bool _Semaphore_MP_Is_remote( Objects_Id id )
87{
89}
90
99 Objects_Id semaphore_id,
100 rtems_name name,
101 Objects_Id proxy_id
102);
103
108 rtems_id id,
109 rtems_option option_set,
110 rtems_interval timeout
111);
112
117
126 Thread_Control *the_proxy,
127 Objects_Id mp_id
128);
129
141 Thread_Control *the_thread,
142 Objects_Id id
143);
144
156 Thread_Control *the_thread,
157 Objects_Id id
158);
159
160#ifdef __cplusplus
161}
162#endif
163
166#endif
167/* end of file */
uint32_t rtems_option
This type represents a Classic API directive option set.
Definition: options.h:126
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
Definition: status.h:85
uint32_t rtems_name
This type represents Classic API object names.
Definition: types.h:226
Objects_Id rtems_id
This type represents RTEMS object identifiers.
Definition: types.h:94
Watchdog_Interval rtems_interval
This type represents clock tick intervals.
Definition: types.h:114
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:150
void _Semaphore_Core_semaphore_mp_support(Thread_Control *the_thread, Objects_Id id)
Semaphore Core MP Support.
Definition: semmp.c:335
Semaphore_MP_Remote_operations
Definition: semmp.h:64
void _Semaphore_Core_mutex_mp_support(Thread_Control *the_thread, Objects_Id id)
Semaphore Core Mutex MP Support.
Definition: semmp.c:321
void _Semaphore_MP_Send_object_was_deleted(Thread_Control *the_proxy, Objects_Id mp_id)
Semaphore MP Send Object was Deleted.
Definition: semmp.c:292
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:57
rtems_status_code _Semaphore_MP_Release(rtems_id id)
Issues a remote rtems_semaphore_release() request.
Definition: semmp.c:164
Objects_Information _Semaphore_Information
The Classic Semaphore objects information.
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:368
uint32_t Objects_Id
Definition: object.h:101
Definition: semmp.h:78
Definition: thread.h:812