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