Lines Matching refs:ctx
125 JEMALLOC_INLINE_C void gen_rand_all(sfmt_t *ctx);
126 JEMALLOC_INLINE_C void gen_rand_array(sfmt_t *ctx, w128_t *array, int size);
129 static void period_certification(sfmt_t *ctx);
285 JEMALLOC_INLINE_C void gen_rand_all(sfmt_t *ctx) { in gen_rand_all() argument
289 r1 = &ctx->sfmt[N - 2]; in gen_rand_all()
290 r2 = &ctx->sfmt[N - 1]; in gen_rand_all()
292 do_recursion(&ctx->sfmt[i], &ctx->sfmt[i], &ctx->sfmt[i + POS1], r1, in gen_rand_all()
295 r2 = &ctx->sfmt[i]; in gen_rand_all()
298 do_recursion(&ctx->sfmt[i], &ctx->sfmt[i], &ctx->sfmt[i + POS1 - N], r1, in gen_rand_all()
301 r2 = &ctx->sfmt[i]; in gen_rand_all()
312 JEMALLOC_INLINE_C void gen_rand_array(sfmt_t *ctx, w128_t *array, int size) { in gen_rand_array() argument
316 r1 = &ctx->sfmt[N - 2]; in gen_rand_array()
317 r2 = &ctx->sfmt[N - 1]; in gen_rand_array()
319 do_recursion(&array[i], &ctx->sfmt[i], &ctx->sfmt[i + POS1], r1, r2); in gen_rand_array()
324 do_recursion(&array[i], &ctx->sfmt[i], &array[i + POS1 - N], r1, r2); in gen_rand_array()
334 ctx->sfmt[j] = array[j + size - N]; in gen_rand_array()
340 ctx->sfmt[j] = array[i]; in gen_rand_array()
383 static void period_certification(sfmt_t *ctx) { in period_certification() argument
387 uint32_t *psfmt32 = &ctx->sfmt[0].u[0]; in period_certification()
447 uint32_t gen_rand32(sfmt_t *ctx) { in gen_rand32() argument
449 uint32_t *psfmt32 = &ctx->sfmt[0].u[0]; in gen_rand32()
451 assert(ctx->initialized); in gen_rand32()
452 if (ctx->idx >= N32) { in gen_rand32()
453 gen_rand_all(ctx); in gen_rand32()
454 ctx->idx = 0; in gen_rand32()
456 r = psfmt32[ctx->idx++]; in gen_rand32()
461 uint32_t gen_rand32_range(sfmt_t *ctx, uint32_t limit) { in gen_rand32_range() argument
466 ret = gen_rand32(ctx); in gen_rand32_range()
482 uint64_t gen_rand64(sfmt_t *ctx) { in gen_rand64() argument
485 uint32_t *psfmt32 = &ctx->sfmt[0].u[0]; in gen_rand64()
488 uint64_t *psfmt64 = (uint64_t *)&ctx->sfmt[0].u[0]; in gen_rand64()
491 assert(ctx->initialized); in gen_rand64()
492 assert(ctx->idx % 2 == 0); in gen_rand64()
494 if (ctx->idx >= N32) { in gen_rand64()
495 gen_rand_all(ctx); in gen_rand64()
496 ctx->idx = 0; in gen_rand64()
499 r1 = psfmt32[ctx->idx]; in gen_rand64()
500 r2 = psfmt32[ctx->idx + 1]; in gen_rand64()
501 ctx->idx += 2; in gen_rand64()
504 r = psfmt64[ctx->idx / 2]; in gen_rand64()
505 ctx->idx += 2; in gen_rand64()
511 uint64_t gen_rand64_range(sfmt_t *ctx, uint64_t limit) { in gen_rand64_range() argument
516 ret = gen_rand64(ctx); in gen_rand64_range()
551 void fill_array32(sfmt_t *ctx, uint32_t *array, int size) { in fill_array32() argument
552 assert(ctx->initialized); in fill_array32()
553 assert(ctx->idx == N32); in fill_array32()
557 gen_rand_array(ctx, (w128_t *)array, size / 4); in fill_array32()
558 ctx->idx = N32; in fill_array32()
587 void fill_array64(sfmt_t *ctx, uint64_t *array, int size) { in fill_array64() argument
588 assert(ctx->initialized); in fill_array64()
589 assert(ctx->idx == N32); in fill_array64()
593 gen_rand_array(ctx, (w128_t *)array, size / 2); in fill_array64()
594 ctx->idx = N32; in fill_array64()
609 sfmt_t *ctx; in init_gen_rand() local
616 ctx = (sfmt_t *)p; in init_gen_rand()
617 psfmt32 = &ctx->sfmt[0].u[0]; in init_gen_rand()
625 ctx->idx = N32; in init_gen_rand()
626 period_certification(ctx); in init_gen_rand()
627 ctx->initialized = 1; in init_gen_rand()
629 return ctx; in init_gen_rand()
640 sfmt_t *ctx; in init_by_array() local
651 ctx = (sfmt_t *)p; in init_by_array()
652 psfmt32 = &ctx->sfmt[0].u[0]; in init_by_array()
665 memset(ctx->sfmt, 0x8b, sizeof(ctx->sfmt)); in init_by_array()
707 ctx->idx = N32; in init_by_array()
708 period_certification(ctx); in init_by_array()
709 ctx->initialized = 1; in init_by_array()
711 return ctx; in init_by_array()
714 void fini_gen_rand(sfmt_t *ctx) { in fini_gen_rand() argument
715 assert(ctx != NULL); in fini_gen_rand()
717 ctx->initialized = 0; in fini_gen_rand()
718 free(ctx); in fini_gen_rand()