1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2023 Intel Corporation 4 */ 5 6 #ifndef _XE_GUC_RELAY_TYPES_H_ 7 #define _XE_GUC_RELAY_TYPES_H_ 8 9 #include <linux/mempool.h> 10 #include <linux/spinlock.h> 11 #include <linux/workqueue.h> 12 13 /** 14 * struct xe_guc_relay - Data used by the VF-PF Relay Communication over GuC. 15 */ 16 struct xe_guc_relay { 17 /**@lock: protects all internal data. */ 18 spinlock_t lock; 19 20 /** @worker: dispatches incoming action messages. */ 21 struct work_struct worker; 22 23 /** @pending_relays: list of sent requests that await a response. */ 24 struct list_head pending_relays; 25 26 /** @incoming_actions: list of incoming relay action messages to process. */ 27 struct list_head incoming_actions; 28 29 /** @pool: pool of the relay message buffers. */ 30 mempool_t pool; 31 32 /** @last_rid: last Relay-ID used while sending a message. */ 33 u32 last_rid; 34 }; 35 36 #endif 37