56#ifndef VSF_HAL_TEMPLATE_IMP_RENAME_DEVICE_PREFIX
57# define VSF_HAL_TEMPLATE_IMP_RENAME_DEVICE_PREFIX VSF_MCONNECT(VSF, VSF_HAL_TEMPLATE_IMP_UPCASE_NAME, _CFG_IMP_RENAME_DEVICE_PREFIX)
61#ifndef VSF_HAL_TEMPLATE_IMP_UPCASE_PREFIX
62# define VSF_HAL_TEMPLATE_IMP_UPCASE_PREFIX VSF_MCONNECT(VSF, VSF_HAL_TEMPLATE_IMP_UPCASE_NAME, _CFG_IMP_UPCASE_PREFIX)
65#ifndef VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX
66# if VSF_HAL_TEMPLATE_IMP_RENAME_DEVICE_PREFIX == ENABLED
67# define VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX VSF_MCONNECT(VSF, VSF_HAL_TEMPLATE_IMP_UPCASE_NAME, _CFG_IMP_DEVICE_PREFIX)
69# define __VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX VSF_MCONNECT(VSF, VSF_HAL_TEMPLATE_IMP_UPCASE_NAME, _CFG_IMP_PREFIX)
70# define VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX VSF_MCONNECT(__VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX, VSF_HAL_TEMPLATE_IMP_NAME)
75#ifndef VSF_HAL_TEMPLATE_IMP_COUNT_MASK_PREFIX
76# if VSF_HAL_TEMPLATE_IMP_RENAME_DEVICE_PREFIX == ENABLED
77# define VSF_HAL_TEMPLATE_IMP_COUNT_MASK_PREFIX VSF_MCONNECT(VSF, VSF_HAL_TEMPLATE_IMP_UPCASE_NAME, _CFG_IMP_DEVICE_UPCASE_PREFIX)
79# define __VSF_HAL_TEMPLATE_IMP_COUNT_MASK_PREFIX VSF_MCONNECT(VSF, VSF_HAL_TEMPLATE_IMP_UPCASE_NAME, _CFG_IMP_COUNT_MASK_PREFIX)
80# define VSF_HAL_TEMPLATE_IMP_COUNT_MASK_PREFIX VSF_MCONNECT(__VSF_HAL_TEMPLATE_IMP_COUNT_MASK_PREFIX, VSF_HAL_TEMPLATE_IMP_UPCASE_NAME)
85#ifndef VSF_HAL_TEMPLATE_IMP_INSTANCE_PREFIX
86# define VSF_HAL_TEMPLATE_IMP_INSTANCE_PREFIX VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX
91#ifdef VSF_HAL_CFG_IMP_REMAP_FUNCTIONS
92VSF_HAL_CFG_IMP_REMAP_FUNCTIONS
97#ifndef VSF_HAL_TEMPLATE_IMP_MULTI_CLASS
99# define VSF_HAL_TEMPLATE_IMP_MULTI_CLASS VSF_MCONNECT(VSF_HAL_TEMPLATE_IMP_UPCASE_PREFIX, VSF_HAL_TEMPLATE_IMP_UPCASE_NAME, _CFG_MULTI_CLASS)
102#if VSF_HAL_TEMPLATE_IMP_MULTI_CLASS == ENABLED
104# ifndef VSF_HAL_TEMPLATE_IMP_HAS_OP
105# define VSF_HAL_TEMPLATE_IMP_HAS_OP VSF_MCONNECT(VSF, VSF_HAL_TEMPLATE_IMP_UPCASE_NAME, _CFG_IMP_HAS_OP)
107# if VSF_HAL_TEMPLATE_IMP_HAS_OP
109# define VSF_HAL_TEMPLATE_IMP_OP_VAR VSF_MCONNECT(VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX, _op)
111# define VSF_HAL_TEMPLATE_IMP_OP .VSF_MCONNECT(vsf, VSF_HAL_TEMPLATE_IMP_NAME).op = & VSF_HAL_TEMPLATE_IMP_OP_VAR,
113# ifndef VSF_HAL_TEMPLATE_IMP_EXTERN_OP
115# define VSF_HAL_TEMPLATE_IMP_EXTERN_OP VSF_MCONNECT(VSF, VSF_HAL_TEMPLATE_IMP_UPCASE_NAME, _CFG_IMP_EXTERN_OP)
117# if VSF_HAL_TEMPLATE_IMP_EXTERN_OP == DISABLED
119# define VSF_HAL_TEMPLATE_IMP_OP_VAR VSF_MCONNECT(__, VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX, _op)
120# define VSF_HAL_TEMPLATE_IMP_OP_ATR static
123# define VSF_HAL_TEMPLATE_IMP_OP_VAR VSF_MCONNECT(VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX, _op)
124# define VSF_HAL_TEMPLATE_IMP_OP_ATR
127# define VSF_HAL_TEMPLATE_IMP_OP .VSF_MCONNECT(vsf, VSF_HAL_TEMPLATE_IMP_NAME).op = & VSF_HAL_TEMPLATE_IMP_OP_VAR,
129# undef __VSF_HAL_TEMPLATE_API
130# define __VSF_HAL_TEMPLATE_API VSF_HAL_TEMPLATE_API_OP
132#ifndef VSF_HAL_TEMPLATE_IMP_OP_TYPE
134# define VSF_HAL_TEMPLATE_IMP_OP_TYPE VSF_MCONNECT(vsf, VSF_HAL_TEMPLATE_IMP_NAME, _op_t)
137#ifndef VSF_HAL_TEMPLATE_IMP_OP_MACRO
139# define VSF_HAL_TEMPLATE_IMP_OP_MACRO VSF_MCONNECT(VSF, VSF_HAL_TEMPLATE_IMP_UPCASE_NAME, _APIS)
157# define VSF_HAL_TEMPLATE_IMP_OP
162#ifndef VSF_HAL_TEMPLATE_IMP_COUNT_SUFFIX
163# define VSF_HAL_TEMPLATE_IMP_COUNT_SUFFIX _COUNT
166#ifndef VSF_HAL_TEMPLATE_IMP_MASK_SUFFIX
167# define VSF_HAL_TEMPLATE_IMP_MASK_SUFFIX _MASK
170#ifndef VSF_HAL_TEMPLATE_IMP_DEFINED_COUNT
172# define VSF_HAL_TEMPLATE_IMP_DEFINED_COUNT VSF_MCONNECT(VSF_HAL_TEMPLATE_IMP_COUNT_MASK_PREFIX, VSF_HAL_TEMPLATE_IMP_COUNT_SUFFIX)
175#ifndef VSF_HAL_TEMPLATE_IMP_DEFINED_MASK
177# define VSF_HAL_TEMPLATE_IMP_DEFINED_MASK VSF_MCONNECT(VSF_HAL_TEMPLATE_IMP_COUNT_MASK_PREFIX, VSF_HAL_TEMPLATE_IMP_MASK_SUFFIX)
180#if VSF_HAL_TEMPLATE_IMP_DEFINED_COUNT || VSF_HAL_TEMPLATE_IMP_DEFINED_MASK
181# if !defined(VSF_HAL_TEMPLATE_IMP_COUNT) && VSF_HAL_TEMPLATE_IMP_DEFINED_COUNT
182# define VSF_HAL_TEMPLATE_IMP_COUNT VSF_HAL_TEMPLATE_IMP_DEFINED_COUNT
185# if !defined(VSF_HAL_TEMPLATE_IMP_MASK) && VSF_HAL_TEMPLATE_IMP_DEFINED_MASK
186# define VSF_HAL_TEMPLATE_IMP_MASK VSF_HAL_TEMPLATE_IMP_DEFINED_MASK
189# if defined(VSF_HAL_TEMPLATE_IMP_MASK) && !defined(VSF_HAL_TEMPLATE_IMP_COUNT)
190# define VSF_HAL_TEMPLATE_IMP_COUNT VSF_HAL_MASK_TO_COUNT(VSF_HAL_TEMPLATE_IMP_MASK)
193# if defined(VSF_HAL_TEMPLATE_IMP_COUNT) && !defined(VSF_HAL_TEMPLATE_IMP_MASK)
194# define VSF_HAL_TEMPLATE_IMP_MASK VSF_HAL_COUNT_TO_MASK(VSF_HAL_TEMPLATE_IMP_COUNT)
209# define __VSF_HAL_TEMPLATE_MASK VSF_HAL_TEMPLATE_IMP_MASK
210# define __VSF_HAL_TEMPLATE_MACRO VSF_MCONNECT(VSF, VSF_HAL_TEMPLATE_IMP_UPCASE_NAME, _CFG_IMP_LV0)
211# define __VSF_HAL_TEMPLATE_ARG VSF_HAL_TEMPLATE_IMP_OP
222# if !defined(VSF_HAL_TEMPLATE_IMP_REMOVE_ARRAY)
223# ifndef VSF_HAL_TEMPLATE_IMP_INSTANCE_ARRAY
224# define VSF_HAL_TEMPLATE_IMP_INSTANCE_ARRAY VSF_MCONNECT(VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX, s)
226# ifndef VSF_HAL_TEMPLATE_IMP_INSTANCE_TYPE
227# define VSF_HAL_TEMPLATE_IMP_INSTANCE_TYPE VSF_MCONNECT(VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX, _t)
229VSF_HAL_TEMPLATE_IMP_INSTANCE_TYPE *
const VSF_HAL_TEMPLATE_IMP_INSTANCE_ARRAY[VSF_HAL_TEMPLATE_IMP_COUNT] = {
230# ifndef VSF_HAL_TEMPLATE_IMP_INSTANCE_ARRAY_ITEM
231# define VSF_HAL_TEMPLATE_IMP_INSTANCE_ARRAY_ITEM(__INDEX, __NULL) \
232 &VSF_MCONNECT(VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX, __INDEX),
235# define __VSF_HAL_TEMPLATE_MASK VSF_HAL_TEMPLATE_IMP_MASK
236# define __VSF_HAL_TEMPLATE_MACRO VSF_HAL_TEMPLATE_IMP_INSTANCE_ARRAY_ITEM
237# define __VSF_HAL_TEMPLATE_ARG VSF_HAL_TEMPLATE_IMP_OP
247#ifndef VSF_HAL_TEMPLATE_IMP_INSTANCE_INDEX_ARRAY
248# define VSF_HAL_TEMPLATE_IMP_INSTANCE_INDEX_ARRAY VSF_MCONNECT(VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX, _indexs)
250const uint8_t VSF_HAL_TEMPLATE_IMP_INSTANCE_INDEX_ARRAY[VSF_HAL_TEMPLATE_IMP_COUNT] = {
251# ifndef VSF_HAL_TEMPLATE_INDEX_ARRAY_ITEM
252# define VSF_HAL_TEMPLATE_INDEX_ARRAY_ITEM(__INDEX, __NULL) __INDEX,
254# define __VSF_HAL_TEMPLATE_MASK VSF_HAL_TEMPLATE_IMP_MASK
255# define __VSF_HAL_TEMPLATE_MACRO VSF_HAL_TEMPLATE_INDEX_ARRAY_ITEM
256# define __VSF_HAL_TEMPLATE_ARG VSF_HAL_TEMPLATE_IMP_OP
266#ifndef VSF_HAL_TEMPLATE_IMP_INSTANCE_NAME_ARRAY
267# define VSF_HAL_TEMPLATE_IMP_INSTANCE_NAME_ARRAY VSF_MCONNECT(VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX, _names)
269const char* VSF_HAL_TEMPLATE_IMP_INSTANCE_NAME_ARRAY[VSF_HAL_TEMPLATE_IMP_COUNT] = {
270# ifndef VSF_HAL_TEMPLATE_IMP_NAME_ARRAY_ITEM
271# undef __VSF_HAL_TEMPLATE_IMP_NAME_ARRAY_ITEM
272# define __VSF_HAL_TEMPLATE_IMP_NAME_ARRAY_ITEM(__INDEX, __ARG) \
274# define VSF_HAL_TEMPLATE_IMP_NAME_ARRAY_ITEM(__INDEX, __ARG) \
275 __VSF_HAL_TEMPLATE_IMP_NAME_ARRAY_ITEM(__INDEX, __ARG)
277# define __VSF_HAL_TEMPLATE_IMP_NAME_ARRAY_ITEM(__INDEX, __ARG) \
279# define VSF_HAL_TEMPLATE_IMP_NAME_ARRAY_ITEM(__INDEX, __ARG) \
280 __VSF_HAL_TEMPLATE_IMP_NAME_ARRAY_ITEM(__INDEX, __ARG)
281# define __VSF_HAL_TEMPLATE_MASK VSF_HAL_TEMPLATE_IMP_MASK
282# define __VSF_HAL_TEMPLATE_MACRO VSF_HAL_TEMPLATE_IMP_NAME_ARRAY_ITEM
283# define __VSF_HAL_TEMPLATE_ARG VSF_HAL_TEMPLATE_IMP_INSTANCE_PREFIX
299#ifndef VSF_HAL_TEMPLATE_IMP_INSTANCE_DEVICE_ARRAY
300# define VSF_HAL_TEMPLATE_IMP_INSTANCE_DEVICE_ARRAY VSF_MCONNECT(VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX, _devices)
302const vsf_hal_device_t VSF_HAL_TEMPLATE_IMP_INSTANCE_DEVICE_ARRAY[VSF_HAL_TEMPLATE_IMP_COUNT] = {
303# define __VSF_HAL_TEMPLATE_IMP_INSTANCE_DEVICE_ARRAY_ITEM(__INDEX, __ARG)\
304 { .pointer = &VSF_MCONNECT(__ARG, __INDEX), .name = # __ARG #__INDEX, },
305# define VSF_HAL_TEMPLATE_IMP_INSTANCE_DEVICE_ARRAY_ITEM(__INDEX, __ARG) \
306 __VSF_HAL_TEMPLATE_IMP_INSTANCE_DEVICE_ARRAY_ITEM(__INDEX, __ARG)
307# define __VSF_HAL_TEMPLATE_MASK VSF_HAL_TEMPLATE_IMP_MASK
308# define __VSF_HAL_TEMPLATE_MACRO VSF_HAL_TEMPLATE_IMP_INSTANCE_DEVICE_ARRAY_ITEM
309# define __VSF_HAL_TEMPLATE_ARG VSF_MCONNECT(VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX)
317#undef __VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX
318#undef VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX
319#undef __VSF_HAL_TEMPLATE_IMP_COUNT_MASK_PREFIX
320#undef VSF_HAL_TEMPLATE_IMP_COUNT_MASK_PREFIX
322#undef VSF_HAL_TEMPLATE_IMP_RENAME_LV0_PREFIX
323#undef VSF_HAL_TEMPLATE_IMP_RENAME_DEVICE_PREFIX
324#undef VSF_HAL_TEMPLATE_IMP_NAME
325#undef VSF_HAL_TEMPLATE_IMP_UPCASE_NAME
326#undef VSF_HAL_TEMPLATE_IMP_INSTANCE_PREFIX
327#undef VSF_HAL_TEMPLATE_IMP_UPCASE_PREFIX
328#undef VSF_HAL_TEMPLATE_IMP_REMAP_PREFIX
329#undef VSF_HAL_TEMPLATE_IMP_INSTANCE_TYPE
330#undef VSF_HAL_TEMPLATE_IMP_INSTANCE_ARRAY
331#undef VSF_HAL_TEMPLATE_IMP_INSTANCE_ARRAY_ITEM
332#undef VSF_HAL_TEMPLATE_INDEX_ARRAY_ITEM
333#undef VSF_HAL_TEMPLATE_IMP_INSTANCE_INDEX_ARRAY
334#undef VSF_HAL_TEMPLATE_IMP_INSTANCE_NAME_ARRAY
335#undef VSF_HAL_TEMPLATE_IMP_EXTERN_OP
336#undef VSF_HAL_TEMPLATE_IMP_COUNT
337#undef VSF_HAL_TEMPLATE_IMP_MASK
338#undef VSF_HAL_TEMPLATE_IMP_COUNT_MASK_PREFIX
339#undef VSF_HAL_TEMPLATE_IMP_COUNT_SUFFIX
340#undef VSF_HAL_TEMPLATE_IMP_MASK_SUFFIX
341#undef VSF_HAL_TEMPLATE_IMP_DEFINED_COUNT
342#undef VSF_HAL_TEMPLATE_IMP_DEFINED_MASK
343#undef VSF_HAL_TEMPLATE_IMP_LV0
344#undef VSF_HAL_TEMPLATE_IMP_MULTI_CLASS
345#undef VSF_HAL_TEMPLATE_IMP_HAS_OP
346#undef VSF_HAL_TEMPLATE_IMP_OP_TYPE
347#undef VSF_HAL_TEMPLATE_IMP_OP_MACRO
348#undef VSF_HAL_TEMPLATE_IMP_OP_VAR
349#undef VSF_HAL_TEMPLATE_IMP_OP
350#undef VSF_HAL_TEMPLATE_IMP_REMOVE_ARRAY
351#undef VSF_HAL_TEMPLATE_IMP_OP_ATR
unsigned char uint8_t
Definition stdint.h:5
Definition vsf_template_hal_driver.h:183
#define VSF_HAL_TEMPLATE_IMP_OP_VAR
Definition vsf_template_instance_implementation.h:119
#define VSF_HAL_TEMPLATE_IMP_OP_MACRO
Definition vsf_template_instance_implementation.h:139
#define VSF_HAL_TEMPLATE_IMP_DEVICE_PREFIX
Definition vsf_template_instance_implementation.h:67
#define VSF_HAL_TEMPLATE_IMP_OP_ATR
Definition vsf_template_instance_implementation.h:120
#define VSF_HAL_TEMPLATE_IMP_OP_TYPE
Definition vsf_template_instance_implementation.h:134