|
|
1.1 ! root 1: /* ! 2: * QEMU LatticeMico32 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_LM32_CPU_QOM_H ! 21: #define QEMU_LM32_CPU_QOM_H ! 22: ! 23: #include "qemu/cpu.h" ! 24: #include "cpu.h" ! 25: ! 26: #define TYPE_LM32_CPU "lm32-cpu" ! 27: ! 28: #define LM32_CPU_CLASS(klass) \ ! 29: OBJECT_CLASS_CHECK(LM32CPUClass, (klass), TYPE_LM32_CPU) ! 30: #define LM32_CPU(obj) \ ! 31: OBJECT_CHECK(LM32CPU, (obj), TYPE_LM32_CPU) ! 32: #define LM32_CPU_GET_CLASS(obj) \ ! 33: OBJECT_GET_CLASS(LM32CPUClass, (obj), TYPE_LM32_CPU) ! 34: ! 35: /** ! 36: * LM32CPUClass: ! 37: * @parent_reset: The parent class' reset handler. ! 38: * ! 39: * A LatticeMico32 CPU model. ! 40: */ ! 41: typedef struct LM32CPUClass { ! 42: /*< private >*/ ! 43: CPUClass parent_class; ! 44: /*< public >*/ ! 45: ! 46: void (*parent_reset)(CPUState *cpu); ! 47: } LM32CPUClass; ! 48: ! 49: /** ! 50: * LM32CPU: ! 51: * @env: #CPULM32State ! 52: * ! 53: * A LatticeMico32 CPU. ! 54: */ ! 55: typedef struct LM32CPU { ! 56: /*< private >*/ ! 57: CPUState parent_obj; ! 58: /*< public >*/ ! 59: ! 60: CPULM32State env; ! 61: } LM32CPU; ! 62: ! 63: static inline LM32CPU *lm32_env_get_cpu(CPULM32State *env) ! 64: { ! 65: return LM32_CPU(container_of(env, LM32CPU, env)); ! 66: } ! 67: ! 68: #define ENV_GET_CPU(e) CPU(lm32_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.