xref: /linux/include/net/mana/shm_channel.h (revision fd325cd648f15eb9a8b32a68de3bafc72bcfe753)
1*fd325cd6SLong Li /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2*fd325cd6SLong Li /* Copyright (c) 2021, Microsoft Corporation. */
3*fd325cd6SLong Li 
4*fd325cd6SLong Li #ifndef _SHM_CHANNEL_H
5*fd325cd6SLong Li #define _SHM_CHANNEL_H
6*fd325cd6SLong Li 
7*fd325cd6SLong Li struct shm_channel {
8*fd325cd6SLong Li 	struct device *dev;
9*fd325cd6SLong Li 	void __iomem *base;
10*fd325cd6SLong Li };
11*fd325cd6SLong Li 
12*fd325cd6SLong Li void mana_smc_init(struct shm_channel *sc, struct device *dev,
13*fd325cd6SLong Li 		   void __iomem *base);
14*fd325cd6SLong Li 
15*fd325cd6SLong Li int mana_smc_setup_hwc(struct shm_channel *sc, bool reset_vf, u64 eq_addr,
16*fd325cd6SLong Li 		       u64 cq_addr, u64 rq_addr, u64 sq_addr,
17*fd325cd6SLong Li 		       u32 eq_msix_index);
18*fd325cd6SLong Li 
19*fd325cd6SLong Li int mana_smc_teardown_hwc(struct shm_channel *sc, bool reset_vf);
20*fd325cd6SLong Li 
21*fd325cd6SLong Li #endif /* _SHM_CHANNEL_H */
22