/*
 * This file is auto-generated. Modifications will be lost.
 *
 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
 * for more information.
 */
#ifndef _UAPI_LINUX_VDPA_H_
#define _UAPI_LINUX_VDPA_H_
#define VDPA_GENL_NAME "vdpa"
#define VDPA_GENL_VERSION 0x1
enum vdpa_command {
  VDPA_CMD_UNSPEC,
  VDPA_CMD_MGMTDEV_NEW,
  VDPA_CMD_MGMTDEV_GET,
  VDPA_CMD_DEV_NEW,
  VDPA_CMD_DEV_DEL,
  VDPA_CMD_DEV_GET,
  VDPA_CMD_DEV_CONFIG_GET,
  VDPA_CMD_DEV_VSTATS_GET,
};
enum vdpa_attr {
  VDPA_ATTR_UNSPEC,
  VDPA_ATTR_PAD = VDPA_ATTR_UNSPEC,
  VDPA_ATTR_MGMTDEV_BUS_NAME,
  VDPA_ATTR_MGMTDEV_DEV_NAME,
  VDPA_ATTR_MGMTDEV_SUPPORTED_CLASSES,
  VDPA_ATTR_DEV_NAME,
  VDPA_ATTR_DEV_ID,
  VDPA_ATTR_DEV_VENDOR_ID,
  VDPA_ATTR_DEV_MAX_VQS,
  VDPA_ATTR_DEV_MAX_VQ_SIZE,
  VDPA_ATTR_DEV_MIN_VQ_SIZE,
  VDPA_ATTR_DEV_NET_CFG_MACADDR,
  VDPA_ATTR_DEV_NET_STATUS,
  VDPA_ATTR_DEV_NET_CFG_MAX_VQP,
  VDPA_ATTR_DEV_NET_CFG_MTU,
  VDPA_ATTR_DEV_NEGOTIATED_FEATURES,
  VDPA_ATTR_DEV_MGMTDEV_MAX_VQS,
  VDPA_ATTR_DEV_SUPPORTED_FEATURES,
  VDPA_ATTR_DEV_QUEUE_INDEX,
  VDPA_ATTR_DEV_VENDOR_ATTR_NAME,
  VDPA_ATTR_DEV_VENDOR_ATTR_VALUE,
  VDPA_ATTR_DEV_FEATURES,
  VDPA_ATTR_DEV_BLK_CFG_CAPACITY,
  VDPA_ATTR_DEV_BLK_CFG_SIZE_MAX,
  VDPA_ATTR_DEV_BLK_CFG_BLK_SIZE,
  VDPA_ATTR_DEV_BLK_CFG_SEG_MAX,
  VDPA_ATTR_DEV_BLK_CFG_NUM_QUEUES,
  VDPA_ATTR_DEV_BLK_CFG_PHY_BLK_EXP,
  VDPA_ATTR_DEV_BLK_CFG_ALIGN_OFFSET,
  VDPA_ATTR_DEV_BLK_CFG_MIN_IO_SIZE,
  VDPA_ATTR_DEV_BLK_CFG_OPT_IO_SIZE,
  VDPA_ATTR_DEV_BLK_CFG_MAX_DISCARD_SEC,
  VDPA_ATTR_DEV_BLK_CFG_MAX_DISCARD_SEG,
  VDPA_ATTR_DEV_BLK_CFG_DISCARD_SEC_ALIGN,
  VDPA_ATTR_DEV_BLK_CFG_MAX_WRITE_ZEROES_SEC,
  VDPA_ATTR_DEV_BLK_CFG_MAX_WRITE_ZEROES_SEG,
  VDPA_ATTR_DEV_BLK_READ_ONLY,
  VDPA_ATTR_DEV_BLK_FLUSH,
  VDPA_ATTR_MAX,
};
#endif
