![]() |
|
|||
File indexing completed on 2025-05-11 08:24:13
0001 /* SPDX-License-Identifier: BSD-2-Clause */ 0002 0003 /** 0004 * @file 0005 * 0006 * @ingroup RTEMSScoreThreadQueue 0007 * 0008 * @brief This header file provides interfaces related to thread queue 0009 * operations. 0010 */ 0011 0012 /* 0013 * Copyright (C) 2021 embedded brains GmbH & Co. KG 0014 * 0015 * Redistribution and use in source and binary forms, with or without 0016 * modification, are permitted provided that the following conditions 0017 * are met: 0018 * 1. Redistributions of source code must retain the above copyright 0019 * notice, this list of conditions and the following disclaimer. 0020 * 2. Redistributions in binary form must reproduce the above copyright 0021 * notice, this list of conditions and the following disclaimer in the 0022 * documentation and/or other materials provided with the distribution. 0023 * 0024 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 0025 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 0026 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 0027 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 0028 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 0029 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 0030 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 0031 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 0032 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 0033 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 0034 * POSSIBILITY OF SUCH DAMAGE. 0035 */ 0036 0037 #ifndef _RTEMS_SCORE_THREADQOPS_H 0038 #define _RTEMS_SCORE_THREADQOPS_H 0039 0040 #include <rtems/score/threadq.h> 0041 0042 #ifdef __cplusplus 0043 extern "C" { 0044 #endif 0045 0046 /** 0047 * @addtogroup RTEMSScoreThreadQueue 0048 * 0049 * @{ 0050 */ 0051 0052 /** 0053 * @brief Initializes the priority actions so that no actions are performed. 0054 * 0055 * @param queue is unused. 0056 * 0057 * @param[out] priority_actions is initialized so that no actions are 0058 * performed. 0059 */ 0060 void _Thread_queue_Do_nothing_priority_actions( 0061 Thread_queue_Queue *queue, 0062 Priority_Actions *priority_actions 0063 ); 0064 0065 /** 0066 * @brief Enqueues the thread to the FIFO thread queue. 0067 * 0068 * @param[in, out] queue is the thread queue. 0069 * 0070 * @param[in, out] the_thread is the thread to enqueue. 0071 * 0072 * @param[in, out] queue_context is the thread queue context. 0073 */ 0074 void _Thread_queue_FIFO_enqueue( 0075 Thread_queue_Queue *queue, 0076 Thread_Control *the_thread, 0077 Thread_queue_Context *queue_context 0078 ); 0079 0080 /** 0081 * @brief Extracts the thread from the FIFO thread queue. 0082 * 0083 * @param[in, out] queue is the thread queue. 0084 * 0085 * @param[in, out] the_thread is the thread to extract. 0086 * 0087 * @param[in, out] queue_context is the thread queue context. 0088 */ 0089 void _Thread_queue_FIFO_extract( 0090 Thread_queue_Queue *queue, 0091 Thread_Control *the_thread, 0092 Thread_queue_Context *queue_context 0093 ); 0094 0095 /** 0096 * @brief Surrenders the thread queue to the first thread on the FIFO thread 0097 * queue. 0098 * 0099 * @param[in, out] queue is the thread queue. 0100 * 0101 * @param[in, out] heads are heads of the thread queue. 0102 * 0103 * @param previous_owner is unused. 0104 * 0105 * @param[in, out] queue_context is the thread queue context. 0106 * 0107 * @return Returns the first thread on the thread queue according to the queue 0108 * order. 0109 */ 0110 Thread_Control *_Thread_queue_FIFO_surrender( 0111 Thread_queue_Queue *queue, 0112 Thread_queue_Heads *heads, 0113 Thread_Control *previous_owner, 0114 Thread_queue_Context *queue_context 0115 ); 0116 0117 /** 0118 * @brief Gets the first thread on the FIFO thread queue. 0119 * 0120 * @param[in, out] queue is the thread queue. 0121 * 0122 * @param[in, out] the_thread is the thread to extract. 0123 * 0124 * @param[in, out] queue_context is the thread queue context. 0125 */ 0126 Thread_Control *_Thread_queue_FIFO_first( const Thread_queue_Heads *heads ); 0127 0128 /** @} */ 0129 0130 #ifdef __cplusplus 0131 } 0132 #endif 0133 0134 #endif /* _RTEMS_SCORE_THREADQOPS_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |