From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33948) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wv1CX-0007xB-6w for qemu-devel@nongnu.org; Thu, 12 Jun 2014 05:21:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wv1CS-0003WE-4l for qemu-devel@nongnu.org; Thu, 12 Jun 2014 05:21:41 -0400 Message-ID: <53997118.6090005@redhat.com> Date: Thu, 12 Jun 2014 11:21:28 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1402551697-20291-1-git-send-email-aik@ozlabs.ru> In-Reply-To: <1402551697-20291-1-git-send-email-aik@ozlabs.ru> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] scsi: Print command name in debug List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexey Kardashevskiy , qemu-devel@nongnu.org Cc: qemu-ppc@nongnu.org, Alexander Graf Il 12/06/2014 07:41, Alexey Kardashevskiy ha scritto: > This makes scsi_command_name() public. > > This makes use of scsi_command_name() in debug output for scsi-disk and > spapr-vscsi host bus adapter. Before this, SCSI used to print hex numbers > instead of human-friendly strings. > > This adds GET_EVENT_STATUS_NOTIFICATION and READ_DISC_INFORMATION to > the list of SCSI commands supported by scsi_command_name(). > > Signed-off-by: Alexey Kardashevskiy > --- > hw/scsi/scsi-bus.c | 4 +++- > hw/scsi/scsi-disk.c | 3 ++- > hw/scsi/spapr_vscsi.c | 5 +++-- > include/block/scsi.h | 2 ++ > 4 files changed, 10 insertions(+), 4 deletions(-) > > diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c > index 06399fa..5e7d30f 100644 > --- a/hw/scsi/scsi-bus.c > +++ b/hw/scsi/scsi-bus.c > @@ -1429,7 +1429,7 @@ int scsi_build_sense(uint8_t *in_buf, int in_len, > } > } > > -static const char *scsi_command_name(uint8_t cmd) > +const char *scsi_command_name(uint8_t cmd) > { > static const char *names[] = { > [ TEST_UNIT_READY ] = "TEST_UNIT_READY", > @@ -1545,6 +1545,8 @@ static const char *scsi_command_name(uint8_t cmd) > [ SET_READ_AHEAD ] = "SET_READ_AHEAD", > [ ALLOW_OVERWRITE ] = "ALLOW_OVERWRITE", > [ MECHANISM_STATUS ] = "MECHANISM_STATUS", > + [ GET_EVENT_STATUS_NOTIFICATION ] = "GET_EVENT_STATUS_NOTIFICATION", > + [ READ_DISC_INFORMATION ] = "READ_DISC_INFORMATION", > }; > > if (cmd >= ARRAY_SIZE(names) || names[cmd] == NULL) > diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c > index 4bcef55..2b2266a 100644 > --- a/hw/scsi/scsi-disk.c > +++ b/hw/scsi/scsi-disk.c > @@ -2027,7 +2027,8 @@ static int32_t scsi_disk_emulate_command(SCSIRequest *req, uint8_t *buf) > (long)r->req.cmd.xfer); > break; > default: > - DPRINTF("Unknown SCSI command (%2.2x)\n", buf[0]); > + DPRINTF("Unknown SCSI command (%2.2x=%s)\n", buf[0], > + scsi_command_name(buf[0])); > scsi_check_condition(r, SENSE_CODE(INVALID_OPCODE)); > return 0; > } > diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c > index d4ada4f..7dc0f80 100644 > --- a/hw/scsi/spapr_vscsi.c > +++ b/hw/scsi/spapr_vscsi.c > @@ -800,8 +800,9 @@ static int vscsi_queue_cmd(VSCSIState *s, vscsi_req *req) > req->sreq = scsi_req_new(sdev, req->qtag, lun, srp->cmd.cdb, req); > n = scsi_req_enqueue(req->sreq); > > - DPRINTF("VSCSI: Queued command tag 0x%x CMD 0x%x LUN %d ret: %d\n", > - req->qtag, srp->cmd.cdb[0], lun, n); > + DPRINTF("VSCSI: Queued command tag 0x%x CMD 0x%x=%s LUN %d ret: %d\n", > + req->qtag, srp->cmd.cdb[0], scsi_command_name(srp->cmd.cdb[0]), > + lun, n); > > if (n) { > /* Transfer direction must be set before preprocessing the > diff --git a/include/block/scsi.h b/include/block/scsi.h > index 9ab045b..edde960 100644 > --- a/include/block/scsi.h > +++ b/include/block/scsi.h > @@ -143,6 +143,8 @@ > #define READ_CD 0xbe > #define SEND_DVD_STRUCTURE 0xbf > > +const char *scsi_command_name(uint8_t cmd); > + > /* > * SERVICE ACTION IN subcodes > */ > Picked up, thanks. Paolo