/* SPDX-License-Identifier: MIT */ /* * Copyright © 2025 Intel Corporation */ #ifndef _XE_SRIOV_PACKET_H_ #define _XE_SRIOV_PACKET_H_ #include struct xe_device; struct xe_sriov_packet; enum xe_sriov_packet_type; struct xe_sriov_packet *xe_sriov_packet_alloc(struct xe_device *xe); void xe_sriov_packet_free(struct xe_sriov_packet *data); int xe_sriov_packet_init(struct xe_sriov_packet *data, u8 tile_id, u8 gt_id, enum xe_sriov_packet_type, loff_t offset, size_t size); int xe_sriov_packet_init_from_hdr(struct xe_sriov_packet *data); ssize_t xe_sriov_packet_read_single(struct xe_device *xe, unsigned int vfid, char __user *buf, size_t len); ssize_t xe_sriov_packet_write_single(struct xe_device *xe, unsigned int vfid, const char __user *buf, size_t len); int xe_sriov_packet_save_init(struct xe_device *xe, unsigned int vfid); int xe_sriov_packet_process_descriptor(struct xe_device *xe, unsigned int vfid, struct xe_sriov_packet *data); #endif