rng-random.c (2d3b7c0164e1b9287304bc70dd6ed071ba3e8dfc) | rng-random.c (443590c2044968a97f5e7cddd35100c6075856a4) |
---|---|
1/* 2 * QEMU Random Number Generator Backend 3 * 4 * Copyright IBM, Corp. 2012 5 * 6 * Authors: 7 * Anthony Liguori <aliguori@us.ibm.com> 8 * --- 21 unchanged lines hidden (view full) --- 30 * This backend exposes an additional "filename" property that can be used to 31 * set the filename to use to open the backend. 32 */ 33 34static void entropy_available(void *opaque) 35{ 36 RndRandom *s = RNG_RANDOM(opaque); 37 | 1/* 2 * QEMU Random Number Generator Backend 3 * 4 * Copyright IBM, Corp. 2012 5 * 6 * Authors: 7 * Anthony Liguori <aliguori@us.ibm.com> 8 * --- 21 unchanged lines hidden (view full) --- 30 * This backend exposes an additional "filename" property that can be used to 31 * set the filename to use to open the backend. 32 */ 33 34static void entropy_available(void *opaque) 35{ 36 RndRandom *s = RNG_RANDOM(opaque); 37 |
38 while (s->parent.requests != NULL) { 39 RngRequest *req = s->parent.requests->data; | 38 while (!QSIMPLEQ_EMPTY(&s->parent.requests)) { 39 RngRequest *req = QSIMPLEQ_FIRST(&s->parent.requests); |
40 ssize_t len; 41 42 len = read(s->fd, req->data, req->size); 43 if (len < 0 && errno == EAGAIN) { 44 return; 45 } 46 g_assert(len != -1); 47 --- 5 unchanged lines hidden (view full) --- 53 /* We've drained all requests, the fd handler can be reset. */ 54 qemu_set_fd_handler(s->fd, NULL, NULL, NULL); 55} 56 57static void rng_random_request_entropy(RngBackend *b, RngRequest *req) 58{ 59 RndRandom *s = RNG_RANDOM(b); 60 | 40 ssize_t len; 41 42 len = read(s->fd, req->data, req->size); 43 if (len < 0 && errno == EAGAIN) { 44 return; 45 } 46 g_assert(len != -1); 47 --- 5 unchanged lines hidden (view full) --- 53 /* We've drained all requests, the fd handler can be reset. */ 54 qemu_set_fd_handler(s->fd, NULL, NULL, NULL); 55} 56 57static void rng_random_request_entropy(RngBackend *b, RngRequest *req) 58{ 59 RndRandom *s = RNG_RANDOM(b); 60 |
61 if (s->parent.requests == NULL) { | 61 if (QSIMPLEQ_EMPTY(&s->parent.requests)) { |
62 /* If there are no pending requests yet, we need to 63 * install our fd handler. */ 64 qemu_set_fd_handler(s->fd, entropy_available, NULL, s); 65 } 66} 67 68static void rng_random_opened(RngBackend *b, Error **errp) 69{ --- 83 unchanged lines hidden --- | 62 /* If there are no pending requests yet, we need to 63 * install our fd handler. */ 64 qemu_set_fd_handler(s->fd, entropy_available, NULL, s); 65 } 66} 67 68static void rng_random_opened(RngBackend *b, Error **errp) 69{ --- 83 unchanged lines hidden --- |