17a8d15d7SEric Auger /* 27a8d15d7SEric Auger * VFIO calxeda xgmac device 37a8d15d7SEric Auger * 47a8d15d7SEric Auger * Copyright Linaro Limited, 2014 57a8d15d7SEric Auger * 67a8d15d7SEric Auger * Authors: 77a8d15d7SEric Auger * Eric Auger <eric.auger@linaro.org> 87a8d15d7SEric Auger * 97a8d15d7SEric Auger * This work is licensed under the terms of the GNU GPL, version 2. See 107a8d15d7SEric Auger * the COPYING file in the top-level directory. 117a8d15d7SEric Auger * 127a8d15d7SEric Auger */ 137a8d15d7SEric Auger 147a8d15d7SEric Auger #ifndef HW_VFIO_VFIO_CALXEDA_XGMAC_H 157a8d15d7SEric Auger #define HW_VFIO_VFIO_CALXEDA_XGMAC_H 167a8d15d7SEric Auger 177a8d15d7SEric Auger #include "hw/vfio/vfio-platform.h" 18db1015e9SEduardo Habkost #include "qom/object.h" 197a8d15d7SEric Auger 207a8d15d7SEric Auger #define TYPE_VFIO_CALXEDA_XGMAC "vfio-calxeda-xgmac" 217a8d15d7SEric Auger 227a8d15d7SEric Auger /** 237a8d15d7SEric Auger * This device exposes: 247a8d15d7SEric Auger * - a single MMIO region corresponding to its register space 257a8d15d7SEric Auger * - 3 IRQS (main and 2 power related IRQs) 267a8d15d7SEric Auger */ 27db1015e9SEduardo Habkost struct VFIOCalxedaXgmacDevice { 287a8d15d7SEric Auger VFIOPlatformDevice vdev; 29db1015e9SEduardo Habkost }; 30db1015e9SEduardo Habkost typedef struct VFIOCalxedaXgmacDevice VFIOCalxedaXgmacDevice; 317a8d15d7SEric Auger 32db1015e9SEduardo Habkost struct VFIOCalxedaXgmacDeviceClass { 337a8d15d7SEric Auger /*< private >*/ 347a8d15d7SEric Auger VFIOPlatformDeviceClass parent_class; 357a8d15d7SEric Auger /*< public >*/ 367a8d15d7SEric Auger DeviceRealize parent_realize; 37db1015e9SEduardo Habkost }; 38db1015e9SEduardo Habkost typedef struct VFIOCalxedaXgmacDeviceClass VFIOCalxedaXgmacDeviceClass; 397a8d15d7SEric Auger 40*8110fa1dSEduardo Habkost DECLARE_OBJ_CHECKERS(VFIOCalxedaXgmacDevice, VFIOCalxedaXgmacDeviceClass, 41*8110fa1dSEduardo Habkost VFIO_CALXEDA_XGMAC_DEVICE, TYPE_VFIO_CALXEDA_XGMAC) 427a8d15d7SEric Auger 437a8d15d7SEric Auger #endif 44