1b9e7a234SAndreas Färber /* 2b9e7a234SAndreas Färber * QEMU Motorola 68k CPU 3b9e7a234SAndreas Färber * 4b9e7a234SAndreas Färber * Copyright (c) 2012 SUSE LINUX Products GmbH 5b9e7a234SAndreas Färber * 6b9e7a234SAndreas Färber * This library is free software; you can redistribute it and/or 7b9e7a234SAndreas Färber * modify it under the terms of the GNU Lesser General Public 8b9e7a234SAndreas Färber * License as published by the Free Software Foundation; either 9b9e7a234SAndreas Färber * version 2.1 of the License, or (at your option) any later version. 10b9e7a234SAndreas Färber * 11b9e7a234SAndreas Färber * This library is distributed in the hope that it will be useful, 12b9e7a234SAndreas Färber * but WITHOUT ANY WARRANTY; without even the implied warranty of 13b9e7a234SAndreas Färber * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14b9e7a234SAndreas Färber * Lesser General Public License for more details. 15b9e7a234SAndreas Färber * 16b9e7a234SAndreas Färber * You should have received a copy of the GNU Lesser General Public 17b9e7a234SAndreas Färber * License along with this library; if not, see 18b9e7a234SAndreas Färber * <http://www.gnu.org/licenses/lgpl-2.1.html> 19b9e7a234SAndreas Färber */ 20b9e7a234SAndreas Färber #ifndef QEMU_M68K_CPU_QOM_H 21b9e7a234SAndreas Färber #define QEMU_M68K_CPU_QOM_H 22b9e7a234SAndreas Färber 232e5b09fdSMarkus Armbruster #include "hw/core/cpu.h" 24*db1015e9SEduardo Habkost #include "qom/object.h" 25b9e7a234SAndreas Färber 26b9e7a234SAndreas Färber #define TYPE_M68K_CPU "m68k-cpu" 27b9e7a234SAndreas Färber 28*db1015e9SEduardo Habkost typedef struct M68kCPU M68kCPU; 29*db1015e9SEduardo Habkost typedef struct M68kCPUClass M68kCPUClass; 30b9e7a234SAndreas Färber #define M68K_CPU_CLASS(klass) \ 31b9e7a234SAndreas Färber OBJECT_CLASS_CHECK(M68kCPUClass, (klass), TYPE_M68K_CPU) 32b9e7a234SAndreas Färber #define M68K_CPU(obj) \ 33b9e7a234SAndreas Färber OBJECT_CHECK(M68kCPU, (obj), TYPE_M68K_CPU) 34b9e7a234SAndreas Färber #define M68K_CPU_GET_CLASS(obj) \ 35b9e7a234SAndreas Färber OBJECT_GET_CLASS(M68kCPUClass, (obj), TYPE_M68K_CPU) 36b9e7a234SAndreas Färber 37808d77bcSLucien Murray-Pitts /* 38b9e7a234SAndreas Färber * M68kCPUClass: 396d1bbc62SAndreas Färber * @parent_realize: The parent class' realize handler. 40b9e7a234SAndreas Färber * @parent_reset: The parent class' reset handler. 41b9e7a234SAndreas Färber * 42b9e7a234SAndreas Färber * A Motorola 68k CPU model. 43b9e7a234SAndreas Färber */ 44*db1015e9SEduardo Habkost struct M68kCPUClass { 45b9e7a234SAndreas Färber /*< private >*/ 46b9e7a234SAndreas Färber CPUClass parent_class; 47b9e7a234SAndreas Färber /*< public >*/ 48b9e7a234SAndreas Färber 496d1bbc62SAndreas Färber DeviceRealize parent_realize; 50781c67caSPeter Maydell DeviceReset parent_reset; 51*db1015e9SEduardo Habkost }; 52b9e7a234SAndreas Färber 5300f3fd63SRichard Henderson 54b9e7a234SAndreas Färber #endif 55