diff options
| author | HiFiPhile <[email protected]> | 2024-05-08 14:48:47 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-05-08 14:48:47 +0200 |
| commit | d37d25d55778ade10e6183e3436a0b53dca5fe06 (patch) | |
| tree | 31465870a7a0f210af7ece022e8542855a0456a2 /src/class/msc/msc_device.c | |
| parent | c773c612fd4cd3ed9e69875a7553193dc730e363 (diff) | |
| parent | c8805c61f9b0e3c03d8d3592127b1239a45c9880 (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.c | 18 |
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; |
