qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 2/5] scsi: update list of commands


From: Kevin Wolf
Subject: Re: [Qemu-devel] [PATCH 2/5] scsi: update list of commands
Date: Fri, 11 Nov 2011 15:08:24 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:7.0) Gecko/20110927 Thunderbird/7.0

Am 10.11.2011 17:01, schrieb Paolo Bonzini:
> Add more commands and their names, and remove SEEK(6) which is obsolete.
> Instead, use SET_POSITION which is still in SSC.

SET CAPACITY you mean?

> 
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
>  hw/scsi-bus.c  |   25 +++++++++++++++++++------
>  hw/scsi-defs.h |   10 +++++++++-
>  hw/scsi-disk.c |    4 +---
>  3 files changed, 29 insertions(+), 10 deletions(-)
> 
> diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c
> index e3d212f..056946d 100644
> --- a/hw/scsi-bus.c
> +++ b/hw/scsi-bus.c
> @@ -694,7 +694,7 @@ static int scsi_req_length(SCSICommand *cmd, SCSIDevice 
> *dev, uint8_t *buf)
>      case TEST_UNIT_READY:
>      case REWIND:
>      case START_STOP:
> -    case SEEK_6:
> +    case SET_CAPACITY:
>      case WRITE_FILEMARKS:
>      case SPACE:
>      case RESERVE:
> @@ -1053,7 +1053,7 @@ static const char *scsi_command_name(uint8_t cmd)
>          [ REASSIGN_BLOCKS          ] = "REASSIGN_BLOCKS",
>          [ READ_6                   ] = "READ_6",
>          [ WRITE_6                  ] = "WRITE_6",
> -        [ SEEK_6                   ] = "SEEK_6",
> +        [ SET_CAPACITY             ] = "SET_CAPACITY",
>          [ READ_REVERSE             ] = "READ_REVERSE",
>          [ WRITE_FILEMARKS          ] = "WRITE_FILEMARKS",
>          [ SPACE                    ] = "SPACE",
> @@ -1081,7 +1081,7 @@ static const char *scsi_command_name(uint8_t cmd)
>          [ SEARCH_EQUAL             ] = "SEARCH_EQUAL",
>          [ SEARCH_LOW               ] = "SEARCH_LOW",
>          [ SET_LIMITS               ] = "SET_LIMITS",
> -        [ PRE_FETCH                ] = "PRE_FETCH",
> +        [ PRE_FETCH                ] = "PRE_FETCH/READ_POSITION",
>          /* READ_POSITION and PRE_FETCH use the same operation code */
>          [ SYNCHRONIZE_CACHE        ] = "SYNCHRONIZE_CACHE",
>          [ LOCK_UNLOCK_CACHE        ] = "LOCK_UNLOCK_CACHE",
> @@ -1118,9 +1118,11 @@ static const char *scsi_command_name(uint8_t cmd)
>          [ WRITE_16                 ] = "WRITE_16",
>          [ WRITE_VERIFY_16          ] = "WRITE_VERIFY_16",
>          [ VERIFY_16                ] = "VERIFY_16",
> -        [ SYNCHRONIZE_CACHE_16     ] = "SYNCHRONIZE_CACHE_16",
> +        [ PRE_FETCH_16             ] = "PRE_FETCH_16",
> +        [ SYNCHRONIZE_CACHE_16     ] = "SPACE_16/SYNCHRONIZE_CACHE_16",
> +        /* SPACE_16 and SYNCHRONIZE_CACHE_16 use the same operation code */
>          [ LOCATE_16                ] = "LOCATE_16",
> -        [ WRITE_SAME_16            ] = "WRITE_SAME_16",
> +        [ WRITE_SAME_16            ] = "ERASE_16/WRITE_SAME_16",
>          /* ERASE_16 and WRITE_SAME_16 use the same operation code */
>          [ SERVICE_ACTION_IN_16     ] = "SERVICE_ACTION_IN_16",
>          [ WRITE_LONG_16            ] = "WRITE_LONG_16",
> @@ -1130,6 +1132,8 @@ static const char *scsi_command_name(uint8_t cmd)
>          [ LOAD_UNLOAD              ] = "LOAD_UNLOAD",
>          [ READ_12                  ] = "READ_12",
>          [ WRITE_12                 ] = "WRITE_12",
> +        [ ERASE_12                 ] = "ERASE_12/GET_PERFORMANCE",
> +        /* ERASE_12 and GET_PERFORMANCE use the same operation code */
>          [ SERVICE_ACTION_IN_12     ] = "SERVICE_ACTION_IN_12",
>          [ WRITE_VERIFY_12          ] = "WRITE_VERIFY_12",
>          [ VERIFY_12                ] = "VERIFY_12",
> @@ -1137,9 +1141,18 @@ static const char *scsi_command_name(uint8_t cmd)
>          [ SEARCH_EQUAL_12          ] = "SEARCH_EQUAL_12",
>          [ SEARCH_LOW_12            ] = "SEARCH_LOW_12",
>          [ READ_ELEMENT_STATUS      ] = "READ_ELEMENT_STATUS",
> -        [ SEND_VOLUME_TAG          ] = "SEND_VOLUME_TAG",
> +        [ SYNCHRONIZE_CACHE_16     ] = "SYNCHRONIZE_CACHE_16/SET_CAPACITY",
> +        /* SYNCHRONIZE_CACHE_16 and SET_CAPACITY use the same operation code 
> */
> +        [ SEND_VOLUME_TAG          ] = "SEND_VOLUME_TAG/SET_STREAMING",
> +        /* SEND_VOLUME_TAG and SET_STREAMING use the same operation code */
>          [ READ_DEFECT_DATA_12      ] = "READ_DEFECT_DATA_12",
>          [ SET_CD_SPEED             ] = "SET_CD_SPEED",
> +        [ SET_READ_AHEAD           ] = "SET_READ_AHEAD",
> +        [ SEND_CUE_SHEET           ] = "SEND_CUE_SHEET",
> +        [ SEND_DVD_STRUCTURE       ] = "SEND_DVD_STRUCTURE",
> +        [ READ_DVD_STRUCTURE       ] = "READ_DVD_STRUCTURE",
> +        [ MECHANISM_STATUS         ] = "MECHANISM_STATUS",
> +        [ READ_CD                  ] = "READ_CD",
>      };
>  
>      if (cmd >= ARRAY_SIZE(names) || names[cmd] == NULL)
> diff --git a/hw/scsi-defs.h b/hw/scsi-defs.h
> index 916b888..aa7a1ab 100644
> --- a/hw/scsi-defs.h
> +++ b/hw/scsi-defs.h
> @@ -32,7 +32,7 @@
>  #define REASSIGN_BLOCKS       0x07
>  #define READ_6                0x08
>  #define WRITE_6               0x0a
> -#define SEEK_6                0x0b
> +#define SET_CAPACITY          0x0b
>  #define READ_REVERSE          0x0f
>  #define WRITE_FILEMARKS       0x10
>  #define SPACE                 0x11
> @@ -81,6 +81,7 @@
>  #define GET_EVENT_STATUS_NOTIFICATION 0x4a
>  #define LOG_SELECT            0x4c
>  #define LOG_SENSE             0x4d
> +#define RESERVE_TRACK         0x53
>  #define MODE_SELECT_10        0x55
>  #define RESERVE_10            0x56
>  #define RELEASE_10            0x57
> @@ -89,6 +90,7 @@
>  #define PERSISTENT_RESERVE_OUT 0x5f
>  #define VARLENGTH_CDB         0x7f
>  #define WRITE_FILEMARKS_16    0x80
> +#define ALLOW_OVERWRITE       0x82
>  #define EXTENDED_COPY         0x83
>  #define ATA_PASSTHROUGH       0x85
>  #define ACCESS_CONTROL_IN     0x86
> @@ -98,6 +100,8 @@
>  #define WRITE_16              0x8a
>  #define WRITE_VERIFY_16       0x8e
>  #define VERIFY_16             0x8f
> +#define PRE_FETCH_16          0x90
> +#define SPACE_16              0x91
>  #define SYNCHRONIZE_CACHE_16  0x91
>  #define LOCATE_16             0x92
>  #define WRITE_SAME_16         0x93
> @@ -110,12 +114,15 @@
>  #define MAINTENANCE_OUT       0xa4
>  #define MOVE_MEDIUM           0xa5
>  #define LOAD_UNLOAD           0xa6
> +#define SET_READ_AHEAD        0xa7
>  #define READ_12               0xa8
>  #define WRITE_12              0xaa
>  #define SERVICE_ACTION_IN_12  0xab
> +#define ERASE_12              0xac
>  #define READ_DVD_STRUCTURE    0xad
>  #define WRITE_VERIFY_12       0xae
>  #define VERIFY_12             0xaf
> +#define SEND_CUE_SHEET        0x5d

Please keep the list sorted, this should go between MODE_SENSE_10 and
PERSISTENT_RESERVE_IN.

Kevin



reply via email to

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