Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
/*
 * Copyright (c) 2018 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <kernel.h>
#include <string.h>
#include <openthread/types.h>
#include <openthread/platform/random.h>

#include "platform-zephyr.h"

uint32_t otPlatRandomGet(void)
{
	return sys_rand32_get();
}

otError otPlatRandomGetTrue(u8_t *aOutput, u16_t aOutputLength)
{
	int i;
	u32_t random;

	if (!aOutput) {
		return OT_ERROR_INVALID_ARGS;
	}

	for (i = 0; i < (aOutputLength & 0xFFFC); i += 4) {
		random = sys_rand32_get();
		memcpy(&aOutput[i], &random, sizeof(random));
	}

	random = sys_rand32_get();
	memcpy(&aOutput[i], &random, aOutputLength & 0x0003);

	return OT_ERROR_NONE;
}