Quiet some clang warnings when compiling CTL.
ctl_error.c, ctl_error.h: Take out the ctl_sense_format enumeration, and use scsi_sense_data_type instead. Remove ctl_get_sense_format() and switch ctl_build_ua() over to using scsi_sense_data_type. ctl_backend_ramdisk.c, ctl_backend_block.c: Use C99 structure initializers instead of GNU initializers. ctl.c: Switch over to using the SCSI sense format enumeration instead of the CTL-specific enumeration. Submitted by: dim (partially) MFC after: 1 month
This commit is contained in:
parent
6625fd27ac
commit
3419e86d22
@ -8736,7 +8736,7 @@ ctl_request_sense(struct ctl_scsiio *ctsio)
|
||||
struct ctl_lun *lun;
|
||||
uint32_t initidx;
|
||||
int have_error;
|
||||
ctl_sense_format sense_format;
|
||||
scsi_sense_data_type sense_format;
|
||||
|
||||
cdb = (struct scsi_request_sense *)ctsio->cdb;
|
||||
|
||||
@ -8748,9 +8748,9 @@ ctl_request_sense(struct ctl_scsiio *ctsio)
|
||||
* Determine which sense format the user wants.
|
||||
*/
|
||||
if (cdb->byte2 & SRS_DESC)
|
||||
sense_format = CTL_SENSE_DESCRIPTOR;
|
||||
sense_format = SSD_TYPE_DESC;
|
||||
else
|
||||
sense_format = CTL_SENSE_FIXED;
|
||||
sense_format = SSD_TYPE_FIXED;
|
||||
|
||||
ctsio->kern_data_ptr = malloc(sizeof(*sense_ptr), M_CTL, M_WAITOK);
|
||||
if (ctsio->kern_data_ptr == NULL) {
|
||||
@ -8789,13 +8789,13 @@ ctl_request_sense(struct ctl_scsiio *ctsio)
|
||||
*/
|
||||
mtx_lock(&lun->ctl_softc->ctl_lock);
|
||||
if (ctl_is_set(lun->have_ca, initidx)) {
|
||||
ctl_sense_format stored_format;
|
||||
scsi_sense_data_type stored_format;
|
||||
|
||||
/*
|
||||
* Check to see which sense format was used for the stored
|
||||
* sense data.
|
||||
*/
|
||||
stored_format = ctl_get_sense_format(
|
||||
stored_format = scsi_sense_type(
|
||||
&lun->pending_sense[initidx].sense);
|
||||
|
||||
/*
|
||||
@ -8804,14 +8804,17 @@ ctl_request_sense(struct ctl_scsiio *ctsio)
|
||||
* format. If we're going from descriptor to fixed format
|
||||
* sense data, we may lose things in translation, depending
|
||||
* on what options were used.
|
||||
*
|
||||
* If the stored format is SSD_TYPE_NONE (i.e. invalid),
|
||||
* for some reason we'll just copy it out as-is.
|
||||
*/
|
||||
if ((stored_format == CTL_SENSE_FIXED)
|
||||
&& (sense_format == CTL_SENSE_DESCRIPTOR))
|
||||
if ((stored_format == SSD_TYPE_FIXED)
|
||||
&& (sense_format == SSD_TYPE_DESC))
|
||||
ctl_sense_to_desc((struct scsi_sense_data_fixed *)
|
||||
&lun->pending_sense[initidx].sense,
|
||||
(struct scsi_sense_data_desc *)sense_ptr);
|
||||
else if ((stored_format == CTL_SENSE_DESCRIPTOR)
|
||||
&& (sense_format == CTL_SENSE_FIXED))
|
||||
else if ((stored_format == SSD_TYPE_DESC)
|
||||
&& (sense_format == SSD_TYPE_FIXED))
|
||||
ctl_sense_to_fixed((struct scsi_sense_data_desc *)
|
||||
&lun->pending_sense[initidx].sense,
|
||||
(struct scsi_sense_data_fixed *)sense_ptr);
|
||||
@ -10459,14 +10462,14 @@ ctl_scsiio_precheck(struct ctl_softc *ctl_softc, struct ctl_scsiio *ctsio)
|
||||
|
||||
ua_type = lun->pending_sense[initidx].ua_pending;
|
||||
if (ua_type != CTL_UA_NONE) {
|
||||
ctl_sense_format sense_format;
|
||||
scsi_sense_data_type sense_format;
|
||||
|
||||
if (lun != NULL)
|
||||
sense_format = (lun->flags &
|
||||
CTL_LUN_SENSE_DESC) ? CTL_SENSE_DESCRIPTOR :
|
||||
CTL_SENSE_FIXED;
|
||||
CTL_LUN_SENSE_DESC) ? SSD_TYPE_DESC :
|
||||
SSD_TYPE_FIXED;
|
||||
else
|
||||
sense_format = CTL_SENSE_FIXED;
|
||||
sense_format = SSD_TYPE_FIXED;
|
||||
|
||||
ua_type = ctl_build_ua(ua_type, &ctsio->sense_data,
|
||||
sense_format);
|
||||
|
@ -260,15 +260,15 @@ int ctl_be_block_init(void);
|
||||
|
||||
static struct ctl_backend_driver ctl_be_block_driver =
|
||||
{
|
||||
name: "block",
|
||||
flags: CTL_BE_FLAG_HAS_CONFIG,
|
||||
init: ctl_be_block_init,
|
||||
data_submit: ctl_be_block_submit,
|
||||
data_move_done: ctl_be_block_move_done,
|
||||
config_read: ctl_be_block_config_read,
|
||||
config_write: ctl_be_block_config_write,
|
||||
ioctl: ctl_be_block_ioctl,
|
||||
lun_info: ctl_be_block_lun_info
|
||||
.name = "block",
|
||||
.flags = CTL_BE_FLAG_HAS_CONFIG,
|
||||
.init = ctl_be_block_init,
|
||||
.data_submit = ctl_be_block_submit,
|
||||
.data_move_done = ctl_be_block_move_done,
|
||||
.config_read = ctl_be_block_config_read,
|
||||
.config_write = ctl_be_block_config_write,
|
||||
.ioctl = ctl_be_block_ioctl,
|
||||
.lun_info = ctl_be_block_lun_info
|
||||
};
|
||||
|
||||
MALLOC_DEFINE(M_CTLBLK, "ctlblk", "Memory used for CTL block backend");
|
||||
|
@ -110,14 +110,14 @@ static int ctl_backend_ramdisk_config_read(union ctl_io *io);
|
||||
|
||||
static struct ctl_backend_driver ctl_be_ramdisk_driver =
|
||||
{
|
||||
name: "ramdisk",
|
||||
flags: CTL_BE_FLAG_HAS_CONFIG,
|
||||
init: ctl_backend_ramdisk_init,
|
||||
data_submit: ctl_backend_ramdisk_submit,
|
||||
data_move_done: ctl_backend_ramdisk_move_done,
|
||||
config_read: ctl_backend_ramdisk_config_read,
|
||||
config_write: ctl_backend_ramdisk_config_write,
|
||||
ioctl: ctl_backend_ramdisk_ioctl
|
||||
.name = "ramdisk",
|
||||
.flags = CTL_BE_FLAG_HAS_CONFIG,
|
||||
.init = ctl_backend_ramdisk_init,
|
||||
.data_submit = ctl_backend_ramdisk_submit,
|
||||
.data_move_done = ctl_backend_ramdisk_move_done,
|
||||
.config_read = ctl_backend_ramdisk_config_read,
|
||||
.config_write = ctl_backend_ramdisk_config_write,
|
||||
.ioctl = ctl_backend_ramdisk_ioctl
|
||||
};
|
||||
|
||||
MALLOC_DEFINE(M_RAMDISK, "ramdisk", "Memory used for CTL RAMdisk");
|
||||
|
@ -354,21 +354,6 @@ ctl_sense_to_fixed(struct scsi_sense_data_desc *sense_src,
|
||||
SSD_ELEM_NONE);
|
||||
}
|
||||
|
||||
ctl_sense_format
|
||||
ctl_get_sense_format(struct scsi_sense_data *sense_data)
|
||||
{
|
||||
switch (sense_data->error_code & SSD_ERRCODE) {
|
||||
case SSD_DESC_CURRENT_ERROR:
|
||||
case SSD_DESC_DEFERRED_ERROR:
|
||||
return (SSD_TYPE_DESC);
|
||||
case SSD_CURRENT_ERROR:
|
||||
case SSD_DEFERRED_ERROR:
|
||||
default:
|
||||
return (SSD_TYPE_FIXED);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ctl_set_ua(struct ctl_scsiio *ctsio, int asc, int ascq)
|
||||
{
|
||||
@ -382,7 +367,7 @@ ctl_set_ua(struct ctl_scsiio *ctsio, int asc, int ascq)
|
||||
|
||||
ctl_ua_type
|
||||
ctl_build_ua(ctl_ua_type ua_type, struct scsi_sense_data *sense,
|
||||
ctl_sense_format sense_format)
|
||||
scsi_sense_data_type sense_format)
|
||||
{
|
||||
ctl_ua_type ua_to_build;
|
||||
int i, asc, ascq;
|
||||
|
@ -42,12 +42,6 @@
|
||||
#ifndef _CTL_ERROR_H_
|
||||
#define _CTL_ERROR_H_
|
||||
|
||||
typedef enum {
|
||||
CTL_SENSE_NOT_SPECIFIED,
|
||||
CTL_SENSE_FIXED,
|
||||
CTL_SENSE_DESCRIPTOR
|
||||
} ctl_sense_format;
|
||||
|
||||
void ctl_set_sense_data_va(struct scsi_sense_data *sense_data, void *lun,
|
||||
scsi_sense_data_type sense_format, int current_error,
|
||||
int sense_key, int asc, int ascq, va_list ap);
|
||||
@ -60,10 +54,9 @@ void ctl_sense_to_desc(struct scsi_sense_data_fixed *sense_src,
|
||||
struct scsi_sense_data_desc *sense_dest);
|
||||
void ctl_sense_to_fixed(struct scsi_sense_data_desc *sense_src,
|
||||
struct scsi_sense_data_fixed *sense_dest);
|
||||
ctl_sense_format ctl_get_sense_format(struct scsi_sense_data *sense_data);
|
||||
void ctl_set_ua(struct ctl_scsiio *ctsio, int asc, int ascq);
|
||||
ctl_ua_type ctl_build_ua(ctl_ua_type ua_type, struct scsi_sense_data *sense,
|
||||
ctl_sense_format sense_format);
|
||||
scsi_sense_data_type sense_format);
|
||||
void ctl_set_overlapped_cmd(struct ctl_scsiio *ctsio);
|
||||
void ctl_set_overlapped_tag(struct ctl_scsiio *ctsio, uint8_t tag);
|
||||
void ctl_set_invalid_field(struct ctl_scsiio *ctsio, int sks_valid, int command,
|
||||
|
Loading…
x
Reference in New Issue
Block a user