added WIN_IDLEIMMEDIATE and WIN_DIAGNOSE commands
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 2 Dec 2004 20:20:21 +0000 (20:20 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Thu, 2 Dec 2004 20:20:21 +0000 (20:20 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1161 c046a42c-6fe2-441c-8c8c-71466251a162

hw/ide.c

index db7d737..3997a06 100644 (file)
--- a/hw/ide.c
+++ b/hw/ide.c
@@ -1570,6 +1570,7 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val)
             }
             break;
        case WIN_STANDBYNOW1:
+        case WIN_IDLEIMMEDIATE:
            s->status = READY_STAT;
             ide_set_irq(s);
             break;
@@ -1584,6 +1585,11 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val)
             }
             ide_set_irq(s);
             break;
+        case WIN_DIAGNOSE:
+            ide_set_signature(s);
+            s->status = 0x00; /* NOTE: READY is _not_ set */
+            s->error = 0x01;
+            break;
         case WIN_SRST:
             if (!s->is_cdrom)
                 goto abort_cmd;