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 | |