qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] fix hw/scsi-disk.c compile errors


From: Robert Reif
Subject: Re: [Qemu-devel] [PATCH] fix hw/scsi-disk.c compile errors
Date: Thu, 02 Jul 2009 07:06:55 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.21) Gecko/20090303 SeaMonkey/1.1.15 (Ubuntu-1.1.15+nobinonly-0ubuntu2)

Gerd Hoffmann wrote:
On 07/02/09 01:40, Robert Reif wrote:
This patch fixes 2 compile errors when debugging is enabled.

CC scsi-disk.o
cc1: warnings being treated as errors
/home/reif/qemu/hw/scsi-disk.c: In function ‘scsi_send_command’:
/home/reif/qemu/hw/scsi-disk.c:797: error: format ‘%d’ expects type
‘int’, but argument 2 has type ‘uint64_t’

> - DPRINTF("Synchronise cache (sector %d, count %d)\n", lba, len); > + DPRINTF("Synchronise cache (sector %lld, count %d)\n", lba, len);

Doesn't work. Well, it works on 32bit, but will fail on 64bit. Use the macros provided by inttypes.h instead, i.e.

  "... (sector %" PRId64 ", count ...", lba


Here is a revised patch that uses PRIu64 because lba is a uint64_t.
This patch fixes the 2 %d that were giving an error and 2 %lld that
were wrong.
diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
index a0485db..eb1ef7b 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi-disk.c
@@ -777,7 +777,7 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t 
tag,
     case 0x08:
     case 0x28:
     case 0x88:
-        DPRINTF("Read (sector %lld, count %d)\n", lba, len);
+        DPRINTF("Read (sector %" PRIu64 ", count %d)\n", lba, len);
         if (lba > s->max_lba)
             goto illegal_lba;
         r->sector = lba * s->cluster_size;
@@ -786,7 +786,7 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t 
tag,
     case 0x0a:
     case 0x2a:
     case 0x8a:
-        DPRINTF("Write (sector %lld, count %d)\n", lba, len);
+        DPRINTF("Write (sector %" PRIu64 ", count %d)\n", lba, len);
         if (lba > s->max_lba)
             goto illegal_lba;
         r->sector = lba * s->cluster_size;
@@ -794,7 +794,7 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t 
tag,
         is_write = 1;
         break;
     case 0x35:
-        DPRINTF("Synchronise cache (sector %d, count %d)\n", lba, len);
+        DPRINTF("Synchronise cache (sector %" PRIu64 ", count %d)\n", lba, 
len);
         bdrv_flush(s->bdrv);
         break;
     case 0x43:
@@ -896,7 +896,7 @@ static int32_t scsi_send_command(SCSIDevice *d, uint32_t 
tag,
         r->iov.iov_len = 16;
         break;
     case 0x2f:
-        DPRINTF("Verify (sector %d, count %d)\n", lba, len);
+        DPRINTF("Verify (sector %" PRIu64 ", count %d)\n", lba, len);
         break;
     default:
        DPRINTF("Unknown SCSI command (%2.2x)\n", buf[0]);

reply via email to

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