xref: /linux/drivers/net/ethernet/cisco/enic/enic_admin.h (revision 91ec2035134982b98fab0609a9fd8480e8217dc1)
13258931dSSatish Kharat /* SPDX-License-Identifier: GPL-2.0-only */
23258931dSSatish Kharat /* Copyright 2025 Cisco Systems, Inc.  All rights reserved. */
33258931dSSatish Kharat 
43258931dSSatish Kharat #ifndef _ENIC_ADMIN_H_
53258931dSSatish Kharat #define _ENIC_ADMIN_H_
63258931dSSatish Kharat 
73258931dSSatish Kharat #define ENIC_ADMIN_DESC_COUNT	64
83258931dSSatish Kharat #define ENIC_ADMIN_BUF_SIZE	2048
93258931dSSatish Kharat 
103258931dSSatish Kharat struct enic;
113258931dSSatish Kharat 
12*cb1dba54SSatish Kharat /* Wrapper for received admin messages queued for deferred processing.
13*cb1dba54SSatish Kharat  * The admin CQ poll work handler enqueues these; a separate work handler
14*cb1dba54SSatish Kharat  * processes them where sleeping (mutex, GFP_KERNEL) is safe.
15*cb1dba54SSatish Kharat  */
16*cb1dba54SSatish Kharat struct enic_admin_msg {
17*cb1dba54SSatish Kharat 	struct list_head list;
18*cb1dba54SSatish Kharat 	unsigned int len;
19*cb1dba54SSatish Kharat 	u8 data[] __aligned(8);
20*cb1dba54SSatish Kharat };
21*cb1dba54SSatish Kharat 
223258931dSSatish Kharat int enic_admin_channel_open(struct enic *enic);
233258931dSSatish Kharat void enic_admin_channel_close(struct enic *enic);
24*cb1dba54SSatish Kharat unsigned int enic_admin_wq_cq_service(struct enic *enic);
25*cb1dba54SSatish Kharat unsigned int enic_admin_rq_cq_service(struct enic *enic);
263258931dSSatish Kharat 
273258931dSSatish Kharat #endif /* _ENIC_ADMIN_H_ */
28