summaryrefslogtreecommitdiffstats
path: root/tapset/random.stp
blob: 9b2fdc705eaf41beee9bb694fc6120608e6ce5f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
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
%}