git: bff8730c24b2 - main - umass: make *_transform() return a bool
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 07 May 2025 21:37:10 UTC
The branch main has been updated by imp:
URL: https://cgit.FreeBSD.org/src/commit/?id=bff8730c24b25af4f1d1dc6fee9240c74f60fab5
commit bff8730c24b25af4f1d1dc6fee9240c74f60fab5
Author: Warner Losh <imp@FreeBSD.org>
AuthorDate: 2025-05-07 16:07:27 +0000
Commit: Warner Losh <imp@FreeBSD.org>
CommitDate: 2025-05-07 21:36:54 +0000
umass: make *_transform() return a bool
These are now boolean, so make them return a boolean.
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D49470
---
sys/dev/usb/storage/umass.c | 63 ++++++++++++++++++++++-----------------------
1 file changed, 31 insertions(+), 32 deletions(-)
diff --git a/sys/dev/usb/storage/umass.c b/sys/dev/usb/storage/umass.c
index 9878635f7e59..f7df9f49257e 100644
--- a/sys/dev/usb/storage/umass.c
+++ b/sys/dev/usb/storage/umass.c
@@ -299,7 +299,7 @@ typedef void (umass_callback_t)(struct umass_softc *sc, union ccb *ccb,
#define STATUS_CMD_FAILED 2 /* transfer was ok, command failed */
#define STATUS_WIRE_FAILED 3 /* couldn't even get command across */
-typedef uint8_t (umass_transform_t)(struct umass_softc *sc, uint8_t *cmd_ptr,
+typedef bool (umass_transform_t)(struct umass_softc *sc, uint8_t *cmd_ptr,
uint8_t cmd_len);
/* Wire and command protocol */
@@ -490,13 +490,12 @@ static void umass_cam_sense_cb(struct umass_softc *, union ccb *, uint32_t,
static void umass_cam_quirk_cb(struct umass_softc *, union ccb *, uint32_t,
uint8_t);
static void umass_cam_illegal_request(union ccb *ccb);
-static uint8_t umass_scsi_transform(struct umass_softc *, uint8_t *, uint8_t);
-static uint8_t umass_rbc_transform(struct umass_softc *, uint8_t *, uint8_t);
-static uint8_t umass_ufi_transform(struct umass_softc *, uint8_t *, uint8_t);
-static uint8_t umass_atapi_transform(struct umass_softc *, uint8_t *,
- uint8_t);
-static uint8_t umass_no_transform(struct umass_softc *, uint8_t *, uint8_t);
-static uint8_t umass_std_transform(struct umass_softc *, union ccb *, uint8_t
+static bool umass_scsi_transform(struct umass_softc *, uint8_t *, uint8_t);
+static bool umass_rbc_transform(struct umass_softc *, uint8_t *, uint8_t);
+static bool umass_ufi_transform(struct umass_softc *, uint8_t *, uint8_t);
+static bool umass_atapi_transform(struct umass_softc *, uint8_t *, uint8_t);
+static bool umass_no_transform(struct umass_softc *, uint8_t *, uint8_t);
+static bool umass_std_transform(struct umass_softc *, union ccb *, uint8_t
*, uint8_t);
#ifdef USB_DEBUG
@@ -2677,7 +2676,7 @@ umass_cam_quirk_cb(struct umass_softc *sc, union ccb *ccb, uint32_t residue,
* SCSI specific functions
*/
-static uint8_t
+static bool
umass_scsi_transform(struct umass_softc *sc, uint8_t *cmd_ptr,
uint8_t cmd_len)
{
@@ -2685,7 +2684,7 @@ umass_scsi_transform(struct umass_softc *sc, uint8_t *cmd_ptr,
(cmd_len > sizeof(sc->sc_transfer.cmd_data))) {
DPRINTF(sc, UDMASS_SCSI, "Invalid command "
"length: %d bytes\n", cmd_len);
- return (0); /* failure */
+ return (false); /* failure */
}
sc->sc_transfer.cmd_len = cmd_len;
@@ -2697,7 +2696,7 @@ umass_scsi_transform(struct umass_softc *sc, uint8_t *cmd_ptr,
memset(sc->sc_transfer.cmd_data, 0, cmd_len);
sc->sc_transfer.cmd_data[0] = START_STOP_UNIT;
sc->sc_transfer.cmd_data[4] = SSS_START;
- return (1);
+ return (true);
}
break;
@@ -2709,23 +2708,23 @@ umass_scsi_transform(struct umass_softc *sc, uint8_t *cmd_ptr,
if (sc->sc_quirks & FORCE_SHORT_INQUIRY) {
memcpy(sc->sc_transfer.cmd_data, cmd_ptr, cmd_len);
sc->sc_transfer.cmd_data[4] = SHORT_INQUIRY_LENGTH;
- return (1);
+ return (true);
}
break;
}
memcpy(sc->sc_transfer.cmd_data, cmd_ptr, cmd_len);
- return (1);
+ return (true);
}
-static uint8_t
+static bool
umass_rbc_transform(struct umass_softc *sc, uint8_t *cmd_ptr, uint8_t cmd_len)
{
if ((cmd_len == 0) ||
(cmd_len > sizeof(sc->sc_transfer.cmd_data))) {
DPRINTF(sc, UDMASS_SCSI, "Invalid command "
"length: %d bytes\n", cmd_len);
- return (0); /* failure */
+ return (false); /* failure */
}
switch (cmd_ptr[0]) {
/* these commands are defined in RBC: */
@@ -2756,17 +2755,17 @@ umass_rbc_transform(struct umass_softc *sc, uint8_t *cmd_ptr, uint8_t cmd_len)
cmd_len = 12;
}
sc->sc_transfer.cmd_len = cmd_len;
- return (1); /* success */
+ return (true); /* success */
/* All other commands are not legal in RBC */
default:
DPRINTF(sc, UDMASS_SCSI, "Unsupported RBC "
"command 0x%02x\n", cmd_ptr[0]);
- return (0); /* failure */
+ return (false); /* failure */
}
}
-static uint8_t
+static bool
umass_ufi_transform(struct umass_softc *sc, uint8_t *cmd_ptr,
uint8_t cmd_len)
{
@@ -2774,7 +2773,7 @@ umass_ufi_transform(struct umass_softc *sc, uint8_t *cmd_ptr,
(cmd_len > sizeof(sc->sc_transfer.cmd_data))) {
DPRINTF(sc, UDMASS_SCSI, "Invalid command "
"length: %d bytes\n", cmd_len);
- return (0); /* failure */
+ return (false); /* failure */
}
/* An UFI command is always 12 bytes in length */
sc->sc_transfer.cmd_len = UFI_COMMAND_LENGTH;
@@ -2829,21 +2828,21 @@ umass_ufi_transform(struct umass_softc *sc, uint8_t *cmd_ptr,
* know what to do.
*/
case SYNCHRONIZE_CACHE:
- return (0);
+ return (false);
default:
DPRINTF(sc, UDMASS_SCSI, "Unsupported UFI "
"command 0x%02x\n", cmd_ptr[0]);
- return (0); /* failure */
+ return (false); /* failure */
}
memcpy(sc->sc_transfer.cmd_data, cmd_ptr, cmd_len);
- return (1); /* success */
+ return (true); /* success */
}
/*
* 8070i (ATAPI) specific functions
*/
-static uint8_t
+static bool
umass_atapi_transform(struct umass_softc *sc, uint8_t *cmd_ptr,
uint8_t cmd_len)
{
@@ -2851,7 +2850,7 @@ umass_atapi_transform(struct umass_softc *sc, uint8_t *cmd_ptr,
(cmd_len > sizeof(sc->sc_transfer.cmd_data))) {
DPRINTF(sc, UDMASS_SCSI, "Invalid command "
"length: %d bytes\n", cmd_len);
- return (0); /* failure */
+ return (false); /* failure */
}
/* An ATAPI command is always 12 bytes in length. */
sc->sc_transfer.cmd_len = ATAPI_COMMAND_LENGTH;
@@ -2874,7 +2873,7 @@ umass_atapi_transform(struct umass_softc *sc, uint8_t *cmd_ptr,
memcpy(sc->sc_transfer.cmd_data, cmd_ptr, cmd_len);
sc->sc_transfer.cmd_data[4] = SHORT_INQUIRY_LENGTH;
- return (1);
+ return (true);
}
break;
@@ -2884,7 +2883,7 @@ umass_atapi_transform(struct umass_softc *sc, uint8_t *cmd_ptr,
"to START_UNIT\n");
sc->sc_transfer.cmd_data[0] = START_STOP_UNIT;
sc->sc_transfer.cmd_data[4] = SSS_START;
- return (1);
+ return (true);
}
break;
@@ -2933,29 +2932,29 @@ umass_atapi_transform(struct umass_softc *sc, uint8_t *cmd_ptr,
}
memcpy(sc->sc_transfer.cmd_data, cmd_ptr, cmd_len);
- return (1); /* success */
+ return (true); /* success */
}
-static uint8_t
+static bool
umass_no_transform(struct umass_softc *sc, uint8_t *cmd,
uint8_t cmdlen)
{
- return (0); /* failure */
+ return (false); /* failure */
}
-static uint8_t
+static bool
umass_std_transform(struct umass_softc *sc, union ccb *ccb,
uint8_t *cmd, uint8_t cmdlen)
{
uint8_t retval;
if (sc->sc_transform(sc, cmd, cmdlen))
- return (1); /* Execute command */
+ return (true); /* Execute command */
xpt_freeze_devq(ccb->ccb_h.path, 1);
ccb->ccb_h.status = CAM_REQ_INVALID | CAM_DEV_QFRZN;
xpt_done(ccb);
- return (0); /* Already failed */
+ return (false); /* Already failed -- don't submit */
}
#ifdef USB_DEBUG