mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-26 13:00:28 +00:00
scsi-disk: support toggling the write cache
Finally, this uses the "plumbing" in the previous patch to add support for toggling the WCE bit of the caching mode page. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
380feaffb0
commit
96c91bbf60
@ -1050,10 +1050,8 @@ static int mode_sense_page(SCSIDiskState *s, int page, uint8_t **p_outbuf,
|
||||
|
||||
case MODE_PAGE_CACHING:
|
||||
length = 0x12;
|
||||
if (page_control == 1) { /* Changeable Values */
|
||||
break;
|
||||
}
|
||||
if (bdrv_enable_write_cache(s->qdev.conf.bs)) {
|
||||
if (page_control == 1 || /* Changeable Values */
|
||||
bdrv_enable_write_cache(s->qdev.conf.bs)) {
|
||||
p[0] = 4; /* WCE */
|
||||
}
|
||||
break;
|
||||
@ -1325,6 +1323,14 @@ static int scsi_disk_check_mode_select(SCSIDiskState *s, int page,
|
||||
|
||||
static void scsi_disk_apply_mode_select(SCSIDiskState *s, int page, uint8_t *p)
|
||||
{
|
||||
switch (page) {
|
||||
case MODE_PAGE_CACHING:
|
||||
bdrv_set_enable_write_cache(s->qdev.conf.bs, (p[0] & 4) != 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static int mode_select_pages(SCSIDiskReq *r, uint8_t *p, int len, bool change)
|
||||
|
Loading…
Reference in New Issue
Block a user