/* * Copyright (c) 2021 Space Cubics, LLC. * * SPDX-License-Identifier: Apache-2.0 */ #include #include #define OUTPUT_BITS (0x7fffffffU) #define MULTIPLIER (1103515245U) #define INCREMENT (12345U) int rand_r(unsigned int *seed) { *seed = (MULTIPLIER * *seed + INCREMENT) & OUTPUT_BITS; return *seed; } #ifdef CONFIG_MINIMAL_LIBC_NON_REENTRANT_FUNCTIONS static Z_LIBC_DATA unsigned int srand_seed = 1; void srand(unsigned int s) { srand_seed = s; } int rand(void) { return rand_r(&srand_seed); } #endif /* CONFIG_MINIMAL_LIBC_NON_REENTRANT_FUNCTIONS */