]> git.pond.sub.org Git - empserver/blob - src/lib/w32/random.h
Revert "MinGW provides random() in -liberty, no need to replace it"
[empserver] / src / lib / w32 / random.h
1 #include <io.h>
2
3 typedef int int32_t;
4 #define NULL    ((void *)0)
5 struct random_data
6 {
7     int32_t *fptr;              /* Front pointer.  */
8     int32_t *rptr;              /* Rear pointer.  */
9     int32_t *state;             /* Array of state values.  */
10     int rand_type;              /* Type of random number generator.  */
11     int rand_deg;               /* Degree of random number generator.  */
12     int rand_sep;               /* Distance between front and rear.  */
13     int32_t *end_ptr;           /* Pointer behind state table.  */
14 };
15
16 /*
17  * Not required as the empire scheduler ensure only
18  * one thread is active at a time
19  */
20 #define __libc_lock_lock(lock)
21 #define __libc_lock_unlock(lock)
22 #define __libc_lock_define_initialized(static1, lock)
23
24 #ifdef _MSC_VER
25 #define __set_errno(val) _set_errno((val))
26 #else
27 #define __set_errno(val) (errno = (val))
28 #endif
29
30 #define weak_alias(arg1, arg2)
31 #define srandom_r(seed, buf) __srandom_r((seed), (buf))
32 #define random_r(buf, result) __random_r((buf), (result))
33 #define initstate_r(seed, state, size, buf) \
34     __initstate_r((seed), (state), (size), (buf))
35 #define setstate_r(state, buf) __setstate_r((state), (buf))
36
37 extern int __random_r (struct random_data *__restrict __buf,
38                      int32_t *__restrict __result);
39 extern int __srandom_r (unsigned int __seed, struct random_data *__buf);
40 extern int __initstate_r (unsigned int __seed, char *__restrict __statebuf,
41                         size_t __statelen,
42                         struct random_data *__restrict __buf);
43 extern int __setstate_r (char *__restrict __statebuf,
44                        struct random_data *__restrict __buf);