Lines Matching defs:prng_data

105 static struct prng_data_s *prng_data;
193 cpacf_kmc(CPACF_KMC_PRNG, prng_data->prngws.parm_block,
196 memcpy(prng_data->prngws.parm_block, entropy, sizeof(entropy));
212 *((__u64 *)prng_data->prngws.parm_block) ^= *((__u64 *)(buf+i));
218 prng_data->prngws.reseed_counter = 0;
230 /* memory allocation, prng_data struct init, mutex init */
232 prng_data = kzalloc(datalen, GFP_KERNEL);
233 if (!prng_data) {
237 mutex_init(&prng_data->mutex);
238 prng_data->buf = ((u8 *)prng_data) + sizeof(struct prng_data_s);
239 memcpy(prng_data->prngws.parm_block, initial_parm_block, 32);
252 kfree_sensitive(prng_data);
377 /* memory allocation, prng_data struct init, mutex init */
381 prng_data = kzalloc(datalen, GFP_KERNEL);
382 if (!prng_data) {
386 mutex_init(&prng_data->mutex);
387 prng_data->buf = ((u8 *)prng_data) + sizeof(struct prng_data_s);
422 &prng_data->prnows, NULL, 0, seed, seedlen);
428 prng_data->prev = prng_data->buf + prng_chunk_size;
430 &prng_data->prnows,
431 prng_data->prev, prng_chunk_size, NULL, 0);
437 kfree(prng_data);
445 kfree_sensitive(prng_data);
469 &prng_data->prnows, NULL, 0, seed, seedlen);
481 if (prng_data->prnows.reseed_counter > prng_reseed_limit) {
489 &prng_data->prnows, buf, nbytes, NULL, 0);
493 if (!memcmp(prng_data->prev, buf, nbytes)) {
497 memcpy(prng_data->prev, buf, nbytes);
517 /* lock prng_data struct */
518 if (mutex_lock_interruptible(&prng_data->mutex))
529 mutex_unlock(&prng_data->mutex);
532 if (mutex_lock_interruptible(&prng_data->mutex)) {
548 if (prng_data->prngws.reseed_counter > prng_reseed_limit)
552 *((unsigned long long *)prng_data->buf) = get_tod_clock_fast();
567 cpacf_kmc(CPACF_KMC_PRNG, prng_data->prngws.parm_block,
568 prng_data->buf, prng_data->buf, n);
570 prng_data->prngws.byte_counter += n;
571 prng_data->prngws.reseed_counter += n;
573 if (copy_to_user(ubuf, prng_data->buf, chunk)) {
583 /* unlock prng_data struct */
584 mutex_unlock(&prng_data->mutex);
600 /* lock prng_data struct */
601 if (mutex_lock_interruptible(&prng_data->mutex))
612 mutex_unlock(&prng_data->mutex);
615 if (mutex_lock_interruptible(&prng_data->mutex)) {
621 if (prng_data->rest) {
623 p = prng_data->buf + prng_chunk_size - prng_data->rest;
624 n = (nbytes < prng_data->rest) ?
625 nbytes : prng_data->rest;
626 prng_data->rest -= n;
629 p = prng_data->buf;
637 prng_data->rest = prng_chunk_size - n;
640 prng_data->rest = 0;
653 /* unlock prng_data struct */
654 mutex_unlock(&prng_data->mutex);
707 if (mutex_lock_interruptible(&prng_data->mutex))
710 counter = prng_data->prnows.stream_bytes;
712 counter = prng_data->prngws.byte_counter;
713 mutex_unlock(&prng_data->mutex);
745 if (mutex_lock_interruptible(&prng_data->mutex))
748 mutex_unlock(&prng_data->mutex);