VSF Documented
Main Page
Related Pages
Topics
Namespaces
Data Structures
Files
File List
Globals
source
hal
driver
common
eth
eth_template.inc
Go to the documentation of this file.
1
/*****************************************************************************
2
* Copyright(C)2009-2022 by VSF Team *
3
* *
4
* Licensed under the Apache License, Version 2.0 (the "License"); *
5
* you may not use this file except in compliance with the License. *
6
* You may obtain a copy of the License at *
7
* *
8
* http://www.apache.org/licenses/LICENSE-2.0 *
9
* *
10
* Unless required by applicable law or agreed to in writing, software *
11
* distributed under the License is distributed on an "AS IS" BASIS, *
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13
* See the License for the specific language governing permissions and *
14
* limitations under the License. *
15
* *
16
****************************************************************************/
17
18
#if VSF_HAL_USE_ETH == ENABLED
19
20
/*============================ INCLUDES ======================================*/
21
/*============================ ETHROS ========================================*/
22
23
#define vsf_real_eth_t VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_t)
24
#define vsf_real_eth_capability VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_capability)
25
26
#ifndef VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY
27
# define VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY DISABLED
28
#endif
29
30
#ifdef VSF_ETH_CFG_IMP_REMAP_PREFIX
31
# undef VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY
32
# define VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY ENABLED
33
#endif
34
35
#if VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
36
#endif
37
38
/*============================ LOCAL VARIABLES ===============================*/
39
/*============================ IMPLEMENTATION ================================*/
40
41
#if VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
42
vsf_eth_capability_t
vsf_real_eth_capability(vsf_real_eth_t *eth_ptr)
43
{
44
vsf_eth_capability_t
eth_capability = {
45
0
46
};
47
48
return
eth_capability;
49
}
50
#endif
51
52
/*============================ ETHROS ========================================*/
53
54
#undef VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY
55
56
#undef vsf_real_eth_t
57
#undef vsf_real_eth_capability
58
#undef vsf_real_eth_phy_read_reg
59
#undef vsf_real_eth_phy_write_reg
60
#undef vsf_real_eth_phy_set_mode
61
#undef vsf_real_eth_phy_get_link_status
62
63
/*============================ ETHROS ========================================*/
64
65
#ifdef VSF_ETH_CFG_IMP_REMAP_PREFIX
66
67
# define vsf_imp_eth_t VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_t)
68
# define vsf_imp_eth_init VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_init)
69
# define vsf_imp_eth_fini VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_fini)
70
# define vsf_imp_eth_enable VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_enable)
71
# define vsf_imp_eth_disable VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_disable)
72
# define vsf_imp_eth_capability VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_capability)
73
# define vsf_imp_eth_status VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_status)
74
# define vsf_imp_eth_send_request VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_send_request)
75
# define vsf_imp_eth_recv_request VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_recv_request)
76
# define vsf_imp_eth_send_sg_request VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_send_sg_request)
77
# define vsf_imp_eth_recv_sg_request VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_recv_sg_request)
78
# define vsf_imp_eth_ctrl VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_ctrl)
79
# define vsf_imp_eth_phy_read_reg VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_phy_read_reg)
80
# define vsf_imp_eth_phy_write_reg VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_phy_write_reg)
81
# define vsf_imp_eth_phy_set_mode VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_phy_set_mode)
82
# define vsf_imp_eth_phy_get_link_status VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_phy_get_link_status)
83
84
# define vsf_remap_eth_t VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_t)
85
# define vsf_remap_eth_init VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_init)
86
# define vsf_remap_eth_fini VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_fini)
87
# define vsf_remap_eth_enable VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_enable)
88
# define vsf_remap_eth_disable VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_disable)
89
# define vsf_remap_eth_capability VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_capability)
90
# define vsf_remap_eth_status VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_status)
91
# define vsf_remap_eth_send_request VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_send_request)
92
# define vsf_remap_eth_recv_request VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_recv_request)
93
# define vsf_remap_eth_send_sg_request VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_send_sg_request)
94
# define vsf_remap_eth_recv_sg_request VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_recv_sg_request)
95
# define vsf_remap_eth_ctrl VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_ctrl)
96
# define vsf_remap_eth_phy_read_reg VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_phy_read_reg)
97
# define vsf_remap_eth_phy_write_reg VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_phy_write_reg)
98
# define vsf_remap_eth_phy_set_mode VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_phy_set_mode)
99
# define vsf_remap_eth_phy_get_link_status VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_phy_get_link_status)
100
101
# define VSF_ETH_CFG_IMP_REMAP_FUNCTIONS \
102
vsf_err_t vsf_imp_eth_init(vsf_imp_eth_t *eth_ptr, vsf_eth_cfg_t *cfg_ptr) \
103
{ \
104
VSF_HAL_ASSERT(eth_ptr != NULL); \
105
return vsf_remap_eth_init(eth_ptr, cfg_ptr); \
106
} \
107
void vsf_imp_eth_fini(vsf_imp_eth_t *eth_ptr) \
108
{ \
109
VSF_HAL_ASSERT(eth_ptr != NULL); \
110
vsf_remap_eth_fini(eth_ptr); \
111
} \
112
fsm_rt_t vsf_imp_eth_enable(vsf_imp_eth_t *eth_ptr) \
113
{ \
114
VSF_HAL_ASSERT(eth_ptr != NULL); \
115
return vsf_remap_eth_enable(eth_ptr); \
116
} \
117
fsm_rt_t vsf_imp_eth_disable(vsf_imp_eth_t *eth_ptr) \
118
{ \
119
VSF_HAL_ASSERT(eth_ptr != NULL); \
120
return vsf_remap_eth_disable(eth_ptr); \
121
} \
122
vsf_eth_status_t vsf_imp_eth_status(vsf_imp_eth_t *eth_ptr) \
123
{ \
124
VSF_HAL_ASSERT(eth_ptr != NULL); \
125
return vsf_remap_eth_status(eth_ptr); \
126
} \
127
vsf_eth_capability_t vsf_imp_eth_capability(vsf_imp_eth_t *eth_ptr) \
128
{ \
129
VSF_HAL_ASSERT(eth_ptr != NULL); \
130
return vsf_remap_eth_capability(eth_ptr); \
131
} \
132
vsf_err_t vsf_imp_eth_send_request(vsf_imp_eth_t *eth_ptr, \
133
vsf_eth_send_buf_desc_t *buf_ptr) \
134
{ \
135
VSF_HAL_ASSERT(eth_ptr != NULL); \
136
return vsf_remap_eth_send_request(eth_ptr, buf_ptr); \
137
} \
138
vsf_err_t vsf_imp_eth_recv_request(vsf_imp_eth_t *eth_ptr, \
139
vsf_eth_recv_buf_desc_t *buf_ptr) \
140
{ \
141
VSF_HAL_ASSERT(eth_ptr != NULL); \
142
return vsf_remap_eth_recv_request(eth_ptr, buf_ptr); \
143
} \
144
vsf_err_t vsf_imp_eth_send_sg_request(vsf_imp_eth_t *eth_ptr, \
145
vsf_eth_send_sg_buf_desc_t *buf_ptr, uint32_t sg_count) \
146
{ \
147
VSF_HAL_ASSERT(eth_ptr != NULL); \
148
return vsf_remap_eth_send_sg_request(eth_ptr, buf_ptr, sg_count); \
149
} \
150
vsf_err_t vsf_imp_eth_recv_sg_request(vsf_imp_eth_t *eth_ptr, \
151
vsf_eth_recv_sg_buf_desc_t *buf_ptr, uint32_t sg_count) \
152
{ \
153
VSF_HAL_ASSERT(eth_ptr != NULL); \
154
return vsf_remap_eth_recv_sg_request(eth_ptr, buf_ptr, sg_count); \
155
} \
156
vsf_err_t vsf_imp_eth_ctrl(vsf_imp_eth_t *eth_ptr, \
157
vsf_eth_ctrl_t ctrl, void *param) \
158
{ \
159
VSF_HAL_ASSERT(eth_ptr != NULL); \
160
return vsf_remap_eth_ctrl(eth_ptr, ctrl, param); \
161
} \
162
vsf_eth_capability_t vsf_imp_eth_capability(vsf_imp_eth_t *eth_ptr) \
163
{ \
164
VSF_HAL_ASSERT(eth_ptr != NULL); \
165
return vsf_remap_eth_capability(eth_ptr); \
166
} \
167
vsf_err_t vsf_imp_eth_phy_read_reg(vsf_imp_eth_t *eth_ptr, \
168
uint16_t reg_addr, uint32_t *value_ptr) \
169
{ \
170
VSF_HAL_ASSERT(eth_ptr != NULL); \
171
return vsf_remap_eth_phy_read_reg(eth_ptr, reg_addr, value_ptr); \
172
} \
173
vsf_err_t vsf_imp_eth_phy_write_reg(vsf_imp_eth_t *eth_ptr, \
174
uint16_t reg_addr, uint32_t value) \
175
{ \
176
VSF_HAL_ASSERT(eth_ptr != NULL); \
177
return vsf_remap_eth_phy_write_reg(eth_ptr, reg_addr, value); \
178
} \
179
vsf_err_t vsf_imp_eth_phy_set_mode(vsf_imp_eth_t *eth_ptr, \
180
vsf_eth_mode_t mode) \
181
{ \
182
VSF_HAL_ASSERT(eth_ptr != NULL); \
183
return vsf_remap_eth_phy_set_mode(eth_ptr, mode); \
184
} \
185
vsf_err_t vsf_imp_eth_phy_get_link_status(vsf_imp_eth_t *eth_ptr, \
186
vsf_eth_mode_t * phy_mode_ptr) \
187
{ \
188
VSF_HAL_ASSERT(eth_ptr != NULL); \
189
return vsf_remap_eth_phy_get_link_status(eth_ptr, phy_mode_ptr); \
190
}
191
#endif
192
193
/*============================ GLOBAL VARIABLES ==============================*/
194
195
#define VSF_HAL_TEMPLATE_IMP_NAME _eth
196
#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME _ETH
197
198
#if !defined(VSF_ETH_CFG_IMP_PREFIX) && !defined(VSF_ETH_CFG_IMP_DEVICE_PREFIX)
199
# error "Please define VSF_ETH_CFG_IMP_PREFIX in eth driver"
200
#endif
201
202
#if !defined(VSF_ETH_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_ETH_CFG_IMP_DEVICE_UPCASE_PREFIX)
203
# error "Please define VSF_ETH_CFG_IMP_UPCASE_PREFIX in eth driver"
204
#endif
205
206
#ifndef VSF_ETH_CFG_IMP_COUNT_MASK_PREFIX
207
# define VSF_ETH_CFG_IMP_COUNT_MASK_PREFIX VSF_ETH_CFG_IMP_UPCASE_PREFIX
208
#endif
209
210
#ifdef VSF_ETH_CFG_IMP_REMAP_FUNCTIONS
211
# define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS VSF_ETH_CFG_IMP_REMAP_FUNCTIONS
212
#endif
213
214
#include "
hal/driver/common/template/vsf_template_instance_implementation.h
"
215
216
#undef VSF_ETH_CFG_IMP_PREFIX
217
#undef VSF_ETH_CFG_IMP_COUNT_MASK_PREFIX
218
#undef VSF_ETH_CFG_IMP_UPCASE_PREFIX
219
#undef VSF_ETH_CFG_IMP_DEVICE_PREFIX
220
#undef VSF_ETH_CFG_IMP_DEVICE_UPCASE_PREFIX
221
#undef VSF_ETH_CFG_IMP_LV0
222
#undef VSF_ETH_CFG_IMP_REMAP_FUNCTIONS
223
#undef VSF_ETH_CFG_IMP_HAS_OP
224
#undef VSF_ETH_CFG_IMP_EXTERN_OP
225
226
#undef vsf_imp_eth_t
227
#undef vsf_imp_eth_init
228
#undef vsf_imp_eth_fini
229
#undef vsf_imp_eth_enable
230
#undef vsf_imp_eth_disable
231
#undef vsf_imp_eth_status
232
#undef vsf_imp_eth_capability
233
#undef vsf_imp_eth_send_request
234
#undef vsf_imp_eth_recv_request
235
#undef vsf_imp_eth_send_sg_request
236
#undef vsf_imp_eth_recv_sg_request
237
#undef vsf_imp_eth_ctrl
238
#undef vsf_imp_eth_phy_read_reg
239
#undef vsf_imp_eth_phy_write_reg
240
#undef vsf_imp_eth_phy_set_mode
241
#undef vsf_imp_eth_phy_get_link_status
242
243
#undef vsf_remap_eth_t
244
#undef vsf_remap_eth_init
245
#undef vsf_remap_eth_fini
246
#undef vsf_remap_eth_enable
247
#undef vsf_remap_eth_disable
248
#undef vsf_remap_eth_status
249
#undef vsf_remap_eth_capability
250
#undef vsf_remap_eth_send_request
251
#undef vsf_remap_eth_recv_request
252
#undef vsf_remap_eth_send_sg_request
253
#undef vsf_remap_eth_recv_sg_request
254
#undef vsf_remap_eth_ctrl
255
#undef vsf_remap_eth_phy_read_reg
256
#undef vsf_remap_eth_phy_write_reg
257
#undef vsf_remap_eth_phy_set_mode
258
#undef vsf_remap_eth_phy_get_link_status
259
260
#endif
/* VSF_HAL_USE_ETH */
vsf_eth_capability_t
Predefined VSF ETH capability that can be reimplemented in specific hal drivers. The vsf_eth_capabili...
Definition
vsf_template_eth.h:596
vsf_template_instance_implementation.h
Generated from commit:
vsfteam/vsf@0c4049f