On 03/20/2013 05:23 PM, Laszlo Ersek wrote:
> The data is binary, not textual.
> 
> Also, acpi_table_add() abuses the "char *f" pointer -- which normally
> points to file names to load -- to poke into the table. Introduce "char
> unsigned *table_start" for that purpose.
> 
> Signed-off-by: Laszlo Ersek <ler...@redhat.com>
> ---

> @@ -112,7 +113,7 @@ int acpi_table_add(const char *t)
>          }
>  
>          for (;;) {
> -            char data[8192];
> +            char unsigned data[8192];

Although this spelling of the type is valid C, it is not typical
convention prior to your patch:

$ git grep 'unsigned char' | wc
    508    3130   34115
$ git grep 'char unsigned' | wc
      0       0       0

> @@ -225,11 +226,11 @@ int acpi_table_add(const char *t)
>      hdr.checksum = 0;    /* for checksum calculation */
>  
>      /* put header back */
> -    memcpy(f, &hdr, sizeof(hdr));
> +    memcpy(table_start, &hdr, sizeof(hdr));
>  
>      if (changed || !has_header || 1) {
> -        ((struct acpi_table_header *)f)->checksum =
> -            acpi_checksum((uint8_t *)f + ACPI_TABLE_PFX_SIZE, len);
> +        ((struct acpi_table_header *)table_start)->checksum =
> +            acpi_checksum((uint8_t *)table_start + ACPI_TABLE_PFX_SIZE, len);

Now that table_start is an unsigned char *, do you still need the cast
to uint8_t*?

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to