blob: f2f615bda7e2b707ab0c145ff355e006622b9765 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SRC_LIB_NIX_INCLUDE_SYS_RANDOM_H_
#define SRC_LIB_NIX_INCLUDE_SYS_RANDOM_H_
#include <stdint.h>
#include <unistd.h>
#define GRND_NONBLOCK 0x0001
#define GRND_RANDOM 0x0002
#ifdef __cplusplus
extern "C" {
#endif
// Fills the provided |buffer| with |buffer_size| random bytes. The |flags|
// argument is a bitmask that can contain zero or more of the flags
// GRND_RANDOM or GRND_NONBLOCK ORed together.
//
// On success, returns the number of bytes written, which will always be
// |buffer_size|. On error, -1 is returned, and errno is set appropriately.
ssize_t getrandom(void* buffer, size_t buffer_size, unsigned int flags);
#ifdef __cplusplus
}
#endif
#endif // SRC_LIB_NIX_INCLUDE_SYS_RANDOM_H_