Subversion Repositories HelenOS-historic

Rev

Rev 111 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 111 Rev 171
Line 57... Line 57...
57
static void failed(void);
57
static void failed(void);
58
 
58
 
59
__u32 random(__u32 max)
59
__u32 random(__u32 max)
60
{
60
{
61
    __u32 rc;
61
    __u32 rc;
-
 
62
    pri_t pri;
62
 
63
 
-
 
64
    pri = cpu_priority_high();
63
    spinlock_lock(&lock);  
65
    spinlock_lock(&lock);  
64
    rc = seed % max;
66
    rc = seed % max;
65
    seed = (((seed<<2) ^ (seed>>2)) * 487) + rc;
67
    seed = (((seed<<2) ^ (seed>>2)) * 487) + rc;
66
    spinlock_unlock(&lock);
68
    spinlock_unlock(&lock);
-
 
69
    cpu_priority_restore(pri);
67
    return rc;
70
    return rc;
68
}
71
}
69
 
72
 
70
 
73
 
71
void writer(void *arg)
74
void writer(void *arg)