44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
// 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
 | 
						|
 *
 | 
						|
 * 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
 | 
						|
 */
 | 
						|
int dm_rng_read(struct udevice *dev, void *buffer, size_t size);
 | 
						|
 | 
						|
/**
 | 
						|
 * struct dm_rng_ops - operations for the hwrng uclass
 | 
						|
 *
 | 
						|
 * This structures contains the function implemented by a hardware random
 | 
						|
 * number generation device.
 | 
						|
 */
 | 
						|
struct dm_rng_ops {
 | 
						|
	/**
 | 
						|
	 * @read:	read a random bytes
 | 
						|
	 *
 | 
						|
	 * The function blocks until the requested number of bytes is read.
 | 
						|
	 *
 | 
						|
	 * @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
 | 
						|
	 */
 | 
						|
	int (*read)(struct udevice *dev, void *data, size_t max);
 | 
						|
};
 | 
						|
 | 
						|
#endif /* _RNG_H_ */
 |