scsi: Print command name in debug
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 <aik@ozlabs.ru> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
		
							parent
							
								
									2fe5a9f73b
								
							
						
					
					
						commit
						b9e77bc718
					
				| @ -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) | ||||
|  | ||||
| @ -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; | ||||
|     } | ||||
|  | ||||
| @ -799,8 +799,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
 | ||||
|  | ||||
| @ -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 | ||||
|  */ | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Alexey Kardashevskiy
						Alexey Kardashevskiy