Contiki-NG
Loading...
Searching...
No Matches
random-arch.c
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2022 Yago Fontoura do Rosario <yago.rosario@hotmail.com.br>
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* 3. Neither the name of the copyright holder nor the names of its
14
* contributors may be used to endorse or promote products derived
15
* from this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
20
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
21
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
22
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
28
* OF THE POSSIBILITY OF SUCH DAMAGE.
29
*/
30
/*---------------------------------------------------------------------------*/
31
/**
32
* \addtogroup gecko
33
* @{
34
*
35
* \addtogroup gecko-os OS drivers
36
* @{
37
*
38
* \addtogroup gecko-random Random driver
39
* @{
40
*
41
* \file
42
* Random driver for the gecko.
43
* \author
44
* Yago Fontoura do Rosario <yago.rosario@hotmail.com.br>
45
*
46
*/
47
/*---------------------------------------------------------------------------*/
48
#include <stdlib.h>
49
#include <stdint.h>
50
51
#include "rail.h"
52
#include "em_system.h"
53
54
/*---------------------------------------------------------------------------*/
55
/**
56
* @brief Generates a new random number
57
* @return The random number.
58
*/
59
unsigned
short
60
random_rand
(
void
)
61
{
62
return
(
unsigned
short
)rand();
63
}
64
/*---------------------------------------------------------------------------*/
65
/**
66
* @brief Initialize the random number generator
67
* @param seed Ignored.
68
*/
69
void
70
random_init
(
unsigned
short
seed)
71
{
72
(void)seed;
73
uint32_t entropy;
74
(void)RAIL_GetRadioEntropy(RAIL_EFR32_HANDLE, (uint8_t *)(&entropy),
sizeof
(entropy));
75
76
/* If RAIL does not provide an entropy. */
77
/* Use system unique as entropy */
78
if
(entropy == 0) {
79
entropy = SYSTEM_GetUnique();
80
}
81
82
srand(entropy);
83
}
84
/*---------------------------------------------------------------------------*/
85
/**
86
* @}
87
* @}
88
* @}
89
*/
random_init
void random_init(unsigned short seed)
Initialize the random number generator.
Definition
random-arch.c:70
random_rand
unsigned short random_rand(void)
Generates a new random number.
Definition
random-arch.c:60
arch
cpu
gecko
os
random-arch.c
Generated on Sat May 4 2024 19:29:57 for Contiki-NG by
1.10.0