18#if VSF_HAL_USE_ETH == ENABLED
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#define vsf_real_eth_get_configuration VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_get_configuration)
27#ifndef VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY
28# define VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY DISABLED
31#ifndef VSF_ETH_CFG_REIMPLEMENT_API_GET_CONFIGURATION
32# define VSF_ETH_CFG_REIMPLEMENT_API_GET_CONFIGURATION DISABLED
35#ifdef VSF_ETH_CFG_IMP_REMAP_PREFIX
36# undef VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY
37# define VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY ENABLED
38# undef VSF_ETH_CFG_REIMPLEMENT_API_GET_CONFIGURATION
39# define VSF_ETH_CFG_REIMPLEMENT_API_GET_CONFIGURATION ENABLED
42#if VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
48#if VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
55 return eth_capability;
59#if VSF_ETH_CFG_REIMPLEMENT_API_GET_CONFIGURATION == DISABLED
74#undef VSF_ETH_CFG_REIMPLEMENT_API_CAPABILITY
75#undef VSF_ETH_CFG_REIMPLEMENT_API_GET_CONFIGURATION
78#undef vsf_real_eth_capability
79#undef vsf_real_eth_get_configuration
80#undef vsf_real_eth_phy_read_reg
81#undef vsf_real_eth_phy_write_reg
82#undef vsf_real_eth_phy_set_mode
83#undef vsf_real_eth_phy_get_link_status
87#ifdef VSF_ETH_CFG_IMP_REMAP_PREFIX
89# define vsf_imp_eth_t VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_t)
90# define vsf_imp_eth_init VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_init)
91# define vsf_imp_eth_fini VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_fini)
92# define vsf_imp_eth_enable VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_enable)
93# define vsf_imp_eth_disable VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_disable)
94# define vsf_imp_eth_capability VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_capability)
95# define vsf_imp_eth_status VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_status)
96# define vsf_imp_eth_send_request VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_send_request)
97# define vsf_imp_eth_recv_request VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_recv_request)
98# define vsf_imp_eth_send_sg_request VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_send_sg_request)
99# define vsf_imp_eth_recv_sg_request VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_recv_sg_request)
100# define vsf_imp_eth_ctrl VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_ctrl)
101# define vsf_imp_eth_phy_read_reg VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_phy_read_reg)
102# define vsf_imp_eth_phy_write_reg VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_phy_write_reg)
103# define vsf_imp_eth_phy_set_mode VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_phy_set_mode)
104# define vsf_imp_eth_phy_get_link_status VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_phy_get_link_status)
105# define vsf_imp_eth_get_configuration VSF_MCONNECT(VSF_ETH_CFG_IMP_PREFIX, _eth_get_configuration)
107# define vsf_remap_eth_t VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_t)
108# define vsf_remap_eth_init VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_init)
109# define vsf_remap_eth_fini VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_fini)
110# define vsf_remap_eth_enable VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_enable)
111# define vsf_remap_eth_disable VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_disable)
112# define vsf_remap_eth_capability VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_capability)
113# define vsf_remap_eth_status VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_status)
114# define vsf_remap_eth_send_request VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_send_request)
115# define vsf_remap_eth_recv_request VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_recv_request)
116# define vsf_remap_eth_send_sg_request VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_send_sg_request)
117# define vsf_remap_eth_recv_sg_request VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_recv_sg_request)
118# define vsf_remap_eth_ctrl VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_ctrl)
119# define vsf_remap_eth_phy_read_reg VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_phy_read_reg)
120# define vsf_remap_eth_phy_write_reg VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_phy_write_reg)
121# define vsf_remap_eth_phy_set_mode VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_phy_set_mode)
122# define vsf_remap_eth_phy_get_link_status VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_phy_get_link_status)
123# define vsf_remap_eth_get_configuration VSF_MCONNECT(VSF_ETH_CFG_IMP_REMAP_PREFIX, _eth_get_configuration)
125# define VSF_ETH_CFG_IMP_REMAP_FUNCTIONS \
126 vsf_err_t vsf_imp_eth_init(vsf_imp_eth_t *eth_ptr, vsf_eth_cfg_t *cfg_ptr) \
128 VSF_HAL_ASSERT(eth_ptr != NULL); \
129 return vsf_remap_eth_init(eth_ptr, cfg_ptr); \
131 void vsf_imp_eth_fini(vsf_imp_eth_t *eth_ptr) \
133 VSF_HAL_ASSERT(eth_ptr != NULL); \
134 vsf_remap_eth_fini(eth_ptr); \
136 fsm_rt_t vsf_imp_eth_enable(vsf_imp_eth_t *eth_ptr) \
138 VSF_HAL_ASSERT(eth_ptr != NULL); \
139 return vsf_remap_eth_enable(eth_ptr); \
141 fsm_rt_t vsf_imp_eth_disable(vsf_imp_eth_t *eth_ptr) \
143 VSF_HAL_ASSERT(eth_ptr != NULL); \
144 return vsf_remap_eth_disable(eth_ptr); \
146 vsf_eth_status_t vsf_imp_eth_status(vsf_imp_eth_t *eth_ptr) \
148 VSF_HAL_ASSERT(eth_ptr != NULL); \
149 return vsf_remap_eth_status(eth_ptr); \
151 vsf_eth_capability_t vsf_imp_eth_capability(vsf_imp_eth_t *eth_ptr) \
153 VSF_HAL_ASSERT(eth_ptr != NULL); \
154 return vsf_remap_eth_capability(eth_ptr); \
156 vsf_err_t vsf_imp_eth_send_request(vsf_imp_eth_t *eth_ptr, \
157 vsf_eth_send_buf_desc_t *buf_ptr) \
159 VSF_HAL_ASSERT(eth_ptr != NULL); \
160 return vsf_remap_eth_send_request(eth_ptr, buf_ptr); \
162 vsf_err_t vsf_imp_eth_recv_request(vsf_imp_eth_t *eth_ptr, \
163 vsf_eth_recv_buf_desc_t *buf_ptr) \
165 VSF_HAL_ASSERT(eth_ptr != NULL); \
166 return vsf_remap_eth_recv_request(eth_ptr, buf_ptr); \
168 vsf_err_t vsf_imp_eth_send_sg_request(vsf_imp_eth_t *eth_ptr, \
169 vsf_eth_send_sg_buf_desc_t *buf_ptr, uint32_t sg_count) \
171 VSF_HAL_ASSERT(eth_ptr != NULL); \
172 return vsf_remap_eth_send_sg_request(eth_ptr, buf_ptr, sg_count); \
174 vsf_err_t vsf_imp_eth_recv_sg_request(vsf_imp_eth_t *eth_ptr, \
175 vsf_eth_recv_sg_buf_desc_t *buf_ptr, uint32_t sg_count) \
177 VSF_HAL_ASSERT(eth_ptr != NULL); \
178 return vsf_remap_eth_recv_sg_request(eth_ptr, buf_ptr, sg_count); \
180 vsf_err_t vsf_imp_eth_ctrl(vsf_imp_eth_t *eth_ptr, \
181 vsf_eth_ctrl_t ctrl, void *param) \
183 VSF_HAL_ASSERT(eth_ptr != NULL); \
184 return vsf_remap_eth_ctrl(eth_ptr, ctrl, param); \
186 vsf_eth_capability_t vsf_imp_eth_capability(vsf_imp_eth_t *eth_ptr) \
188 VSF_HAL_ASSERT(eth_ptr != NULL); \
189 return vsf_remap_eth_capability(eth_ptr); \
191 vsf_err_t vsf_imp_eth_phy_read_reg(vsf_imp_eth_t *eth_ptr, \
192 uint16_t reg_addr, uint32_t *value_ptr) \
194 VSF_HAL_ASSERT(eth_ptr != NULL); \
195 return vsf_remap_eth_phy_read_reg(eth_ptr, reg_addr, value_ptr); \
197 vsf_err_t vsf_imp_eth_phy_write_reg(vsf_imp_eth_t *eth_ptr, \
198 uint16_t reg_addr, uint32_t value) \
200 VSF_HAL_ASSERT(eth_ptr != NULL); \
201 return vsf_remap_eth_phy_write_reg(eth_ptr, reg_addr, value); \
203 vsf_err_t vsf_imp_eth_phy_set_mode(vsf_imp_eth_t *eth_ptr, \
204 vsf_eth_mode_t mode) \
206 VSF_HAL_ASSERT(eth_ptr != NULL); \
207 return vsf_remap_eth_phy_set_mode(eth_ptr, mode); \
209 vsf_err_t vsf_imp_eth_phy_get_link_status(vsf_imp_eth_t *eth_ptr, \
210 vsf_eth_mode_t * phy_mode_ptr) \
212 VSF_HAL_ASSERT(eth_ptr != NULL); \
213 return vsf_remap_eth_phy_get_link_status(eth_ptr, phy_mode_ptr); \
216 vsf_err_t vsf_imp_eth_get_configuration(vsf_imp_eth_t *eth_ptr, \
217 vsf_eth_cfg_t *cfg_ptr) \
219 VSF_HAL_ASSERT(eth_ptr != NULL); \
220 return vsf_remap_eth_get_configuration(eth_ptr, cfg_ptr); \
226#define VSF_HAL_TEMPLATE_IMP_NAME _eth
227#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME _ETH
229#if !defined(VSF_ETH_CFG_IMP_PREFIX) && !defined(VSF_ETH_CFG_IMP_DEVICE_PREFIX)
230# error "Please define VSF_ETH_CFG_IMP_PREFIX in eth driver"
233#if !defined(VSF_ETH_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_ETH_CFG_IMP_DEVICE_UPCASE_PREFIX)
234# error "Please define VSF_ETH_CFG_IMP_UPCASE_PREFIX in eth driver"
237#ifndef VSF_ETH_CFG_IMP_COUNT_MASK_PREFIX
238# define VSF_ETH_CFG_IMP_COUNT_MASK_PREFIX VSF_ETH_CFG_IMP_UPCASE_PREFIX
241#ifdef VSF_ETH_CFG_IMP_REMAP_FUNCTIONS
242# define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS VSF_ETH_CFG_IMP_REMAP_FUNCTIONS
247#undef VSF_ETH_CFG_IMP_PREFIX
248#undef VSF_ETH_CFG_IMP_COUNT_MASK_PREFIX
249#undef VSF_ETH_CFG_IMP_UPCASE_PREFIX
250#undef VSF_ETH_CFG_IMP_DEVICE_PREFIX
251#undef VSF_ETH_CFG_IMP_DEVICE_UPCASE_PREFIX
252#undef VSF_ETH_CFG_IMP_LV0
253#undef VSF_ETH_CFG_IMP_REMAP_FUNCTIONS
254#undef VSF_ETH_CFG_IMP_HAS_OP
255#undef VSF_ETH_CFG_IMP_EXTERN_OP
258#undef vsf_imp_eth_init
259#undef vsf_imp_eth_fini
260#undef vsf_imp_eth_enable
261#undef vsf_imp_eth_disable
262#undef vsf_imp_eth_status
263#undef vsf_imp_eth_capability
264#undef vsf_imp_eth_send_request
265#undef vsf_imp_eth_recv_request
266#undef vsf_imp_eth_send_sg_request
267#undef vsf_imp_eth_recv_sg_request
268#undef vsf_imp_eth_ctrl
269#undef vsf_imp_eth_phy_read_reg
270#undef vsf_imp_eth_phy_write_reg
271#undef vsf_imp_eth_phy_set_mode
272#undef vsf_imp_eth_phy_get_link_status
273#undef vsf_imp_eth_get_configuration
275#undef vsf_remap_eth_t
276#undef vsf_remap_eth_init
277#undef vsf_remap_eth_fini
278#undef vsf_remap_eth_enable
279#undef vsf_remap_eth_disable
280#undef vsf_remap_eth_status
281#undef vsf_remap_eth_capability
282#undef vsf_remap_eth_send_request
283#undef vsf_remap_eth_recv_request
284#undef vsf_remap_eth_send_sg_request
285#undef vsf_remap_eth_recv_sg_request
286#undef vsf_remap_eth_ctrl
287#undef vsf_remap_eth_phy_read_reg
288#undef vsf_remap_eth_phy_write_reg
289#undef vsf_remap_eth_phy_set_mode
290#undef vsf_remap_eth_phy_get_link_status
291#undef vsf_remap_eth_get_configuration
vsf_err_t
Definition __type.h:42
@ VSF_ERR_NOT_SUPPORT
function not supported
Definition __type.h:46
#define NULL
Definition lvgl.h:26
Predefined VSF ETH capability that can be reimplemented in specific hal drivers. The vsf_eth_capabili...
Definition vsf_template_eth.h:597
ETH configuration structure.
Definition vsf_template_eth.h:557
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36