1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright (c) 2019, Linaro Limited 4 */ 5 6 #if !defined _RNG_H_ 7 #define _RNG_H_ 8 9 #include <linux/types.h> 10 11 struct udevice; 12 13 /** 14 * dm_rng_read() - read a random number seed from the rng device 15 * 16 * The function blocks until the requested number of bytes is read. 17 * 18 * @dev: random number generator device 19 * @buffer: input buffer to put the read random seed into 20 * @size: number of random bytes to read 21 * Return: 0 if OK, -ve on error 22 */ 23 int dm_rng_read(struct udevice *dev, void *buffer, size_t size); 24 25 /** 26 * struct dm_rng_ops - operations for the hwrng uclass 27 * 28 * This structures contains the function implemented by a hardware random 29 * number generation device. 30 */ 31 struct dm_rng_ops { 32 /** 33 * @read: read a random bytes 34 * 35 * The function blocks until the requested number of bytes is read. 36 * 37 * @read.dev: random number generator device 38 * @read.data: input buffer to read the random seed into 39 * @read.max: number of random bytes to read 40 * @read.Return: 0 if OK, -ve on error 41 */ 42 int (*read)(struct udevice *dev, void *data, size_t max); 43 }; 44 45 #endif /* _RNG_H_ */ 46