1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2*f80ad8b4SAndroid Build Coastguard Worker /* 3*f80ad8b4SAndroid Build Coastguard Worker * vdpa device management interface 4*f80ad8b4SAndroid Build Coastguard Worker * Copyright (c) 2020 Mellanox Technologies Ltd. All rights reserved. 5*f80ad8b4SAndroid Build Coastguard Worker */ 6*f80ad8b4SAndroid Build Coastguard Worker 7*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_VDPA_H_ 8*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_LINUX_VDPA_H_ 9*f80ad8b4SAndroid Build Coastguard Worker 10*f80ad8b4SAndroid Build Coastguard Worker #define VDPA_GENL_NAME "vdpa" 11*f80ad8b4SAndroid Build Coastguard Worker #define VDPA_GENL_VERSION 0x1 12*f80ad8b4SAndroid Build Coastguard Worker 13*f80ad8b4SAndroid Build Coastguard Worker enum vdpa_command { 14*f80ad8b4SAndroid Build Coastguard Worker VDPA_CMD_UNSPEC, 15*f80ad8b4SAndroid Build Coastguard Worker VDPA_CMD_MGMTDEV_NEW, 16*f80ad8b4SAndroid Build Coastguard Worker VDPA_CMD_MGMTDEV_GET, /* can dump */ 17*f80ad8b4SAndroid Build Coastguard Worker VDPA_CMD_DEV_NEW, 18*f80ad8b4SAndroid Build Coastguard Worker VDPA_CMD_DEV_DEL, 19*f80ad8b4SAndroid Build Coastguard Worker VDPA_CMD_DEV_GET, /* can dump */ 20*f80ad8b4SAndroid Build Coastguard Worker VDPA_CMD_DEV_CONFIG_GET, /* can dump */ 21*f80ad8b4SAndroid Build Coastguard Worker VDPA_CMD_DEV_VSTATS_GET, 22*f80ad8b4SAndroid Build Coastguard Worker }; 23*f80ad8b4SAndroid Build Coastguard Worker 24*f80ad8b4SAndroid Build Coastguard Worker enum vdpa_attr { 25*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_UNSPEC, 26*f80ad8b4SAndroid Build Coastguard Worker 27*f80ad8b4SAndroid Build Coastguard Worker /* Pad attribute for 64b alignment */ 28*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_PAD = VDPA_ATTR_UNSPEC, 29*f80ad8b4SAndroid Build Coastguard Worker 30*f80ad8b4SAndroid Build Coastguard Worker /* bus name (optional) + dev name together make the parent device handle */ 31*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_MGMTDEV_BUS_NAME, /* string */ 32*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_MGMTDEV_DEV_NAME, /* string */ 33*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_MGMTDEV_SUPPORTED_CLASSES, /* u64 */ 34*f80ad8b4SAndroid Build Coastguard Worker 35*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_NAME, /* string */ 36*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_ID, /* u32 */ 37*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_VENDOR_ID, /* u32 */ 38*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_MAX_VQS, /* u32 */ 39*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_MAX_VQ_SIZE, /* u16 */ 40*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_MIN_VQ_SIZE, /* u16 */ 41*f80ad8b4SAndroid Build Coastguard Worker 42*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_NET_CFG_MACADDR, /* binary */ 43*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_NET_STATUS, /* u8 */ 44*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_NET_CFG_MAX_VQP, /* u16 */ 45*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_NET_CFG_MTU, /* u16 */ 46*f80ad8b4SAndroid Build Coastguard Worker 47*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_NEGOTIATED_FEATURES, /* u64 */ 48*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_MGMTDEV_MAX_VQS, /* u32 */ 49*f80ad8b4SAndroid Build Coastguard Worker /* virtio features that are supported by the vDPA management device */ 50*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_SUPPORTED_FEATURES, /* u64 */ 51*f80ad8b4SAndroid Build Coastguard Worker 52*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_QUEUE_INDEX, /* u32 */ 53*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_VENDOR_ATTR_NAME, /* string */ 54*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_VENDOR_ATTR_VALUE, /* u64 */ 55*f80ad8b4SAndroid Build Coastguard Worker 56*f80ad8b4SAndroid Build Coastguard Worker /* virtio features that are provisioned to the vDPA device */ 57*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_FEATURES, /* u64 */ 58*f80ad8b4SAndroid Build Coastguard Worker 59*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_CFG_CAPACITY, /* u64 */ 60*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_CFG_SIZE_MAX, /* u32 */ 61*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_CFG_BLK_SIZE, /* u32 */ 62*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_CFG_SEG_MAX, /* u32 */ 63*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_CFG_NUM_QUEUES, /* u16 */ 64*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_CFG_PHY_BLK_EXP, /* u8 */ 65*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_CFG_ALIGN_OFFSET, /* u8 */ 66*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_CFG_MIN_IO_SIZE, /* u16 */ 67*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_CFG_OPT_IO_SIZE, /* u32 */ 68*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_CFG_MAX_DISCARD_SEC, /* u32 */ 69*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_CFG_MAX_DISCARD_SEG, /* u32 */ 70*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_CFG_DISCARD_SEC_ALIGN,/* u32 */ 71*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_CFG_MAX_WRITE_ZEROES_SEC, /* u32 */ 72*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_CFG_MAX_WRITE_ZEROES_SEG, /* u32 */ 73*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_READ_ONLY, /* u8 */ 74*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_DEV_BLK_FLUSH, /* u8 */ 75*f80ad8b4SAndroid Build Coastguard Worker 76*f80ad8b4SAndroid Build Coastguard Worker /* new attributes must be added above here */ 77*f80ad8b4SAndroid Build Coastguard Worker VDPA_ATTR_MAX, 78*f80ad8b4SAndroid Build Coastguard Worker }; 79*f80ad8b4SAndroid Build Coastguard Worker 80*f80ad8b4SAndroid Build Coastguard Worker #endif 81