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