src/lib/w32/random.h

Go to the documentation of this file.
00001 #include <io.h>
00002 
00003 typedef int int32_t;
00004 #define NULL    ((void *)0)
00005 struct random_data
00006 {
00007     int32_t *fptr;              /* Front pointer.  */
00008     int32_t *rptr;              /* Rear pointer.  */
00009     int32_t *state;             /* Array of state values.  */
00010     int rand_type;              /* Type of random number generator.  */
00011     int rand_deg;               /* Degree of random number generator.  */
00012     int rand_sep;               /* Distance between front and rear.  */
00013     int32_t *end_ptr;           /* Pointer behind state table.  */
00014 };
00015 
00016 /*
00017  * Not required as the empire scheduler ensure only
00018  * one thread is active at a time
00019  */
00020 #define __libc_lock_lock(lock)
00021 #define __libc_lock_unlock(lock)
00022 #define __libc_lock_define_initialized(static1, lock)
00023 
00024 #ifdef _MSC_VER
00025 #define __set_errno(val) _set_errno((val))
00026 #else
00027 #define __set_errno(val) (errno = (val))
00028 #endif
00029 
00030 #define weak_alias(arg1, arg2)
00031 #define srandom_r(seed, buf) __srandom_r((seed), (buf))
00032 #define random_r(buf, result) __random_r((buf), (result))
00033 #define initstate_r(seed, state, size, buf) \
00034     __initstate_r((seed), (state), (size), (buf))
00035 #define setstate_r(state, buf) __setstate_r((state), (buf))
00036 
00037 extern int __random_r (struct random_data *__restrict __buf,
00038                      int32_t *__restrict __result);
00039 extern int __srandom_r (unsigned int __seed, struct random_data *__buf);
00040 extern int __initstate_r (unsigned int __seed, char *__restrict __statebuf,
00041                         size_t __statelen,
00042                         struct random_data *__restrict __buf);
00043 extern int __setstate_r (char *__restrict __statebuf,
00044                        struct random_data *__restrict __buf);

Generated on Fri Mar 28 11:01:16 2008 for empserver by  doxygen 1.5.2