root/drivers/gpu/drm/xe/xe_sriov_pf_provision_types.h
/* SPDX-License-Identifier: MIT */
/*
 * Copyright © 2025 Intel Corporation
 */

#ifndef _XE_SRIOV_PF_PROVISION_TYPES_H_
#define _XE_SRIOV_PF_PROVISION_TYPES_H_

#include <linux/build_bug.h>

/**
 * enum xe_sriov_provisioning_mode - SR-IOV provisioning mode.
 *
 * @XE_SRIOV_PROVISIONING_MODE_AUTO: VFs are provisioned during VFs enabling.
 *                                   Any allocated resources to the VFs will be
 *                                   automatically released when disabling VFs.
 *                                   This is a default mode.
 * @XE_SRIOV_PROVISIONING_MODE_CUSTOM: Explicit VFs provisioning using uABI interfaces.
 *                                     VFs resources remains allocated regardless if
 *                                     VFs are enabled or not.
 */
enum xe_sriov_provisioning_mode {
        XE_SRIOV_PROVISIONING_MODE_AUTO,
        XE_SRIOV_PROVISIONING_MODE_CUSTOM,
};
static_assert(XE_SRIOV_PROVISIONING_MODE_AUTO == 0);

/**
 * struct xe_sriov_pf_provision - Data used by the PF provisioning.
 */
struct xe_sriov_pf_provision {
        /** @mode: selected provisioning mode. */
        enum xe_sriov_provisioning_mode mode;
};

#endif