|
|
1.1 ! root 1: /* ! 2: * QEMU S/390 CPU ! 3: * ! 4: * Copyright (c) 2012 SUSE LINUX Products GmbH ! 5: * ! 6: * This library is free software; you can redistribute it and/or ! 7: * modify it under the terms of the GNU Lesser General Public ! 8: * License as published by the Free Software Foundation; either ! 9: * version 2.1 of the License, or (at your option) any later version. ! 10: * ! 11: * This library is distributed in the hope that it will be useful, ! 12: * but WITHOUT ANY WARRANTY; without even the implied warranty of ! 13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ! 14: * Lesser General Public License for more details. ! 15: * ! 16: * You should have received a copy of the GNU Lesser General Public ! 17: * License along with this library; if not, see ! 18: * <http://www.gnu.org/licenses/lgpl-2.1.html> ! 19: */ ! 20: #ifndef QEMU_S390_CPU_QOM_H ! 21: #define QEMU_S390_CPU_QOM_H ! 22: ! 23: #include "qemu/cpu.h" ! 24: #include "cpu.h" ! 25: ! 26: #define TYPE_S390_CPU "s390-cpu" ! 27: ! 28: #define S390_CPU_CLASS(klass) \ ! 29: OBJECT_CLASS_CHECK(S390CPUClass, (klass), TYPE_S390_CPU) ! 30: #define S390_CPU(obj) \ ! 31: OBJECT_CHECK(S390CPU, (obj), TYPE_S390_CPU) ! 32: #define S390_CPU_GET_CLASS(obj) \ ! 33: OBJECT_GET_CLASS(S390CPUClass, (obj), TYPE_S390_CPU) ! 34: ! 35: /** ! 36: * S390CPUClass: ! 37: * @parent_reset: The parent class' reset handler. ! 38: * ! 39: * An S/390 CPU model. ! 40: */ ! 41: typedef struct S390CPUClass { ! 42: /*< private >*/ ! 43: CPUClass parent_class; ! 44: /*< public >*/ ! 45: ! 46: void (*parent_reset)(CPUState *cpu); ! 47: } S390CPUClass; ! 48: ! 49: /** ! 50: * S390CPU: ! 51: * @env: #CPUS390XState. ! 52: * ! 53: * An S/390 CPU. ! 54: */ ! 55: typedef struct S390CPU { ! 56: /*< private >*/ ! 57: CPUState parent_obj; ! 58: /*< public >*/ ! 59: ! 60: CPUS390XState env; ! 61: } S390CPU; ! 62: ! 63: static inline S390CPU *s390_env_get_cpu(CPUS390XState *env) ! 64: { ! 65: return S390_CPU(container_of(env, S390CPU, env)); ! 66: } ! 67: ! 68: #define ENV_GET_CPU(e) CPU(s390_env_get_cpu(e)) ! 69: ! 70: ! 71: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.