xref: /openbmc/qemu/include/hw/vfio/vfio-amd-xgbe.h (revision da34e65c)
1 /*
2  * VFIO AMD XGBE device
3  *
4  * Copyright Linaro Limited, 2015
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_AMD_XGBE_H
15 #define HW_VFIO_VFIO_AMD_XGBE_H
16 
17 #include "hw/vfio/vfio-platform.h"
18 
19 #define TYPE_VFIO_AMD_XGBE "vfio-amd-xgbe"
20 
21 /**
22  * This device exposes:
23  * - 5 MMIO regions: MAC, PCS, SerDes Rx/Tx regs,
24      SerDes Integration Registers 1/2 & 2/2
25  * - 2 level sensitive IRQs and optional DMA channel IRQs
26  */
27 struct VFIOAmdXgbeDevice {
28     VFIOPlatformDevice vdev;
29 };
30 
31 typedef struct VFIOAmdXgbeDevice VFIOAmdXgbeDevice;
32 
33 struct VFIOAmdXgbeDeviceClass {
34     /*< private >*/
35     VFIOPlatformDeviceClass parent_class;
36     /*< public >*/
37     DeviceRealize parent_realize;
38 };
39 
40 typedef struct VFIOAmdXgbeDeviceClass VFIOAmdXgbeDeviceClass;
41 
42 #define VFIO_AMD_XGBE_DEVICE(obj) \
43      OBJECT_CHECK(VFIOAmdXgbeDevice, (obj), TYPE_VFIO_AMD_XGBE)
44 #define VFIO_AMD_XGBE_DEVICE_CLASS(klass) \
45      OBJECT_CLASS_CHECK(VFIOAmdXgbeDeviceClass, (klass), \
46                         TYPE_VFIO_AMD_XGBE)
47 #define VFIO_AMD_XGBE_DEVICE_GET_CLASS(obj) \
48      OBJECT_GET_CLASS(VFIOAmdXgbeDeviceClass, (obj), \
49                       TYPE_VFIO_AMD_XGBE)
50 
51 #endif
52