summaryrefslogtreecommitdiff
path: root/packages/base/src/Internal/C/windows_random_r.h
blob: c05caa75d5b45c39dc873fed8c3b94141c844ada (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#if defined(_WIN32) || defined(WIN32)

#ifndef MYRANDOM_H
#define MYRANDOM_H

#include <stddef.h>

#define NULL 0

#define EINVAL 23

typedef int int32_t;

struct random_data
{
    int32_t *fptr;      /* Front pointer.  */
    int32_t *rptr;      /* Rear pointer.  */
    int32_t *state;     /* Array of state values.  */
    int rand_type;      /* Type of random number generator.  */
    int rand_deg;       /* Degree of random number generator.  */
    int rand_sep;       /* Distance between front and rear.  */
    int32_t *end_ptr;       /* Pointer behind state table.  */
};


#define errno my_errno
extern int my_errno;

static inline void __set_errno(int err) { my_errno = err; };

int random_r (struct random_data *buf, int32_t *result);

int initstate_r (unsigned int seed,
        char *arg_state,
        /*unsigned long*/ size_t n,
        struct random_data *buf);

#endif
#endif