cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

calxeda-xgmac.c (1763B)


      1/*
      2 * calxeda xgmac VFIO 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#include "qemu/osdep.h"
     15#include "hw/vfio/vfio-calxeda-xgmac.h"
     16#include "migration/vmstate.h"
     17#include "qemu/module.h"
     18
     19static void calxeda_xgmac_realize(DeviceState *dev, Error **errp)
     20{
     21    VFIOPlatformDevice *vdev = VFIO_PLATFORM_DEVICE(dev);
     22    VFIOCalxedaXgmacDeviceClass *k = VFIO_CALXEDA_XGMAC_DEVICE_GET_CLASS(dev);
     23
     24    vdev->compat = g_strdup("calxeda,hb-xgmac");
     25    vdev->num_compat = 1;
     26
     27    k->parent_realize(dev, errp);
     28}
     29
     30static const VMStateDescription vfio_platform_calxeda_xgmac_vmstate = {
     31    .name = "vfio-calxeda-xgmac",
     32    .unmigratable = 1,
     33};
     34
     35static void vfio_calxeda_xgmac_class_init(ObjectClass *klass, void *data)
     36{
     37    DeviceClass *dc = DEVICE_CLASS(klass);
     38    VFIOCalxedaXgmacDeviceClass *vcxc =
     39        VFIO_CALXEDA_XGMAC_DEVICE_CLASS(klass);
     40    device_class_set_parent_realize(dc, calxeda_xgmac_realize,
     41                                    &vcxc->parent_realize);
     42    dc->desc = "VFIO Calxeda XGMAC";
     43    dc->vmsd = &vfio_platform_calxeda_xgmac_vmstate;
     44    /* Supported by TYPE_VIRT_MACHINE */
     45    dc->user_creatable = true;
     46}
     47
     48static const TypeInfo vfio_calxeda_xgmac_dev_info = {
     49    .name = TYPE_VFIO_CALXEDA_XGMAC,
     50    .parent = TYPE_VFIO_PLATFORM,
     51    .instance_size = sizeof(VFIOCalxedaXgmacDevice),
     52    .class_init = vfio_calxeda_xgmac_class_init,
     53    .class_size = sizeof(VFIOCalxedaXgmacDeviceClass),
     54};
     55
     56static void register_calxeda_xgmac_dev_type(void)
     57{
     58    type_register_static(&vfio_calxeda_xgmac_dev_info);
     59}
     60
     61type_init(register_calxeda_xgmac_dev_type)