/**
 * @file random.h
 *
 * @brief Public APIs for the random driver.
 */

/*
 * Copyright (c) 2016 ARM Ltd.
 *
 * SPDX-License-Identifier: Apache-2.0
 */
#ifndef __RANDOM_H__
#define __RANDOM_H__

/**
 * @brief Random Interface
 * @defgroup random_interface Random Interface
 * @ingroup io_interfaces
 * @{
 */

#ifdef __cplusplus
extern "C" {
#endif

#include <zephyr/types.h>
#include <device.h>

/**
 * @typedef random_get_entropy_t
 * @brief Callback API to get entropy.
 *
 * See random_get_entropy() for argument description
 */
typedef int (*random_get_entropy_t)(struct device *dev,
				    u8_t *buffer,
				    u16_t length);

struct random_driver_api {
	random_get_entropy_t get_entropy;
};

/**
 * @brief Get entropy from the random driver.
 *
 * Fill a buffer with entropy from the random driver.
 *
 * @param dev Pointer to the random device.
 * @param buffer Buffer to fill with entropy.
 * @param length Buffer length.
 * @retval 0 on success.
 * @retval -ERRNO errno code on error.
 */
static inline int random_get_entropy(struct device *dev,
				     u8_t *buffer,
				     u16_t length)
{
	const struct random_driver_api *api = dev->driver_api;

	__ASSERT(api->get_entropy, "Callback pointer should not be NULL");
	return api->get_entropy(dev, buffer, length);
}

#ifdef __cplusplus
}
#endif

/**
 * @}
 */

#endif /* __RANDOM_H__ */
