15f503cd9SPankaj Gupta /* 25f503cd9SPankaj Gupta * Virtio PMEM device 35f503cd9SPankaj Gupta * 45f503cd9SPankaj Gupta * Copyright (C) 2018-2019 Red Hat, Inc. 55f503cd9SPankaj Gupta * 65f503cd9SPankaj Gupta * Authors: 75f503cd9SPankaj Gupta * Pankaj Gupta <pagupta@redhat.com> 85f503cd9SPankaj Gupta * David Hildenbrand <david@redhat.com> 95f503cd9SPankaj Gupta * 105f503cd9SPankaj Gupta * This work is licensed under the terms of the GNU GPL, version 2. 115f503cd9SPankaj Gupta * See the COPYING file in the top-level directory. 125f503cd9SPankaj Gupta */ 135f503cd9SPankaj Gupta 145f503cd9SPankaj Gupta #ifndef HW_VIRTIO_PMEM_H 155f503cd9SPankaj Gupta #define HW_VIRTIO_PMEM_H 165f503cd9SPankaj Gupta 175f503cd9SPankaj Gupta #include "hw/virtio/virtio.h" 18*b495ec6cSPhilippe Mathieu-Daudé #include "qapi/qapi-types-machine.h" 19db1015e9SEduardo Habkost #include "qom/object.h" 205f503cd9SPankaj Gupta 215f503cd9SPankaj Gupta #define TYPE_VIRTIO_PMEM "virtio-pmem" 225f503cd9SPankaj Gupta 23c821774aSEduardo Habkost OBJECT_DECLARE_TYPE(VirtIOPMEM, VirtIOPMEMClass, 2430b5707cSEduardo Habkost VIRTIO_PMEM) 255f503cd9SPankaj Gupta 265f503cd9SPankaj Gupta #define VIRTIO_PMEM_ADDR_PROP "memaddr" 275f503cd9SPankaj Gupta #define VIRTIO_PMEM_MEMDEV_PROP "memdev" 285f503cd9SPankaj Gupta 29db1015e9SEduardo Habkost struct VirtIOPMEM { 305f503cd9SPankaj Gupta VirtIODevice parent_obj; 315f503cd9SPankaj Gupta 325f503cd9SPankaj Gupta VirtQueue *rq_vq; 335f503cd9SPankaj Gupta uint64_t start; 345f503cd9SPankaj Gupta HostMemoryBackend *memdev; 35db1015e9SEduardo Habkost }; 365f503cd9SPankaj Gupta 37db1015e9SEduardo Habkost struct VirtIOPMEMClass { 385f503cd9SPankaj Gupta /* private */ 395f503cd9SPankaj Gupta VirtIODevice parent; 405f503cd9SPankaj Gupta 415f503cd9SPankaj Gupta /* public */ 425f503cd9SPankaj Gupta void (*fill_device_info)(const VirtIOPMEM *pmem, VirtioPMEMDeviceInfo *vi); 435f503cd9SPankaj Gupta MemoryRegion *(*get_memory_region)(VirtIOPMEM *pmem, Error **errp); 44db1015e9SEduardo Habkost }; 455f503cd9SPankaj Gupta 465f503cd9SPankaj Gupta #endif 47