/* SPDX-License-Identifier: GPL-2.0 */ /* Copyright (C) 2023-2026 Intel Corporation */ #ifndef _ISSEI_FW_CLIENT_H_ #define _ISSEI_FW_CLIENT_H_ #include #include #include #include struct issei_device; struct issei_host_client; /** * struct issei_fw_client - represents firmware queue * @kobj: associated kobject * @list: link in firmware clients list * @id: firmware client id * @ver: firmware client version * @uuid: firmware client protocol id * @mtu: firmware client maximum buffer size * @flags: firmware client flags * @cl: pointer to host client, if connected */ struct issei_fw_client { struct kobject kobj; struct list_head list; u16 id; u8 ver; uuid_t uuid; u32 mtu; u32 flags; struct issei_host_client *cl; }; #define to_issei_fw_client(x) container_of(x, struct issei_fw_client, kobj) struct issei_fw_client *issei_fw_cl_create(struct issei_device *idev, u16 id, u8 ver, const uuid_t *uuid, u32 mtu, u32 flags); void issei_fw_cl_remove_all(struct issei_device *idev); struct issei_fw_client *issei_fw_cl_find_by_uuid(struct issei_device *idev, const uuid_t *uuid); int issei_fw_cl_connect(struct issei_fw_client *fw_cl, struct issei_host_client *cl); void issei_fw_cl_disconnect(struct issei_fw_client *fw_cl); #endif /* _ISSEI_FW_CLIENT_H_ */