rng-egd.c (2d3b7c0164e1b9287304bc70dd6ed071ba3e8dfc) | rng-egd.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 * --- 35 unchanged lines hidden (view full) --- 44 45 size -= len; 46 } 47} 48 49static int rng_egd_chr_can_read(void *opaque) 50{ 51 RngEgd *s = RNG_EGD(opaque); | 1/* 2 * QEMU Random Number Generator Backend 3 * 4 * Copyright IBM, Corp. 2012 5 * 6 * Authors: 7 * Anthony Liguori <aliguori@us.ibm.com> 8 * --- 35 unchanged lines hidden (view full) --- 44 45 size -= len; 46 } 47} 48 49static int rng_egd_chr_can_read(void *opaque) 50{ 51 RngEgd *s = RNG_EGD(opaque); |
52 GSList *i; | 52 RngRequest *req; |
53 int size = 0; 54 | 53 int size = 0; 54 |
55 for (i = s->parent.requests; i; i = i->next) { 56 RngRequest *req = i->data; | 55 QSIMPLEQ_FOREACH(req, &s->parent.requests, next) { |
57 size += req->size - req->offset; 58 } 59 60 return size; 61} 62 63static void rng_egd_chr_read(void *opaque, const uint8_t *buf, int size) 64{ 65 RngEgd *s = RNG_EGD(opaque); 66 size_t buf_offset = 0; 67 | 56 size += req->size - req->offset; 57 } 58 59 return size; 60} 61 62static void rng_egd_chr_read(void *opaque, const uint8_t *buf, int size) 63{ 64 RngEgd *s = RNG_EGD(opaque); 65 size_t buf_offset = 0; 66 |
68 while (size > 0 && s->parent.requests) { 69 RngRequest *req = s->parent.requests->data; | 67 while (size > 0 && !QSIMPLEQ_EMPTY(&s->parent.requests)) { 68 RngRequest *req = QSIMPLEQ_FIRST(&s->parent.requests); |
70 int len = MIN(size, req->size - req->offset); 71 72 memcpy(req->data + req->offset, buf + buf_offset, len); 73 buf_offset += len; 74 req->offset += len; 75 size -= len; 76 77 if (req->offset == req->size) { --- 100 unchanged lines hidden --- | 69 int len = MIN(size, req->size - req->offset); 70 71 memcpy(req->data + req->offset, buf + buf_offset, len); 72 buf_offset += len; 73 req->offset += len; 74 size -= len; 75 76 if (req->offset == req->size) { --- 100 unchanged lines hidden --- |