nRF51 SDK - S210 SoftDevice
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages

Driver for managing the random number generator (RNG). More...

Data Structures

struct  nrf_drv_rng_config_t
 Struct for RNG configuration. More...
 

Macros

#define NRF_DRV_RNG_DEFAULT_CONFIG
 RNG default configuration. More...
 

Functions

ret_code_t nrf_drv_rng_init (nrf_drv_rng_config_t const *p_config)
 Function for initializing the nrf_drv_rng module. More...
 
void nrf_drv_rng_uninit (void)
 Function for uninitializing the nrf_drv_rng module.
 
ret_code_t nrf_drv_rng_bytes_available (uint8_t *p_bytes_available)
 Function for getting the number of currently available random bytes. More...
 
ret_code_t nrf_drv_rng_pool_capacity (uint8_t *p_pool_capacity)
 Function for querying the capacity of the application random pool. More...
 
ret_code_t nrf_drv_rng_rand (uint8_t *p_buff, uint8_t length)
 Function for getting the vector of random numbers. More...
 

Detailed Description

Driver for managing the random number generator (RNG).

Macro Definition Documentation

#define NRF_DRV_RNG_DEFAULT_CONFIG
Value:
{ \
.error_correction = RNG_CONFIG_ERROR_CORRECTION, \
.interrupt_priority = RNG_CONFIG_IRQ_PRIORITY, \
}

RNG default configuration.

Function Documentation

ret_code_t nrf_drv_rng_bytes_available ( uint8_t *  p_bytes_available)

Function for getting the number of currently available random bytes.

Parameters
[out]p_bytes_availableThe number of bytes currently available in the pool.
Return values
NRF_SUCCESSIf the number of available random bytes was written to p_bytes_available.
NRF_ERROR_INVALID_STATEIf the driver was not initialized.
ret_code_t nrf_drv_rng_init ( nrf_drv_rng_config_t const *  p_config)

Function for initializing the nrf_drv_rng module.

Parameters
[in]p_configInitial configuration. Default configuration used if NULL.
Return values
NRF_SUCCESSDriver was successfully initialized.
NRF_ERROR_INVALID_STATEDriver was already initialized.
NRF_ERROR_INVALID_LENGTHPool size have to be a power of 2.
NRF_ERROR_SOFTDEVICE_NOT_ENABLEDSoftDevice is present, but not enabled.
ret_code_t nrf_drv_rng_pool_capacity ( uint8_t *  p_pool_capacity)

Function for querying the capacity of the application random pool.

Parameters
[out]p_pool_capacityThe capacity of the pool.
Return values
NRF_SUCCESSIf the capacity of the pool was written to p_pool_capacity.
NRF_ERROR_INVALID_STATEIf the driver was not initialized.
ret_code_t nrf_drv_rng_rand ( uint8_t *  p_buff,
uint8_t  length 
)

Function for getting the vector of random numbers.

Parameters
[out]p_buffPointer to unit8_t buffer for storing the bytes.
[in]lengthNumber of bytes to take from the pool and place in p_buff.
Return values
NRF_SUCCESSIf the requested bytes were written to p_buff.
NRF_ERROR_INVALID_STATEIf the driver was not initialized.
NRF_ERROR_NO_MEMIf no bytes were written to the buffer because there were not enough bytes available in p_buff.
NRF_ERROR_SOC_RAND_NOT_ENOUGH_VALUESIf no bytes were written to the buffer because there were not enough bytes available in the pool.