summaryrefslogtreecommitdiff
path: root/src/class/msc/msc_device.c
diff options
context:
space:
mode:
authorHiFiPhile <[email protected]>2024-05-08 14:48:47 +0200
committerGitHub <[email protected]>2024-05-08 14:48:47 +0200
commitd37d25d55778ade10e6183e3436a0b53dca5fe06 (patch)
tree31465870a7a0f210af7ece022e8542855a0456a2 /src/class/msc/msc_device.c
parentc773c612fd4cd3ed9e69875a7553193dc730e363 (diff)
parentc8805c61f9b0e3c03d8d3592127b1239a45c9880 (diff)
Merge pull request #2532 from acscd/master
Added support for SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL
Diffstat (limited to 'src/class/msc/msc_device.c')
-rw-r--r--src/class/msc/msc_device.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/class/msc/msc_device.c b/src/class/msc/msc_device.c
index 588fcaaca..447560b4d 100644
--- a/src/class/msc/msc_device.c
+++ b/src/class/msc/msc_device.c
@@ -689,6 +689,24 @@ static int32_t proc_builtin_scsi(uint8_t lun, uint8_t const scsi_cmd[16], uint8_
}
break;
+ case SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL:
+ resplen = 0;
+
+ if (tud_msc_prevent_allow_medium_removal_cb)
+ {
+ scsi_prevent_allow_medium_removal_t const * prevent_allow = (scsi_prevent_allow_medium_removal_t const *) scsi_cmd;
+ if ( !tud_msc_prevent_allow_medium_removal_cb(lun, prevent_allow->prohibit_removal, prevent_allow->control) )
+ {
+ // Failed status response
+ resplen = - 1;
+
+ // set default sense if not set by callback
+ if ( p_msc->sense_key == 0 ) set_sense_medium_not_present(lun);
+ }
+ }
+ break;
+
+
case SCSI_CMD_READ_CAPACITY_10:
{
uint32_t block_count;