Blob
1 #include <u.h>2 #include <libc.h>3 #include <libsec.h>5 #define Maxrand ((1UL<<31)-1)7 ulong8 nfastrand(ulong n)9 {10 ulong m, r;12 /*13 * set m to the maximum multiple of n <= 2^31-114 * so we want a random number < m.15 */16 if(n > Maxrand)17 sysfatal("nfastrand: n too large");19 m = Maxrand - Maxrand % n;20 while((r = fastrand()) >= m)21 ;22 return r%n;23 }