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 #define SPAPR_CPU_CORE_TYPE_NAME(model) model "-" TYPE_SPAPR_CPU_CORE 25 26 typedef struct sPAPRCPUCore { 27 /*< private >*/ 28 CPUCore parent_obj; 29 30 /*< public >*/ 31 void *threads; 32 int node_id; 33 } sPAPRCPUCore; 34 35 typedef struct sPAPRCPUCoreClass { 36 DeviceClass parent_class; 37 const char *cpu_type; 38 } sPAPRCPUCoreClass; 39 40 const char *spapr_get_cpu_core_type(const char *cpu_type); 41 #endif 42