1 /* 2 * sPAPR CPU core device. 3 * 4 * Copyright (C) 2016 Bharata B Rao <bharata@linux.vnet.ibm.com> 5 * 6 * This work is licensed under the terms of the GNU GPL, version 2 or later. 7 * See the COPYING file in the top-level directory. 8 */ 9 #ifndef HW_SPAPR_CPU_CORE_H 10 #define HW_SPAPR_CPU_CORE_H 11 12 #include "hw/qdev.h" 13 #include "hw/cpu/core.h" 14 #include "target/ppc/cpu-qom.h" 15 16 #define TYPE_SPAPR_CPU_CORE "spapr-cpu-core" 17 #define SPAPR_CPU_CORE(obj) \ 18 OBJECT_CHECK(sPAPRCPUCore, (obj), TYPE_SPAPR_CPU_CORE) 19 #define SPAPR_CPU_CORE_CLASS(klass) \ 20 OBJECT_CLASS_CHECK(sPAPRCPUCoreClass, (klass), TYPE_SPAPR_CPU_CORE) 21 #define SPAPR_CPU_CORE_GET_CLASS(obj) \ 22 OBJECT_GET_CLASS(sPAPRCPUCoreClass, (obj), TYPE_SPAPR_CPU_CORE) 23 24 typedef struct sPAPRCPUCore { 25 /*< private >*/ 26 CPUCore parent_obj; 27 28 /*< public >*/ 29 void *threads; 30 } sPAPRCPUCore; 31 32 typedef struct sPAPRCPUCoreClass { 33 DeviceClass parent_class; 34 ObjectClass *cpu_class; 35 } sPAPRCPUCoreClass; 36 37 void spapr_core_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev, 38 Error **errp); 39 char *spapr_get_cpu_core_type(const char *model); 40 void spapr_core_plug(HotplugHandler *hotplug_dev, DeviceState *dev, 41 Error **errp); 42 void spapr_core_unplug(HotplugHandler *hotplug_dev, DeviceState *dev, 43 Error **errp); 44 void spapr_cpu_core_class_init(ObjectClass *oc, void *data); 45 #endif 46