Commit | Line | Data |
---|---|---|
1f4d4ed6 | 1 | /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */ |
1e128c81 AE |
2 | /* QLogic qed NIC Driver |
3 | * Copyright (c) 2015-2017 QLogic Corporation | |
663eacd8 | 4 | * Copyright (c) 2019-2020 Marvell International Ltd. |
1e128c81 AE |
5 | */ |
6 | ||
7 | #ifndef _QED_FCOE_H | |
8 | #define _QED_FCOE_H | |
9 | #include <linux/types.h> | |
10 | #include <linux/list.h> | |
11 | #include <linux/slab.h> | |
12 | #include <linux/spinlock.h> | |
13 | #include <linux/qed/qed_fcoe_if.h> | |
14 | #include <linux/qed/qed_chain.h> | |
15 | #include "qed.h" | |
16 | #include "qed_hsi.h" | |
17 | #include "qed_mcp.h" | |
18 | #include "qed_sp.h" | |
19 | ||
20 | struct qed_fcoe_info { | |
21 | spinlock_t lock; /* Connection resources. */ | |
22 | struct list_head free_list; | |
23 | }; | |
24 | ||
25 | #if IS_ENABLED(CONFIG_QED_FCOE) | |
3587cb87 | 26 | int qed_fcoe_alloc(struct qed_hwfn *p_hwfn); |
1e128c81 | 27 | |
3587cb87 | 28 | void qed_fcoe_setup(struct qed_hwfn *p_hwfn); |
1e128c81 | 29 | |
3587cb87 | 30 | void qed_fcoe_free(struct qed_hwfn *p_hwfn); |
e346e231 KK |
31 | /** |
32 | * qed_get_protocol_stats_fcoe(): Fills provided statistics | |
33 | * struct with statistics. | |
34 | * | |
35 | * @cdev: Qed dev pointer. | |
36 | * @stats: Points to struct that will be filled with statistics. | |
37 | * @is_atomic: Hint from the caller - if the func can sleep or not. | |
38 | * | |
39 | * Context: The function should not sleep in case is_atomic == true. | |
40 | * Return: Void. | |
41 | */ | |
1e128c81 | 42 | void qed_get_protocol_stats_fcoe(struct qed_dev *cdev, |
e346e231 KK |
43 | struct qed_mcp_fcoe_stats *stats, |
44 | bool is_atomic); | |
1e128c81 | 45 | #else /* CONFIG_QED_FCOE */ |
3587cb87 | 46 | static inline int qed_fcoe_alloc(struct qed_hwfn *p_hwfn) |
1e128c81 | 47 | { |
3587cb87 | 48 | return -EINVAL; |
1e128c81 AE |
49 | } |
50 | ||
3587cb87 TT |
51 | static inline void qed_fcoe_setup(struct qed_hwfn *p_hwfn) {} |
52 | static inline void qed_fcoe_free(struct qed_hwfn *p_hwfn) {} | |
1e128c81 AE |
53 | |
54 | static inline void qed_get_protocol_stats_fcoe(struct qed_dev *cdev, | |
e346e231 KK |
55 | struct qed_mcp_fcoe_stats *stats, |
56 | bool is_atomic) | |
1e128c81 AE |
57 | { |
58 | } | |
59 | #endif /* CONFIG_QED_FCOE */ | |
60 | ||
1e128c81 | 61 | #endif /* _QED_FCOE_H */ |