diff options
Diffstat (limited to 'tapset')
-rw-r--r-- | tapset/random.stp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tapset/random.stp b/tapset/random.stp new file mode 100644 index 00000000..9b2fdc70 --- /dev/null +++ b/tapset/random.stp @@ -0,0 +1,14 @@ +/** + * sfunction randint - Return a random number between [0,n) + * @n: Number past upper limit of range, not larger than 2**20. + */ +function randint:long(n:long) +%{ /* unprivileged */ +#define RANDMAX (1024*1024) + if (THIS->n > RANDMAX) + CONTEXT->last_error = "range too wide"; + else { + THIS->__retvalue = (uint64_t) _stp_random_u((unsigned long) THIS->n); + } +#undef RANDMAX +%} |