aboutsummaryrefslogtreecommitdiff
path: root/lib/chibios/os/hal/templates/hal_trng_lld.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chibios/os/hal/templates/hal_trng_lld.c')
-rw-r--r--lib/chibios/os/hal/templates/hal_trng_lld.c140
1 files changed, 140 insertions, 0 deletions
diff --git a/lib/chibios/os/hal/templates/hal_trng_lld.c b/lib/chibios/os/hal/templates/hal_trng_lld.c
new file mode 100644
index 000000000..337d36976
--- /dev/null
+++ b/lib/chibios/os/hal/templates/hal_trng_lld.c
@@ -0,0 +1,140 @@
1/*
2 ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17/**
18 * @file hal_trng_lld.c
19 * @brief PLATFORM TRNG subsystem low level driver source.
20 *
21 * @addtogroup TRNG
22 * @{
23 */
24
25#include "hal.h"
26
27#if (HAL_USE_TRNG == TRUE) || defined(__DOXYGEN__)
28
29/*===========================================================================*/
30/* Driver local definitions. */
31/*===========================================================================*/
32
33/*===========================================================================*/
34/* Driver exported variables. */
35/*===========================================================================*/
36
37/**
38 * @brief TRNGD1 driver identifier.
39 */
40#if (PLATFORM_TRNG_USE_TRNG1 == TRUE) || defined(__DOXYGEN__)
41TRNGDriver TRNGD1;
42#endif
43
44/*===========================================================================*/
45/* Driver local variables and types. */
46/*===========================================================================*/
47
48/*===========================================================================*/
49/* Driver local functions. */
50/*===========================================================================*/
51
52/*===========================================================================*/
53/* Driver interrupt handlers. */
54/*===========================================================================*/
55
56/*===========================================================================*/
57/* Driver exported functions. */
58/*===========================================================================*/
59
60/**
61 * @brief Low level TRNG driver initialization.
62 *
63 * @notapi
64 */
65void trng_lld_init(void) {
66
67#if PLATFORM_TRNG_USE_TRNG1 == TRUE
68 /* Driver initialization.*/
69 trngObjectInit(&TRNGD1);
70#endif
71}
72
73/**
74 * @brief Configures and activates the TRNG peripheral.
75 *
76 * @param[in] trngp pointer to the @p TRNGDriver object
77 *
78 * @notapi
79 */
80void trng_lld_start(TRNGDriver *trngp) {
81
82 if (trngp->state == TRNG_STOP) {
83 /* Enables the peripheral.*/
84#if PLATFORM_TRNG_USE_TRNG1 == TRUE
85 if (&TRNGD1 == trngp) {
86
87 }
88#endif
89 }
90 /* Configures the peripheral.*/
91
92}
93
94/**
95 * @brief Deactivates the TRNG peripheral.
96 *
97 * @param[in] trngp pointer to the @p TRNGDriver object
98 *
99 * @notapi
100 */
101void trng_lld_stop(TRNGDriver *trngp) {
102
103 if (trngp->state == TRNG_READY) {
104 /* Resets the peripheral.*/
105
106 /* Disables the peripheral.*/
107#if PLATFORM_TRNG_USE_TRNG1 == TRUE
108 if (&TRNGD1 == trngp) {
109
110 }
111#endif
112 }
113}
114
115/**
116 * @brief True random numbers generator.
117 * @note The function is blocking and likely performs polled waiting
118 * inside the low level implementation.
119 *
120 * @param[in] trngp pointer to the @p TRNGDriver object
121 * @param[in] size size of output buffer
122 * @param[out] out output buffer
123 * @return The operation status.
124 * @retval false if a random number has been generated.
125 * @retval true if an HW error occurred.
126 *
127 * @api
128 */
129bool trng_lld_generate(TRNGDriver *trngp, size_t size, uint8_t *out) {
130
131 (void)trngp;
132 (void)size;
133 (void)out;
134
135 return true;
136}
137
138#endif /* HAL_USE_TRNG == TRUE */
139
140/** @} */