Many open source projects have moved to using SPDX identifiers to specify license information, reducing the amount of boilerplate code in every source file. This patch replaces the bulk of SPDK .c, .cpp and Makefiles with the BSD-3-Clause identifier. Almost all of these files share the exact same license text, and this patch only modifies the files that contain the most common license text. There can be slight variations because the third clause contains company names - most say "Intel Corporation", but there are instances for Nvidia, Samsung, Eideticom and even "the copyright holder". Used a bash script to automate replacement of the license text with SPDX identifier which is checked into scripts/spdx.sh. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Iaa88ab5e92ea471691dc298cfe41ebfb5d169780 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12904 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Dong Yi <dongx.yi@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: <qun.wan@intel.com>
132 lines
2.7 KiB
C
132 lines
2.7 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright (c) Intel Corporation.
|
|
* All rights reserved.
|
|
*/
|
|
|
|
#ifndef _VFIO_USER_SPEC_H
|
|
#define _VFIO_USER_SPEC_H
|
|
|
|
#include "spdk/stdinc.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
enum vfio_user_command {
|
|
VFIO_USER_VERSION = 1,
|
|
VFIO_USER_DMA_MAP = 2,
|
|
VFIO_USER_DMA_UNMAP = 3,
|
|
VFIO_USER_DEVICE_GET_INFO = 4,
|
|
VFIO_USER_DEVICE_GET_REGION_INFO = 5,
|
|
VFIO_USER_DEVICE_GET_REGION_IO_FDS = 6,
|
|
VFIO_USER_DEVICE_GET_IRQ_INFO = 7,
|
|
VFIO_USER_DEVICE_SET_IRQS = 8,
|
|
VFIO_USER_REGION_READ = 9,
|
|
VFIO_USER_REGION_WRITE = 10,
|
|
VFIO_USER_DMA_READ = 11,
|
|
VFIO_USER_DMA_WRITE = 12,
|
|
VFIO_USER_DEVICE_RESET = 13,
|
|
VFIO_USER_DIRTY_PAGES = 14,
|
|
VFIO_USER_MAX,
|
|
};
|
|
|
|
enum vfio_user_message_type {
|
|
VFIO_USER_MESSAGE_COMMAND = 0,
|
|
VFIO_USER_MESSAGE_REPLY = 1,
|
|
};
|
|
|
|
#define VFIO_USER_FLAGS_NO_REPLY (0x1)
|
|
|
|
struct vfio_user_header {
|
|
uint16_t msg_id;
|
|
uint16_t cmd;
|
|
uint32_t msg_size;
|
|
struct {
|
|
uint32_t type : 4;
|
|
#define VFIO_USER_F_TYPE_COMMAND 0
|
|
#define VFIO_USER_F_TYPE_REPLY 1
|
|
uint32_t no_reply : 1;
|
|
uint32_t error : 1;
|
|
uint32_t resvd : 26;
|
|
} flags;
|
|
uint32_t error_no;
|
|
} __attribute__((packed));
|
|
|
|
struct vfio_user_version {
|
|
uint16_t major;
|
|
uint16_t minor;
|
|
uint8_t data[];
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* Similar to vfio_device_info, but without caps (yet).
|
|
*/
|
|
struct vfio_user_device_info {
|
|
uint32_t argsz;
|
|
/* VFIO_DEVICE_FLAGS_* */
|
|
uint32_t flags;
|
|
uint32_t num_regions;
|
|
uint32_t num_irqs;
|
|
} __attribute__((packed));
|
|
|
|
/* based on struct vfio_bitmap */
|
|
struct vfio_user_bitmap {
|
|
uint64_t pgsize;
|
|
uint64_t size;
|
|
char data[];
|
|
} __attribute__((packed));
|
|
|
|
/* based on struct vfio_iommu_type1_dma_map */
|
|
struct vfio_user_dma_map {
|
|
uint32_t argsz;
|
|
#define VFIO_USER_F_DMA_REGION_READ (1 << 0)
|
|
#define VFIO_USER_F_DMA_REGION_WRITE (1 << 1)
|
|
uint32_t flags;
|
|
uint64_t offset;
|
|
uint64_t addr;
|
|
uint64_t size;
|
|
} __attribute__((packed));
|
|
|
|
/* based on struct vfio_iommu_type1_dma_unmap */
|
|
struct vfio_user_dma_unmap {
|
|
uint32_t argsz;
|
|
#ifndef VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP
|
|
#define VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP (1 << 0)
|
|
#endif
|
|
uint32_t flags;
|
|
uint64_t addr;
|
|
uint64_t size;
|
|
struct vfio_user_bitmap bitmap[];
|
|
};
|
|
|
|
struct vfio_user_region_access {
|
|
uint64_t offset;
|
|
uint32_t region;
|
|
uint32_t count;
|
|
uint8_t data[];
|
|
} __attribute__((packed));
|
|
|
|
struct vfio_user_dma_region_access {
|
|
uint64_t addr;
|
|
uint64_t count;
|
|
uint8_t data[];
|
|
} __attribute__((packed));
|
|
|
|
struct vfio_user_irq_info {
|
|
uint32_t subindex;
|
|
} __attribute__((packed));
|
|
|
|
/* based on struct vfio_iommu_type1_dirty_bitmap_get */
|
|
struct vfio_user_bitmap_range {
|
|
uint64_t iova;
|
|
uint64_t size;
|
|
struct vfio_user_bitmap bitmap;
|
|
} __attribute__((packed));
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|