rng.h 1.1 KB

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