RTEMS 6.1-rc1
regulatorimpl.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-2-Clause */
2
11/*
12 * Copyright (C) 2023 On-Line Applications Research Corporation (OAR)
13 *
14 * Redistribution and use in source and binary forms, with or without
15 * modification, are permitted provided that the following conditions
16 * are met:
17 * 1. Redistributions of source code must retain the above copyright
18 * notice, this list of conditions and the following disclaimer.
19 * 2. Redistributions in binary form must reproduce the above copyright
20 * notice, this list of conditions and the following disclaimer in the
21 * documentation and/or other materials provided with the distribution.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
27 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 * POSSIBILITY OF SUCH DAMAGE.
34 */
35
44#ifndef RTEMS_REGULATORIMPL_H
45#define RTEMS_REGULATORIMPL_H
46
47#include <stdatomic.h>
48
49#include <rtems/chain.h>
50
51
57#define REGULATOR_INITIALIZED 0xDeadF00d
58
64typedef struct {
66 void *buffer;
68 size_t length;
70
78typedef struct {
80 atomic_size_t obtained;
81
83 atomic_size_t released;
84
86 atomic_size_t delivered;
88
96typedef struct {
98 uint32_t initialized;
99
102
105
108
111
114
117
120
123
126
129
132
134
135#endif /* RTEMS_REGULATORIMPL_H */
This header file provides the Chains API.
Objects_Id rtems_id
This type represents RTEMS object identifiers.
Definition: types.h:94
Regulator Instance Private Structure.
Definition: regulatorimpl.h:96
rtems_id delivery_thread_id
Definition: regulatorimpl.h:116
rtems_id delivery_thread_period_id
Definition: regulatorimpl.h:119
uint32_t initialized
Definition: regulatorimpl.h:98
bool delivery_thread_is_running
Definition: regulatorimpl.h:122
rtems_id messages_partition_id
Definition: regulatorimpl.h:113
bool delivery_thread_has_exited
Definition: regulatorimpl.h:128
rtems_id queue_id
Definition: regulatorimpl.h:110
void * message_queue_storage
Definition: regulatorimpl.h:107
rtems_regulator_attributes Attributes
Definition: regulatorimpl.h:101
_Regulator_Statistics Statistics
Definition: regulatorimpl.h:131
bool delivery_thread_request_exit
Definition: regulatorimpl.h:125
void * message_memory
Definition: regulatorimpl.h:104
Regulator Message Instance Management Structure.
Definition: regulatorimpl.h:64
size_t length
Definition: regulatorimpl.h:68
void * buffer
Definition: regulatorimpl.h:66
Regulator Statistics Private Structure.
Definition: regulatorimpl.h:78
atomic_size_t obtained
Definition: regulatorimpl.h:80
atomic_size_t delivered
Definition: regulatorimpl.h:86
atomic_size_t released
Definition: regulatorimpl.h:83
Attributes for Regulator Instance.
Definition: regulator.h:243