mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-28 18:10:32 +00:00

This patch adds the support for feature VIRTIO_PMEM_F_SHMEM_REGION (virtio spec v1.2 section 5.19.5.2 [1]). During feature negotiation, if VIRTIO_PMEM_F_SHMEM_REGION is offered by the device, the driver looks for a shared memory region of id 0. If it is found, this feature is understood. Otherwise, this feature bit is cleared. During probe, if VIRTIO_PMEM_F_SHMEM_REGION has been negotiated, virtio pmem ignores the `start` and `size` fields in device config and uses the physical address range of shared memory region 0. [1] https://docs.oasis-open.org/virtio/virtio/v1.2/csd01/virtio-v1.2-csd01.html#x1-6480002 Signed-off-by: Changyuan Lyu <changyuanl@google.com> Message-Id: <20231220204906.566922-1-changyuanl@google.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com>
42 lines
892 B
C
42 lines
892 B
C
/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause */
|
|
/*
|
|
* Definitions for virtio-pmem devices.
|
|
*
|
|
* Copyright (C) 2019 Red Hat, Inc.
|
|
*
|
|
* Author(s): Pankaj Gupta <pagupta@redhat.com>
|
|
*/
|
|
|
|
#ifndef _UAPI_LINUX_VIRTIO_PMEM_H
|
|
#define _UAPI_LINUX_VIRTIO_PMEM_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/virtio_ids.h>
|
|
#include <linux/virtio_config.h>
|
|
|
|
/* Feature bits */
|
|
/* guest physical address range will be indicated as shared memory region 0 */
|
|
#define VIRTIO_PMEM_F_SHMEM_REGION 0
|
|
|
|
/* shmid of the shared memory region corresponding to the pmem */
|
|
#define VIRTIO_PMEM_SHMEM_REGION_ID 0
|
|
|
|
struct virtio_pmem_config {
|
|
__le64 start;
|
|
__le64 size;
|
|
};
|
|
|
|
#define VIRTIO_PMEM_REQ_TYPE_FLUSH 0
|
|
|
|
struct virtio_pmem_resp {
|
|
/* Host return status corresponding to flush request */
|
|
__le32 ret;
|
|
};
|
|
|
|
struct virtio_pmem_req {
|
|
/* command type */
|
|
__le32 type;
|
|
};
|
|
|
|
#endif
|