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