diff options
-rw-r--r-- | src/lib9/lnrand.c | 18 | ||||
-rw-r--r-- | src/lib9/lrand.c | 8 | ||||
-rw-r--r-- | src/lib9/opentemp.c | 9 |
3 files changed, 35 insertions, 0 deletions
diff --git a/src/lib9/lnrand.c b/src/lib9/lnrand.c new file mode 100644 index 00000000..5b648d08 --- /dev/null +++ b/src/lib9/lnrand.c @@ -0,0 +1,18 @@ +#include <u.h> +#include <libc.h> + +#define MASK 0x7fffffffL + +long +lnrand(long n) +{ + long slop, v; + + if(n < 0) + return n; + slop = MASK % n; + do + v = lrand(); + while(v <= slop); + return v % n; +} diff --git a/src/lib9/lrand.c b/src/lib9/lrand.c new file mode 100644 index 00000000..47c331d9 --- /dev/null +++ b/src/lib9/lrand.c @@ -0,0 +1,8 @@ +#include <u.h> +#include <libc.h> + +long +lrand(void) +{ + return ((rand()<<16)^rand()) & 0x7FFFFFFF; +} diff --git a/src/lib9/opentemp.c b/src/lib9/opentemp.c new file mode 100644 index 00000000..ff2b3f81 --- /dev/null +++ b/src/lib9/opentemp.c @@ -0,0 +1,9 @@ +#include <u.h> +#include <libc.h> + +int +opentemp(char *template) +{ + return mkstemp(template); +} + |