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

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
messageimpl.h
Go to the documentation of this file.
1
9/* COPYRIGHT (c) 1989-2008.
10 * On-Line Applications Research Corporation (OAR).
11 *
12 * The license and distribution terms for this file may be
13 * found in the file LICENSE in this distribution or at
14 * http://www.rtems.org/license/LICENSE.
15 */
16
17#ifndef _RTEMS_RTEMS_MESSAGEIMPL_H
18#define _RTEMS_RTEMS_MESSAGEIMPL_H
19
20#include <rtems/rtems/messagedata.h>
21#include <rtems/score/objectimpl.h>
22#include <rtems/score/coremsgimpl.h>
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
41 typedef enum {
46 MESSAGE_QUEUE_SEND_REQUEST = 0,
51 MESSAGE_QUEUE_URGENT_REQUEST = 1
52} Message_queue_Submit_types;
53
64 rtems_status_code _Message_queue_Submit(
65 rtems_id id,
66 const void *buffer,
67 size_t size,
68 Message_queue_Submit_types submit_type
69);
70
78 RTEMS_INLINE_ROUTINE void _Message_queue_Free (
79 Message_queue_Control *the_message_queue
80)
81{
82 _Objects_Free( &_Message_queue_Information, &the_message_queue->Object );
83}
84
85 RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Get(
86 Objects_Id id,
87 Thread_queue_Context *queue_context
88)
89{
90 _Thread_queue_Context_initialize( queue_context );
91 return (Message_queue_Control *) _Objects_Get(
92 id,
93 &queue_context->Lock_context.Lock_context,
94 &_Message_queue_Information
95 );
96}
97
98 RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Allocate( void )
99{
100 return (Message_queue_Control *)
101 _Objects_Allocate( &_Message_queue_Information );
102}
103
106#ifdef __cplusplus
107}
108#endif
109
110#if defined(RTEMS_MULTIPROCESSING)
111#include <rtems/rtems/msgmp.h>
112#endif
113
114#endif
115/* end of include file */
coremsgimpl.h
Inlined Routines in the Core Message Handler.
_Message_queue_Information
Objects_Information _Message_queue_Information
The Classic Message Queue objects information.
Message_queue_Submit_types
Message_queue_Submit_types
Definition: messageimpl.h:41
_Message_queue_Submit
rtems_status_code _Message_queue_Submit(rtems_id id, const void *buffer, size_t size, Message_queue_Submit_types submit_type)
Message_queue_Submit.
_Message_queue_Free
RTEMS_INLINE_ROUTINE void _Message_queue_Free(Message_queue_Control *the_message_queue)
Deallocates a message queue control block into the inactive chain of free message queue control block...
Definition: messageimpl.h:78
MESSAGE_QUEUE_URGENT_REQUEST
@ MESSAGE_QUEUE_URGENT_REQUEST
Definition: messageimpl.h:51
MESSAGE_QUEUE_SEND_REQUEST
@ MESSAGE_QUEUE_SEND_REQUEST
Definition: messageimpl.h:46
rtems_status_code
rtems_status_code
Classic API Status.
Definition: status.h:43
rtems_id
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:83
RTEMS_INLINE_ROUTINE
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
_Objects_Free
RTEMS_INLINE_ROUTINE void _Objects_Free(Objects_Information *information, Objects_Control *the_object)
Frees an object.
Definition: objectimpl.h:930
_Objects_Allocate
Objects_Control * _Objects_Allocate(Objects_Information *information)
Allocates an object.
Definition: objectallocate.c:42
Objects_Id
uint32_t Objects_Id
Definition: object.h:80
_Objects_Get
Objects_Control * _Objects_Get(Objects_Id id, ISR_lock_Context *lock_context, const Objects_Information *information)
Maps the specified object identifier to the associated local object control block.
Definition: objectgetlocal.c:28
_Thread_queue_Context_initialize
RTEMS_INLINE_ROUTINE void _Thread_queue_Context_initialize(Thread_queue_Context *queue_context)
Initializes a thread queue context.
Definition: threadqimpl.h:152
messagedata.h
Classic Message Queue Manager API.
msgmp.h
Message Manager MP Support.
objectimpl.h
Inlined Routines in the Object Handler.
Message_queue_Control
Definition: messagedata.h:38
Message_queue_Control::Object
Objects_Control Object
Definition: messagedata.h:40
Thread_queue_Context
Thread queue context for the thread queue methods.
Definition: threadq.h:198
Thread_queue_Context::Lock_context
Thread_queue_Lock_context Lock_context
The lock context for the thread queue acquire and release operations.
Definition: threadq.h:203
Thread_queue_Lock_context::Lock_context
ISR_lock_Context Lock_context
The lock context for the thread queue acquire and release operations.
Definition: threadq.h:130