| // Copyright lowRISC contributors. |
| // Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| // SPDX-License-Identifier: Apache-2.0 |
| |
| #ifndef OPENTITAN_SW_DEVICE_LIB_TESTING_RAND_TESTUTILS_H_ |
| #define OPENTITAN_SW_DEVICE_LIB_TESTING_RAND_TESTUTILS_H_ |
| |
| #include <stdint.h> |
| |
| /** |
| * Generate a pseudo-random unsigned integer. |
| * |
| * For testing purposes, a simple LFSR generates random numbers starting with |
| * a known seed. |
| * @return A pseudo-random 32-bit value. |
| */ |
| uint32_t rand_testutils_gen32(void); |
| |
| /** |
| * Generate a random unsigned integer within a given range. |
| * |
| * This function invokes `random_gen32()` and restricts the returned value to |
| * be within the supplied range, inclusive of the range limits. Note that PRNG |
| * is not expected to produce a uniform distribution of values within the given |
| * range. |
| * @param min The lower limit of the range. |
| * @param max The upper limit of the range. |
| * @return The computed random value within the supplied range. |
| */ |
| uint32_t rand_testutils_gen32_range(uint32_t min, uint32_t max); |
| |
| #endif // OPENTITAN_SW_DEVICE_LIB_TESTING_RAND_TESTUTILS_H_ |