| // Copyright 2019 The Chromium 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 THIRD_PARTY_BASE_ALLOCATOR_PARTITION_ALLOCATOR_RANDOM_H_ | |
| #define THIRD_PARTY_BASE_ALLOCATOR_PARTITION_ALLOCATOR_RANDOM_H_ | |
| #include <stdint.h> | |
| #include "third_party/base/base_export.h" | |
| namespace pdfium { | |
| namespace base { | |
| // Returns a random value. The generator's internal state is initialized with | |
| // `base::RandUint64` which is very unpredictable, but which is expensive due to | |
| // the need to call into the kernel. Therefore this generator uses a fast, | |
| // entirely user-space function after initialization. | |
| BASE_EXPORT uint32_t RandomValue(); | |
| // Sets the seed for the random number generator to a known value, to cause the | |
| // RNG to generate a predictable sequence of outputs. May be called multiple | |
| // times. | |
| BASE_EXPORT void SetMmapSeedForTesting(uint64_t seed); | |
| } // namespace base | |
| } // namespace pdfium | |
| #endif // THIRD_PARTY_BASE_ALLOCATOR_PARTITION_ALLOCATOR_RANDOM_H_ |