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 11struct 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 */ 23int 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 */ 31struct 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