![]() |
|
|||
File indexing completed on 2025-05-11 08:24:12
0001 /* SPDX-License-Identifier: BSD-2-Clause */ 0002 0003 /** 0004 * @file 0005 * 0006 * @ingroup RTEMSScoreMessageQueue 0007 * 0008 * @brief This header file provides interfaces of the 0009 * @ref RTEMSScoreMessageQueue which are used by the implementation, the 0010 * @ref RTEMSImplApplConfig, and the API. 0011 */ 0012 0013 /* 0014 * Copyright (C) 2020 embedded brains GmbH & Co. KG 0015 * Copyright (C) 1989, 2009 On-Line Applications Research Corporation (OAR) 0016 * 0017 * Redistribution and use in source and binary forms, with or without 0018 * modification, are permitted provided that the following conditions 0019 * are met: 0020 * 1. Redistributions of source code must retain the above copyright 0021 * notice, this list of conditions and the following disclaimer. 0022 * 2. Redistributions in binary form must reproduce the above copyright 0023 * notice, this list of conditions and the following disclaimer in the 0024 * documentation and/or other materials provided with the distribution. 0025 * 0026 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 0027 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 0028 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 0029 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 0030 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 0031 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 0032 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 0033 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 0034 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 0035 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 0036 * POSSIBILITY OF SUCH DAMAGE. 0037 */ 0038 0039 #ifndef _RTEMS_SCORE_COREMSGBUFFER_H 0040 #define _RTEMS_SCORE_COREMSGBUFFER_H 0041 0042 #include <rtems/score/basedefs.h> 0043 #include <rtems/score/chain.h> 0044 0045 #ifdef __cplusplus 0046 extern "C" { 0047 #endif 0048 0049 /** 0050 * @addtogroup RTEMSScoreMessageQueue 0051 * 0052 * @{ 0053 */ 0054 0055 /** 0056 * This define enables the support for priority based enqueuing of messages in 0057 * the Message Queue Handler. 0058 */ 0059 #define RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY 0060 0061 /** 0062 * @brief The structure is used to organize message buffers of a message queue. 0063 */ 0064 typedef struct { 0065 /** 0066 * @brief This member is used to enqueue the buffer in the pending or free 0067 * buffer queue of a message queue. 0068 */ 0069 Chain_Node Node; 0070 0071 /** @brief This member defines the size of this message. */ 0072 size_t size; 0073 0074 #if defined(RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY) 0075 /** @brief This member defines the priority of this message. */ 0076 int priority; 0077 #endif 0078 0079 /** 0080 * @brief This member contains the actual message. 0081 * 0082 * This is a zero-length array since the maximum message size is defined by 0083 * the user. Use a size_t array to make sure that the member offset is at 0084 * the structure end. This enables a more efficient memcpy() on 64-bit 0085 * targets and makes it easier to inspect the message buffers with a 0086 * debugger. 0087 */ 0088 size_t buffer[ RTEMS_ZERO_LENGTH_ARRAY ]; 0089 } CORE_message_queue_Buffer; 0090 0091 /** @} */ 0092 0093 #ifdef __cplusplus 0094 } 0095 #endif 0096 0097 #endif /* _RTEMS_SCORE_COREMSGBUFFER_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |