Rev 225 | Rev 475 | Go to most recent revision | Show entire file | Regard 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); |