| // 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_ |