[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2] include/public: add command result definitions to vscsiif.h
> On 23 Mar 2022, at 11:10, Luca Fancellu <Luca.Fancellu@xxxxxxx> wrote: > > > >> On 23 Mar 2022, at 08:58, Juergen Gross <jgross@xxxxxxxx> wrote: >> >> The result field of struct vscsiif_response is lacking a detailed >> definition. Today the Linux kernel internal scsi definitions are being >> used, which is not a sane interface for a PV device driver. >> >> Add macros to change that by using today's values in the XEN namespace. >> >> Signed-off-by: Juergen Gross <jgross@xxxxxxxx> >> --- >> V2: >> - put macro parameters in parentheses (Jan Beulich) >> - correct XEN_VSCSIIF_RSLT_HOST() (Jan Beulich) >> - more verbose result defines (Jan Beulich) >> - add reset result defines (Jan Beulich) >> --- >> xen/include/public/io/vscsiif.h | 51 +++++++++++++++++++++++++++++++++ >> 1 file changed, 51 insertions(+) >> >> diff --git a/xen/include/public/io/vscsiif.h >> b/xen/include/public/io/vscsiif.h >> index c9ceb1884d..8553b17cc6 100644 >> --- a/xen/include/public/io/vscsiif.h >> +++ b/xen/include/public/io/vscsiif.h >> @@ -315,6 +315,57 @@ struct vscsiif_response { >> }; >> typedef struct vscsiif_response vscsiif_response_t; >> >> +/* SCSI I/O status from vscsiif_response->rslt */ >> +#define XEN_VSCSIIF_RSLT_STATUS(x) ((x) & 0x00ff) Sorry Juergen, A thing came to me after sending my first message, is XEN_VSCSIIF_RSLT_STATUS meant to be used to compare the result with XEN_VSCSIIF_RSLT_RESET_SUCCESS or XEN_VSCSIIF_RSLT_RESET_FAILED? Because I think the mask should be 0xFFFF instead of 0xFF since we have the bit 13 set Cheers, Luca >> + >> +/* Host I/O status from vscsiif_response->rslt */ >> +#define XEN_VSCSIIF_RSLT_HOST(x) (((x) & 0x00ff0000) >> 16) >> +#define XEN_VSCSIIF_RSLT_HOST_OK 0 >> +/* Couldn't connect before timeout */ >> +#define XEN_VSCSIIF_RSLT_HOST_NO_CONNECT 1 >> +/* Bus busy through timeout */ >> +#define XEN_VSCSIIF_RSLT_HOST_BUS_BUSY 2 >> +/* Timed out for other reason */ >> +#define XEN_VSCSIIF_RSLT_HOST_TIME_OUT 3 >> +/* Bad target */ >> +#define XEN_VSCSIIF_RSLT_HOST_BAD_TARGET 4 >> +/* Abort for some other reason */ >> +#define XEN_VSCSIIF_RSLT_HOST_ABORT 5 >> +/* Parity error */ >> +#define XEN_VSCSIIF_RSLT_HOST_PARITY 6 >> +/* Internal error */ >> +#define XEN_VSCSIIF_RSLT_HOST_ERROR 7 >> +/* Reset by somebody */ >> +#define XEN_VSCSIIF_RSLT_HOST_RESET 8 >> +/* Unexpected interrupt */ >> +#define XEN_VSCSIIF_RSLT_HOST_BAD_INTR 9 >> +/* Force command past mid-layer */ >> +#define XEN_VSCSIIF_RSLT_HOST_PASSTHROUGH 10 >> +/* Retry requested */ >> +#define XEN_VSCSIIF_RSLT_HOST_SOFT_ERROR 11 >> +/* Hidden retry requested */ >> +#define XEN_VSCSIIF_RSLT_HOST_IMM_RETRY 12 >> +/* Requeue command requested */ >> +#define XEN_VSCSIIF_RSLT_HOST_REQUEUE 13 >> +/* Transport error disrupted I/O */ >> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_DISRUPTED 14 >> +/* Transport class fastfailed */ >> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_FAILFAST 15 >> +/* Permanent target failure */ >> +#define XEN_VSCSIIF_RSLT_HOST_TARGET_FAILURE 16 >> +/* Permanent nexus failure on path */ >> +#define XEN_VSCSIIF_RSLT_HOST_NEXUS_FAILURE 17 >> +/* Space allocation on device failed */ >> +#define XEN_VSCSIIF_RSLT_HOST_ALLOC_FAILURE 18 >> +/* Medium error */ >> +#define XEN_VSCSIIF_RSLT_HOST_MEDIUM_ERROR 19 >> +/* Transport marginal errors */ >> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_MARGINAL 20 > > Hi Juergen, > > Would it makes sense to define the values in hex like in > include/scsi/scsi_status.h > so that they are more easy to compare? > > However this looks good to me, > > Reviewed-by: Luca Fancellu <luca.fancellu@xxxxxxx> > > >> + >> +/* Result values of reset operations */ >> +#define XEN_VSCSIIF_RSLT_RESET_SUCCESS 0x2002 >> +#define XEN_VSCSIIF_RSLT_RESET_FAILED 0x2003 >> + >> DEFINE_RING_TYPES(vscsiif, struct vscsiif_request, struct vscsiif_response); >> >> >> -- >> 2.34.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |