RTEMS 5.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
41typedef enum {
53
65 rtems_id id,
66 const void *buffer,
67 size_t size,
69);
70
79 Message_queue_Control *the_message_queue
80)
81{
82 _Objects_Free( &_Message_queue_Information, &the_message_queue->Object );
83}
84
86 Objects_Id id,
87 Thread_queue_Context *queue_context
88)
89{
90 _Thread_queue_Context_initialize( queue_context );
92 id,
93 &queue_context->Lock_context.Lock_context,
95 );
96}
97
98RTEMS_INLINE_ROUTINE Message_queue_Control *_Message_queue_Allocate( void )
99{
100 return (Message_queue_Control *)
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 */
Inlined Routines in the Core Message Handler.
Objects_Information _Message_queue_Information
The Classic Message Queue objects information.
Message_queue_Submit_types
Definition: messageimpl.h:41
rtems_status_code _Message_queue_Submit(rtems_id id, const void *buffer, size_t size, Message_queue_Submit_types submit_type)
Message_queue_Submit.
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
Definition: messageimpl.h:51
@ MESSAGE_QUEUE_SEND_REQUEST
Definition: messageimpl.h:46
rtems_status_code
Classic API Status.
Definition: status.h:43
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:83
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
RTEMS_INLINE_ROUTINE void _Objects_Free(Objects_Information *information, Objects_Control *the_object)
Frees an object.
Definition: objectimpl.h:930
Objects_Control * _Objects_Allocate(Objects_Information *information)
Allocates an object.
Definition: objectallocate.c:42
uint32_t Objects_Id
Definition: object.h:80
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
RTEMS_INLINE_ROUTINE void _Thread_queue_Context_initialize(Thread_queue_Context *queue_context)
Initializes a thread queue context.
Definition: threadqimpl.h:152
Classic Message Queue Manager API.
Message Manager MP Support.
Inlined Routines in the Object Handler.
Definition: messagedata.h:38
Objects_Control Object
Definition: messagedata.h:40
Thread queue context for the thread queue methods.
Definition: threadq.h:198
Thread_queue_Lock_context Lock_context
The lock context for the thread queue acquire and release operations.
Definition: threadq.h:203
ISR_lock_Context Lock_context
The lock context for the thread queue acquire and release operations.
Definition: threadq.h:130
unsigned size
Definition: tte.h:1