RTEMS
coremsgwkspace.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 
12 /*
13  * Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
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 #ifdef HAVE_CONFIG_H
38 #include "config.h"
39 #endif
40 
42 #include <rtems/score/wkspace.h>
43 
45  CORE_message_queue_Control *the_message_queue,
46  size_t size,
47  const void *arg
48 )
49 {
50  (void) arg;
51  the_message_queue->free_message_buffers = _Workspace_Free;
52  return _Workspace_Allocate( size );
53 }
void _Workspace_Free(void *block)
Frees memory to the workspace.
Inlined Routines in the Core Message Handler.
void(* free_message_buffers)(void *)
This member contains the optional message buffer storage area free handler.
Definition: coremsg.h:135
void * _Workspace_Allocate(size_t size)
Allocates a memory block of the specified size from the workspace.
Control block used to manage each message queue.
Definition: coremsg.h:96
void * _CORE_message_queue_Workspace_allocate(CORE_message_queue_Control *the_message_queue, size_t size, const void *arg)
This handler allocates the message buffer storage area for a message queue from the RTEMS Workspace...
Information Related to the RAM Workspace.