Subversion Repositories HelenOS-historic

Rev

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

Rev 225 Rev 413
Line 58... Line 58...
58
static void failed(void);
58
static void failed(void);
59
 
59
 
60
__u32 random(__u32 max)
60
__u32 random(__u32 max)
61
{
61
{
62
    __u32 rc;
62
    __u32 rc;
63
    pri_t pri;
63
    ipl_t ipl;
64
 
64
 
65
    spinlock_lock(&lock);  
65
    spinlock_lock(&lock);  
66
    rc = seed % max;
66
    rc = seed % max;
67
    seed = (((seed<<2) ^ (seed>>2)) * 487) + rc;
67
    seed = (((seed<<2) ^ (seed>>2)) * 487) + rc;
68
    spinlock_unlock(&lock);
68
    spinlock_unlock(&lock);