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