1f1020c2cSBharata B Rao /* 2f1020c2cSBharata B Rao * CPU core abstract device 3f1020c2cSBharata B Rao * 4f1020c2cSBharata B Rao * Copyright (C) 2016 Bharata B Rao <bharata@linux.vnet.ibm.com> 5f1020c2cSBharata B Rao * 6f1020c2cSBharata B Rao * This work is licensed under the terms of the GNU GPL, version 2 or later. 7f1020c2cSBharata B Rao * See the COPYING file in the top-level directory. 8f1020c2cSBharata B Rao */ 9f1020c2cSBharata B Rao #ifndef HW_CPU_CORE_H 10f1020c2cSBharata B Rao #define HW_CPU_CORE_H 11f1020c2cSBharata B Rao 12f1020c2cSBharata B Rao #include "qemu/osdep.h" 13f1020c2cSBharata B Rao #include "hw/qdev.h" 14f1020c2cSBharata B Rao 15f1020c2cSBharata B Rao #define TYPE_CPU_CORE "cpu-core" 16f1020c2cSBharata B Rao 17f1020c2cSBharata B Rao #define CPU_CORE(obj) \ 18f1020c2cSBharata B Rao OBJECT_CHECK(CPUCore, (obj), TYPE_CPU_CORE) 19f1020c2cSBharata B Rao 20f1020c2cSBharata B Rao typedef struct CPUCore { 21f1020c2cSBharata B Rao /*< private >*/ 22f1020c2cSBharata B Rao DeviceState parent_obj; 23f1020c2cSBharata B Rao 24f1020c2cSBharata B Rao /*< public >*/ 25f1020c2cSBharata B Rao int core_id; 26f1020c2cSBharata B Rao int nr_threads; 27f1020c2cSBharata B Rao } CPUCore; 28f1020c2cSBharata B Rao 29*27393c33SPeter Krempa /* Note: topology field names need to be kept in sync with 30*27393c33SPeter Krempa * 'CpuInstanceProperties' */ 31*27393c33SPeter Krempa 32f1020c2cSBharata B Rao #define CPU_CORE_PROP_CORE_ID "core-id" 33f1020c2cSBharata B Rao 34f1020c2cSBharata B Rao #endif 35