summaryrefslogtreecommitdiffstats
path: root/qemu/hw/s390x/sclpcpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/hw/s390x/sclpcpu.c')
-rw-r--r--qemu/hw/s390x/sclpcpu.c101
1 files changed, 0 insertions, 101 deletions
diff --git a/qemu/hw/s390x/sclpcpu.c b/qemu/hw/s390x/sclpcpu.c
deleted file mode 100644
index b1f3ef8c7..000000000
--- a/qemu/hw/s390x/sclpcpu.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * SCLP event type
- * Signal CPU - Trigger SCLP interrupt for system CPU configure or
- * de-configure
- *
- * Copyright IBM, Corp. 2013
- *
- * Authors:
- * Thang Pham <thang.pham@us.ibm.com>
- *
- * This work is licensed under the terms of the GNU GPL, version 2 or (at your
- * option) any later version. See the COPYING file in the top-level directory.
- *
- */
-#include "qemu/osdep.h"
-#include "sysemu/sysemu.h"
-#include "hw/s390x/sclp.h"
-#include "hw/s390x/event-facility.h"
-#include "cpu.h"
-#include "sysemu/cpus.h"
-#include "sysemu/kvm.h"
-
-typedef struct ConfigMgtData {
- EventBufferHeader ebh;
- uint8_t reserved;
- uint8_t event_qualifier;
-} QEMU_PACKED ConfigMgtData;
-
-#define EVENT_QUAL_CPU_CHANGE 1
-
-void raise_irq_cpu_hotplug(void)
-{
- Object *obj = object_resolve_path_type("", TYPE_SCLP_CPU_HOTPLUG, NULL);
-
- SCLP_EVENT(obj)->event_pending = true;
-
- /* Trigger SCLP read operation */
- sclp_service_interrupt(0);
-}
-
-static unsigned int send_mask(void)
-{
- return SCLP_EVENT_MASK_CONFIG_MGT_DATA;
-}
-
-static unsigned int receive_mask(void)
-{
- return 0;
-}
-
-static int read_event_data(SCLPEvent *event, EventBufferHeader *evt_buf_hdr,
- int *slen)
-{
- ConfigMgtData *cdata = (ConfigMgtData *) evt_buf_hdr;
- if (*slen < sizeof(ConfigMgtData)) {
- return 0;
- }
-
- /* Event is no longer pending */
- if (!event->event_pending) {
- return 0;
- }
- event->event_pending = false;
-
- /* Event header data */
- cdata->ebh.length = cpu_to_be16(sizeof(ConfigMgtData));
- cdata->ebh.type = SCLP_EVENT_CONFIG_MGT_DATA;
- cdata->ebh.flags |= SCLP_EVENT_BUFFER_ACCEPTED;
-
- /* Trigger a rescan of CPUs by setting event qualifier */
- cdata->event_qualifier = EVENT_QUAL_CPU_CHANGE;
- *slen -= sizeof(ConfigMgtData);
-
- return 1;
-}
-
-static void cpu_class_init(ObjectClass *oc, void *data)
-{
- SCLPEventClass *k = SCLP_EVENT_CLASS(oc);
- DeviceClass *dc = DEVICE_CLASS(oc);
-
- k->get_send_mask = send_mask;
- k->get_receive_mask = receive_mask;
- k->read_event_data = read_event_data;
- set_bit(DEVICE_CATEGORY_MISC, dc->categories);
-}
-
-static const TypeInfo sclp_cpu_info = {
- .name = TYPE_SCLP_CPU_HOTPLUG,
- .parent = TYPE_SCLP_EVENT,
- .instance_size = sizeof(SCLPEvent),
- .class_init = cpu_class_init,
- .class_size = sizeof(SCLPEventClass),
-};
-
-static void sclp_cpu_register_types(void)
-{
- type_register_static(&sclp_cpu_info);
-}
-
-type_init(sclp_cpu_register_types)