diff options
author | Heinz Graalfs <graalfs@linux.vnet.ibm.com> | 2013-09-04 12:55:45 +0200 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2013-09-20 13:55:29 +0200 |
commit | 3af6de321f39eda37d60a26559c63029c0d5b4c9 (patch) | |
tree | 76b150e0d6246c4dca2e8154a893ca55a7b86ccc /hw/s390x | |
parent | 7e36b7a3561d685b8fb071b25ab887e890973a4d (diff) | |
download | qemu-3af6de321f39eda37d60a26559c63029c0d5b4c9.zip qemu-3af6de321f39eda37d60a26559c63029c0d5b4c9.tar.gz qemu-3af6de321f39eda37d60a26559c63029c0d5b4c9.tar.bz2 |
s390/sclp: add reset() functions
Add reset() functions for event-facility, sclpconsole, and sclpquiesce.
The reset() functions perform variable initialization
at IPL and e.g. when monitor system_reset is called.
Signed-off-by: Heinz Graalfs <graalfs@linux.vnet.ibm.com>
Reviewed-by: Thomas Huth <thuth@linux.vnet.ibm.com>
Reviewed-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'hw/s390x')
-rw-r--r-- | hw/s390x/event-facility.c | 9 | ||||
-rw-r--r-- | hw/s390x/sclpquiesce.c | 8 |
2 files changed, 17 insertions, 0 deletions
diff --git a/hw/s390x/event-facility.c b/hw/s390x/event-facility.c index a3aceef..d45968f 100644 --- a/hw/s390x/event-facility.c +++ b/hw/s390x/event-facility.c @@ -338,10 +338,19 @@ static int init_event_facility(S390SCLPDevice *sdev) return 0; } +static void reset_event_facility(DeviceState *dev) +{ + S390SCLPDevice *sdev = SCLP_S390_DEVICE(dev); + + sdev->ef->receive_mask = 0; +} + static void init_event_facility_class(ObjectClass *klass, void *data) { + DeviceClass *dc = DEVICE_CLASS(klass); S390SCLPDeviceClass *k = SCLP_S390_DEVICE_CLASS(klass); + dc->reset = reset_event_facility; k->init = init_event_facility; } diff --git a/hw/s390x/sclpquiesce.c b/hw/s390x/sclpquiesce.c index d335251..73a18ea 100644 --- a/hw/s390x/sclpquiesce.c +++ b/hw/s390x/sclpquiesce.c @@ -105,11 +105,19 @@ static int quiesce_init(SCLPEvent *event) return 0; } +static void quiesce_reset(DeviceState *dev) +{ + SCLPEvent *event = SCLP_EVENT(dev); + + event->event_pending = false; +} + static void quiesce_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); SCLPEventClass *k = SCLP_EVENT_CLASS(klass); + dc->reset = quiesce_reset; dc->vmsd = &vmstate_sclpquiesce; k->init = quiesce_init; |