RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
cpukit
include
rtems
regulatorimpl.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-2-Clause */
2
10
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
43
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
64
typedef
struct
{
66
void
*
buffer
;
68
size_t
length
;
69
}
_Regulator_Message_t
;
70
78
typedef
struct
{
80
atomic_size_t
obtained
;
81
83
atomic_size_t
released
;
84
86
atomic_size_t
delivered
;
87
}
_Regulator_Statistics
;
88
96
typedef
struct
{
98
uint32_t
initialized
;
99
101
rtems_regulator_attributes
Attributes
;
102
104
void
*
message_memory
;
105
107
void
*
message_queue_storage
;
108
110
rtems_id
queue_id
;
111
113
rtems_id
messages_partition_id
;
114
116
rtems_id
delivery_thread_id
;
117
119
rtems_id
delivery_thread_period_id
;
120
122
bool
delivery_thread_is_running
;
123
125
bool
delivery_thread_request_exit
;
126
128
bool
delivery_thread_has_exited
;
129
131
_Regulator_Statistics
Statistics
;
132
133
}
_Regulator_Control
;
134
135
#endif
/* RTEMS_REGULATORIMPL_H */
chain.h
This header file provides the Chains API.
rtems_id
Objects_Id rtems_id
This type represents RTEMS object identifiers.
Definition
types.h:94
_Regulator_Control
Regulator Instance Private Structure.
Definition
regulatorimpl.h:96
_Regulator_Control::delivery_thread_id
rtems_id delivery_thread_id
Definition
regulatorimpl.h:116
_Regulator_Control::delivery_thread_period_id
rtems_id delivery_thread_period_id
Definition
regulatorimpl.h:119
_Regulator_Control::initialized
uint32_t initialized
Definition
regulatorimpl.h:98
_Regulator_Control::delivery_thread_is_running
bool delivery_thread_is_running
Definition
regulatorimpl.h:122
_Regulator_Control::messages_partition_id
rtems_id messages_partition_id
Definition
regulatorimpl.h:113
_Regulator_Control::delivery_thread_has_exited
bool delivery_thread_has_exited
Definition
regulatorimpl.h:128
_Regulator_Control::queue_id
rtems_id queue_id
Definition
regulatorimpl.h:110
_Regulator_Control::message_queue_storage
void * message_queue_storage
Definition
regulatorimpl.h:107
_Regulator_Control::Attributes
rtems_regulator_attributes Attributes
Definition
regulatorimpl.h:101
_Regulator_Control::Statistics
_Regulator_Statistics Statistics
Definition
regulatorimpl.h:131
_Regulator_Control::delivery_thread_request_exit
bool delivery_thread_request_exit
Definition
regulatorimpl.h:125
_Regulator_Control::message_memory
void * message_memory
Definition
regulatorimpl.h:104
_Regulator_Message_t
Regulator Message Instance Management Structure.
Definition
regulatorimpl.h:64
_Regulator_Message_t::length
size_t length
Definition
regulatorimpl.h:68
_Regulator_Message_t::buffer
void * buffer
Definition
regulatorimpl.h:66
_Regulator_Statistics
Regulator Statistics Private Structure.
Definition
regulatorimpl.h:78
_Regulator_Statistics::obtained
atomic_size_t obtained
Definition
regulatorimpl.h:80
_Regulator_Statistics::delivered
atomic_size_t delivered
Definition
regulatorimpl.h:86
_Regulator_Statistics::released
atomic_size_t released
Definition
regulatorimpl.h:83
rtems_regulator_attributes
Attributes for Regulator Instance.
Definition
regulator.h:243
Generated by
1.18.0