diff --git a/src/lib.rs b/src/lib.rs index 0081a2e..6b7924e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -28,7 +28,7 @@ pub use self::abs::abs; mod rand_r; #[cfg(feature = "rand_r")] -pub use self::rand_r::rand_r; +pub use self::rand_r::{rand_r, RAND_MAX}; #[cfg(feature = "rand")] mod rand; #[cfg(feature = "rand")] diff --git a/src/rand_r.rs b/src/rand_r.rs index d16a687..fd35e62 100644 --- a/src/rand_r.rs +++ b/src/rand_r.rs @@ -3,6 +3,10 @@ //! Licensed under the Blue Oak Model Licence 1.0.0 use core::ffi::{c_int, c_uint}; +#[cfg_attr(not(feature = "rand_r"), export_name = "tinyrlibc_RAND_MAX")] +#[cfg_attr(feature = "rand_r", no_mangle)] +pub static RAND_MAX: c_int = 0x7FFF_FFFC as _; + /// Rust implementation of C library function `rand_r` /// /// Passing NULL (core::ptr::null()) gives undefined behaviour. @@ -29,7 +33,7 @@ pub unsafe extern "C" fn rand_r(seedp: *mut c_uint) -> c_int { *seedp = next; - result + result - 1 } #[cfg(test)]