qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 2/4] util/fifo: Generalise for common integer


From: Peter Crosthwaite
Subject: Re: [Qemu-devel] [PATCH v3 2/4] util/fifo: Generalise for common integer widths
Date: Tue, 15 Apr 2014 12:29:49 +1000

On Mon, Apr 14, 2014 at 7:56 AM, Beniamino Galvani <address@hidden> wrote:
> On Wed, Apr 09, 2014 at 11:42:31PM -0700, Peter Crosthwaite wrote:
>> Add support for 16, 32 and 64 bit width FIFOs. The push and pop
>> functions are replicated to accept all four different integer types.
>> The element width of the FIFO is set at creation time.
>>
>> The backing storage for all element types is still uint8_t regardless of
>> element width so some save-load logic is needed to handle endianness
>> issue WRT VMSD.
>>
>> Signed-off-by: Peter Crosthwaite <address@hidden>
>> ---

>>  /**
>>   * fifo_reset:
>> diff --git a/util/fifo.c b/util/fifo.c
>> index 4ee6c85..a52e920 100644
>> --- a/util/fifo.c
>> +++ b/util/fifo.c
>> @@ -15,9 +15,11 @@
>>  #include "qemu-common.h"
>>  #include "qemu/fifo.h"
>>
>> -void fifo_create(Fifo *fifo, uint32_t capacity)
>> +void fifo_create(Fifo *fifo, uint32_t capacity, int width)
>>  {
>> -    fifo->data = g_new(uint8_t, capacity);
>> +    assert(width == 8 || width == 16 || width == 32 || width == 64);
>> +    fifo->width = width / 8;
>> +    fifo->data = g_new(uint8_t, capacity * fifo->width);
>>      fifo->capacity = capacity;
>
> Maybe buffer_size should be initialized here as well.
>

Yes you are right. Nice catch.

Regards,
Peter

P.S. I dropped your RB from V1 due to the major changes prompted by
Don's review.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]