get_random_num: Simplify

random() is available everywhere except Windows and DOS.
Also switch Windows to rand_s.
pull/1309/head
Rosen Penev 7 years ago
parent a0b30dc9a3
commit 3c530a48c4

@ -250,11 +250,13 @@ CFLAGS_CROSS_WIN32 += -I$(OPENCL_HEADERS_KHRONOS)/
CFLAGS_CROSS_WIN32 += -I$(WIN_ICONV_32)/include/
CFLAGS_CROSS_WIN32 += -m32
CFLAGS_CROSS_WIN32 += -DWITH_HWMON
CFLAGS_CROSS_WIN32 += -D_CRT_RAND_S
CFLAGS_CROSS_WIN64 := $(CFLAGS)
CFLAGS_CROSS_WIN64 += -I$(OPENCL_HEADERS_KHRONOS)/
CFLAGS_CROSS_WIN64 += -I$(WIN_ICONV_64)/include/
CFLAGS_CROSS_WIN64 += -m64
CFLAGS_CROSS_WIN64 += -DWITH_HWMON
CFLAGS_CROSS_WIN64 += -D_CRT_RAND_S
LFLAGS_CROSS_LINUX32 := $(LFLAGS)
LFLAGS_CROSS_LINUX32 += -lpthread

@ -379,27 +379,16 @@ u32 get_random_num (const u32 min, const u32 max)
if (low == 0) return (0);
#if defined (__linux__)
u32 data;
FILE *fp = fopen ("/dev/urandom", "rb");
if (fp == NULL) return (0);
const int nread = fread (&data, sizeof (u32), 1, fp);
fclose (fp);
if (nread != 1) return 0;
#if defined (_WIN)
u64 r = data % low; r += min;
u32 r;
rand_s(&r);
return (u32) r;
return ((r % (max - min)) + min);
#else
return (((u32) rand () % (max - min)) + min);
return (((u32) random () % (max - min)) + min);
#endif
}

Loading…
Cancel
Save