2019-12-28 18:28:27 +00:00
|
|
|
// SPDX-License-Identifier: GPL-2.0+
|
|
|
|
/*
|
|
|
|
* Copyright (c) 2019, Linaro Limited
|
|
|
|
*/
|
|
|
|
|
|
|
|
#if !defined _RNG_H_
|
|
|
|
#define _RNG_H_
|
|
|
|
|
|
|
|
struct udevice;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* dm_rng_read() - read a random number seed from the rng device
|
|
|
|
*
|
2020-06-13 10:29:52 +00:00
|
|
|
* The function blocks until the requested number of bytes is read.
|
|
|
|
*
|
|
|
|
* @dev: random number generator device
|
|
|
|
* @buffer: input buffer to put the read random seed into
|
|
|
|
* @size: number of random bytes to read
|
|
|
|
* Return: 0 if OK, -ve on error
|
2019-12-28 18:28:27 +00:00
|
|
|
*/
|
|
|
|
int dm_rng_read(struct udevice *dev, void *buffer, size_t size);
|
|
|
|
|
2020-06-13 10:29:52 +00:00
|
|
|
/**
|
|
|
|
* struct dm_rng_ops - operations for the hwrng uclass
|
|
|
|
*
|
|
|
|
* This structures contains the function implemented by a hardware random
|
|
|
|
* number generation device.
|
|
|
|
*/
|
2019-12-28 18:28:27 +00:00
|
|
|
struct dm_rng_ops {
|
|
|
|
/**
|
2020-06-13 10:29:52 +00:00
|
|
|
* @read: read a random bytes
|
2019-12-28 18:28:27 +00:00
|
|
|
*
|
2020-06-13 10:29:52 +00:00
|
|
|
* The function blocks until the requested number of bytes is read.
|
2019-12-28 18:28:27 +00:00
|
|
|
*
|
2020-06-13 10:29:52 +00:00
|
|
|
* @read.dev: random number generator device
|
|
|
|
* @read.data: input buffer to read the random seed into
|
|
|
|
* @read.max: number of random bytes to read
|
|
|
|
* @read.Return: 0 if OK, -ve on error
|
2019-12-28 18:28:27 +00:00
|
|
|
*/
|
|
|
|
int (*read)(struct udevice *dev, void *data, size_t max);
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* _RNG_H_ */
|