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

#ifndef _XE_GT_SRIOV_PF_MIGRATION_TYPES_H_
#define _XE_GT_SRIOV_PF_MIGRATION_TYPES_H_

#include <linux/ptr_ring.h>

/**
 * struct xe_gt_sriov_migration_data - GT-level per-VF migration data.
 *
 * Used by the PF driver to maintain per-VF migration data.
 */
struct xe_gt_sriov_migration_data {
        /** @ring: queue containing VF save / restore migration data */
        struct ptr_ring ring;
        /** @save: structure for currently processed save migration data */
        struct {
                /** @save.data_remaining: bitmap of migration types that need to be saved */
                unsigned long data_remaining;
                /** @save.vram_offset: last saved offset within VRAM, used for chunked VRAM save */
                loff_t vram_offset;
        } save;
};

#endif