1644a699eSMichał Winiarski /* SPDX-License-Identifier: MIT */ 2644a699eSMichał Winiarski /* 3644a699eSMichał Winiarski * Copyright © 2025 Intel Corporation 4644a699eSMichał Winiarski */ 5644a699eSMichał Winiarski 6644a699eSMichał Winiarski #ifndef _XE_SRIOV_PACKET_H_ 7644a699eSMichał Winiarski #define _XE_SRIOV_PACKET_H_ 8644a699eSMichał Winiarski 9644a699eSMichał Winiarski #include <linux/types.h> 10644a699eSMichał Winiarski 11644a699eSMichał Winiarski struct xe_device; 12644a699eSMichał Winiarski struct xe_sriov_packet; 13644a699eSMichał Winiarski enum xe_sriov_packet_type; 14644a699eSMichał Winiarski 15644a699eSMichał Winiarski struct xe_sriov_packet *xe_sriov_packet_alloc(struct xe_device *xe); 16644a699eSMichał Winiarski void xe_sriov_packet_free(struct xe_sriov_packet *data); 17644a699eSMichał Winiarski 18644a699eSMichał Winiarski int xe_sriov_packet_init(struct xe_sriov_packet *data, u8 tile_id, u8 gt_id, 19644a699eSMichał Winiarski enum xe_sriov_packet_type, loff_t offset, size_t size); 20644a699eSMichał Winiarski int xe_sriov_packet_init_from_hdr(struct xe_sriov_packet *data); 21644a699eSMichał Winiarski 221ed30397SMichał Winiarski ssize_t xe_sriov_packet_read_single(struct xe_device *xe, unsigned int vfid, 231ed30397SMichał Winiarski char __user *buf, size_t len); 241ed30397SMichał Winiarski ssize_t xe_sriov_packet_write_single(struct xe_device *xe, unsigned int vfid, 251ed30397SMichał Winiarski const char __user *buf, size_t len); 261ed30397SMichał Winiarski int xe_sriov_packet_save_init(struct xe_device *xe, unsigned int vfid); 27*70e2fa91SMichał Winiarski int xe_sriov_packet_process_descriptor(struct xe_device *xe, unsigned int vfid, 28*70e2fa91SMichał Winiarski struct xe_sriov_packet *data); 291ed30397SMichał Winiarski 30644a699eSMichał Winiarski #endif 31