block: Add blk_dev_has_tray()
Pull out the check whether a block device has a tray from blk_dev_is_tray_open() into its own function so both attributes (whether there is a tray vs. whether that tray is open) can be queried independently. Cc: qemu-stable <qemu-stable@nongnu.org> Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Alberto Garcia <berto@igalia.com> Message-id: 1454096953-31773-2-git-send-email-mreitz@redhat.com
This commit is contained in:
parent
d2ea854c38
commit
8f3a73bc57
|
@ -458,6 +458,14 @@ bool blk_dev_has_removable_media(BlockBackend *blk)
|
||||||
return !blk->dev || (blk->dev_ops && blk->dev_ops->change_media_cb);
|
return !blk->dev || (blk->dev_ops && blk->dev_ops->change_media_cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Does @blk's attached device model have a tray?
|
||||||
|
*/
|
||||||
|
bool blk_dev_has_tray(BlockBackend *blk)
|
||||||
|
{
|
||||||
|
return blk->dev_ops && blk->dev_ops->is_tray_open;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Notify @blk's attached device model of a media eject request.
|
* Notify @blk's attached device model of a media eject request.
|
||||||
* If @force is true, the medium is about to be yanked out forcefully.
|
* If @force is true, the medium is about to be yanked out forcefully.
|
||||||
|
@ -474,7 +482,7 @@ void blk_dev_eject_request(BlockBackend *blk, bool force)
|
||||||
*/
|
*/
|
||||||
bool blk_dev_is_tray_open(BlockBackend *blk)
|
bool blk_dev_is_tray_open(BlockBackend *blk)
|
||||||
{
|
{
|
||||||
if (blk->dev_ops && blk->dev_ops->is_tray_open) {
|
if (blk_dev_has_tray(blk)) {
|
||||||
return blk->dev_ops->is_tray_open(blk->dev_opaque);
|
return blk->dev_ops->is_tray_open(blk->dev_opaque);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -695,6 +695,7 @@ void blk_set_bs(BlockBackend *blk, BlockDriverState *bs);
|
||||||
|
|
||||||
void blk_dev_change_media_cb(BlockBackend *blk, bool load);
|
void blk_dev_change_media_cb(BlockBackend *blk, bool load);
|
||||||
bool blk_dev_has_removable_media(BlockBackend *blk);
|
bool blk_dev_has_removable_media(BlockBackend *blk);
|
||||||
|
bool blk_dev_has_tray(BlockBackend *blk);
|
||||||
void blk_dev_eject_request(BlockBackend *blk, bool force);
|
void blk_dev_eject_request(BlockBackend *blk, bool force);
|
||||||
bool blk_dev_is_tray_open(BlockBackend *blk);
|
bool blk_dev_is_tray_open(BlockBackend *blk);
|
||||||
bool blk_dev_is_medium_locked(BlockBackend *blk);
|
bool blk_dev_is_medium_locked(BlockBackend *blk);
|
||||||
|
|
Loading…
Reference in New Issue