1 /*
2  * VFIO calxeda xgmac device
3  *
4  * Copyright Linaro Limited, 2014
5  *
6  * Authors:
7  *  Eric Auger <eric.auger@linaro.org>
8  *
9  * This work is licensed under the terms of the GNU GPL, version 2.  See
10  * the COPYING file in the top-level directory.
11  *
12  */
13 
14 #ifndef HW_VFIO_VFIO_CALXEDA_XGMAC_H
15 #define HW_VFIO_VFIO_CALXEDA_XGMAC_H
16 
17 #include "hw/vfio/vfio-platform.h"
18 
19 #define TYPE_VFIO_CALXEDA_XGMAC "vfio-calxeda-xgmac"
20 
21 /**
22  * This device exposes:
23  * - a single MMIO region corresponding to its register space
24  * - 3 IRQS (main and 2 power related IRQs)
25  */
26 typedef struct VFIOCalxedaXgmacDevice {
27     VFIOPlatformDevice vdev;
28 } VFIOCalxedaXgmacDevice;
29 
30 typedef struct VFIOCalxedaXgmacDeviceClass {
31     /*< private >*/
32     VFIOPlatformDeviceClass parent_class;
33     /*< public >*/
34     DeviceRealize parent_realize;
35 } VFIOCalxedaXgmacDeviceClass;
36 
37 #define VFIO_CALXEDA_XGMAC_DEVICE(obj) \
38      OBJECT_CHECK(VFIOCalxedaXgmacDevice, (obj), TYPE_VFIO_CALXEDA_XGMAC)
39 #define VFIO_CALXEDA_XGMAC_DEVICE_CLASS(klass) \
40      OBJECT_CLASS_CHECK(VFIOCalxedaXgmacDeviceClass, (klass), \
41                         TYPE_VFIO_CALXEDA_XGMAC)
42 #define VFIO_CALXEDA_XGMAC_DEVICE_GET_CLASS(obj) \
43      OBJECT_GET_CLASS(VFIOCalxedaXgmacDeviceClass, (obj), \
44                       TYPE_VFIO_CALXEDA_XGMAC)
45 
46 #endif
47