1// Copyright 2016 The Fuchsia Authors
2// Copyright (c) 2016, Google, Inc. All rights reserved
3//
4// Use of this source code is governed by a MIT-style
5// license that can be found in the LICENSE file or at
6// https://opensource.org/licenses/MIT
7
8#pragma once
9
10#include <assert.h>
11#include <zircon/compiler.h>
12#include <debug.h>
13#include <err.h>
14#include <sys/types.h>
15
16__BEGIN_CDECLS
17
18size_t hw_rng_get_entropy(void* buf, size_t len, bool block);
19
20static inline uint32_t hw_rng_get_u32(void) {
21    uint32_t ret;
22    __UNUSED size_t fetched;
23
24    fetched = hw_rng_get_entropy(&ret, sizeof(ret), true);
25    DEBUG_ASSERT(fetched == sizeof(ret));
26    return ret;
27}
28
29__END_CDECLS
30