18#if VSF_HAL_USE_RNG == ENABLED
23#if defined(VSF_RNG_CFG_IMP_RENAME_DEVICE_PREFIX) && (VSF_RNG_CFG_IMP_RENAME_DEVICE_PREFIX == ENABLED)
24# define vsf_real_rng_t VSF_MCONNECT(VSF_RNG_CFG_IMP_DEVICE_PREFIX, _t)
25# define vsf_real_rng_capability VSF_MCONNECT(VSF_RNG_CFG_IMP_DEVICE_PREFIX, _capability)
26# define vsf_real_rng_ctrl VSF_MCONNECT(VSF_RNG_CFG_IMP_DEVICE_PREFIX, _ctrl)
28# define vsf_real_rng_t VSF_MCONNECT(VSF_RNG_CFG_IMP_PREFIX, _rng_t)
29# define vsf_real_rng_capability VSF_MCONNECT(VSF_RNG_CFG_IMP_PREFIX, _rng_capability)
30# define vsf_real_rng_ctrl VSF_MCONNECT(VSF_RNG_CFG_IMP_PREFIX, _rng_ctrl)
33#ifndef VSF_RNG_CFG_REIMPLEMENT_API_CAPABILITY
34# define VSF_RNG_CFG_REIMPLEMENT_API_CAPABILITY DISABLED
37#ifndef VSF_RNG_CFG_REIMPLEMENT_API_CTRL
38# define VSF_RNG_CFG_REIMPLEMENT_API_CTRL DISABLED
41#ifdef VSF_RNG_CFG_IMP_REMAP_PREFIX
42# undef VSF_RNG_CFG_REIMPLEMENT_API_CAPABILITY
43# define VSF_RNG_CFG_REIMPLEMENT_API_CAPABILITY ENABLED
44# undef VSF_RNG_CFG_REIMPLEMENT_API_CTRL
45# define VSF_RNG_CFG_REIMPLEMENT_API_CTRL ENABLED
55#if VSF_RNG_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
62 return rng_capability;
66#if VSF_RNG_CFG_REIMPLEMENT_API_CTRL == DISABLED
80#undef VSF_RNG_CFG_REIMPLEMENT_TYPE_CAPABILITY
81#undef VSF_RNG_CFG_REIMPLEMENT_TYPE_CTRL
82#undef VSF_RNG_CFG_REIMPLEMENT_API_CAPABILITY
83#undef VSF_RNG_CFG_REIMPLEMENT_API_CTRL
85#undef vsf_real_rng_capability
86#undef vsf_real_rng_ctrl
90#ifdef VSF_RNG_CFG_IMP_REMAP_PREFIX
92# define vsf_imp_rng_t VSF_MCONNECT(VSF_RNG_CFG_IMP_PREFIX, _rng_t)
93# define vsf_imp_rng_init VSF_MCONNECT(VSF_RNG_CFG_IMP_PREFIX, _rng_init)
94# define vsf_imp_rng_fini VSF_MCONNECT(VSF_RNG_CFG_IMP_PREFIX, _rng_fini)
95# define vsf_imp_rng_capability VSF_MCONNECT(VSF_RNG_CFG_IMP_PREFIX, _rng_capability)
96# define vsf_imp_rng_generate_request VSF_MCONNECT(VSF_RNG_CFG_IMP_PREFIX, _rng_generate_request)
97# define vsf_imp_rng_ctrl VSF_MCONNECT(VSF_RNG_CFG_IMP_PREFIX, _rng_ctrl)
99# define vsf_remap_rng_t VSF_MCONNECT(VSF_RNG_CFG_IMP_REMAP_PREFIX, _rng_t)
100# define vsf_remap_rng_init VSF_MCONNECT(VSF_RNG_CFG_IMP_REMAP_PREFIX, _rng_init)
101# define vsf_remap_rng_fini VSF_MCONNECT(VSF_RNG_CFG_IMP_REMAP_PREFIX, _rng_fini)
102# define vsf_remap_rng_capability VSF_MCONNECT(VSF_RNG_CFG_IMP_REMAP_PREFIX, _rng_capability)
103# define vsf_remap_rng_generate_request VSF_MCONNECT(VSF_RNG_CFG_IMP_REMAP_PREFIX, _rng_generate_request)
104# define vsf_remap_rng_ctrl VSF_MCONNECT(VSF_RNG_CFG_IMP_REMAP_PREFIX, _rng_ctrl)
106# define VSF_RNG_CFG_IMP_REMAP_FUNCTIONS \
107 vsf_err_t vsf_imp_rng_init(vsf_imp_rng_t *rng_ptr) \
109 VSF_HAL_ASSERT(rng_ptr != NULL); \
110 return vsf_remap_rng_init(rng_ptr); \
112 void vsf_imp_rng_fini(vsf_imp_rng_t *rng_ptr) \
114 VSF_HAL_ASSERT(rng_ptr != NULL); \
115 vsf_remap_rng_fini(rng_ptr); \
117 vsf_err_t vsf_imp_rng_generate_request(vsf_imp_rng_t *rng_ptr, \
118 uint32_t *buffer, uint32_t num, void *param, \
119 vsf_rng_on_ready_callback_t * on_ready_cb) \
121 VSF_HAL_ASSERT(rng_ptr != NULL); \
122 return vsf_remap_rng_generate_request(rng_ptr, buffer, num, param, on_ready_cb); \
124 vsf_rng_capability_t vsf_imp_rng_capability(vsf_imp_rng_t *rng_ptr) \
126 VSF_HAL_ASSERT(rng_ptr != NULL); \
127 return vsf_remap_rng_capability(rng_ptr); \
129 vsf_err_t vsf_imp_rng_ctrl(vsf_imp_rng_t *rng_ptr, vsf_rng_ctrl_t ctrl, void *param) \
131 VSF_HAL_ASSERT(rng_ptr != NULL); \
132 return vsf_remap_rng_ctrl(rng_ptr, ctrl, param); \
138#define VSF_HAL_TEMPLATE_IMP_NAME _rng
139#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME _RNG
141#if !defined(VSF_RNG_CFG_IMP_PREFIX) && !defined(VSF_RNG_CFG_IMP_DEVICE_PREFIX)
142# error "Please define VSF_RNG_CFG_IMP_PREFIX in rng driver"
145#if !defined(VSF_RNG_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_RNG_CFG_IMP_DEVICE_UPCASE_PREFIX)
146# error "Please define VSF_RNG_CFG_IMP_UPCASE_PREFIX in rng driver"
149#ifndef VSF_RNG_CFG_IMP_COUNT_MASK_PREFIX
150# define VSF_RNG_CFG_IMP_COUNT_MASK_PREFIX VSF_RNG_CFG_IMP_UPCASE_PREFIX
153#ifdef VSF_RNG_CFG_IMP_REMAP_FUNCTIONS
154# define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS VSF_RNG_CFG_IMP_REMAP_FUNCTIONS
159#undef VSF_RNG_CFG_IMP_PREFIX
160#undef VSF_RNG_CFG_IMP_COUNT_MASK_PREFIX
161#undef VSF_RNG_CFG_IMP_UPCASE_PREFIX
162#undef VSF_RNG_CFG_IMP_DEVICE_PREFIX
163#undef VSF_RNG_CFG_IMP_DEVICE_UPCASE_PREFIX
164#undef VSF_RNG_CFG_IMP_LV0
167#undef vsf_imp_rng_init
168#undef vsf_imp_rng_fini
169#undef vsf_imp_rng_capability
170#undef vsf_imp_rng_generate_request
171#undef vsf_imp_rng_ctrl
173#undef vsf_remap_rng_t
174#undef vsf_remap_rng_init
175#undef vsf_remap_rng_fini
176#undef vsf_remap_rng_capability
177#undef vsf_remap_rng_generate_request
178#undef vsf_remap_rng_ctrl
180#undef VSF_HAL_TEMPLATE_IMP_NAME
181#undef VSF_HAL_TEMPLATE_IMP_UPCASE_NAME
206#ifdef VSF_RNG_CFG_MODE_CHECK_UNIQUE
210#ifdef VSF_RNG_CUSTOM_MODE_VALUES
218#ifdef VSF_RNG_CFG_IRQ_MASK_CHECK_UNIQUE
220#ifdef VSF_RNG_CUSTOM_IRQ_MASK_VALUES
228#undef VSF_RNG_CFG_MODE_CHECK_UNIQUE
229#undef VSF_RNG_CFG_IRQ_MASK_CHECK_UNIQUE
230#undef VSF_RNG_CUSTOM_MODE_VALUES
231#undef VSF_RNG_CUSTOM_IRQ_MASK_VALUES
vsf_err_t
Definition __type.h:42
@ VSF_ERR_NOT_SUPPORT
function not supported
Definition __type.h:46
#define NULL
Definition lvgl.h:26
Definition vsf_template_rng.h:180
#define VSF_RNG_CFG_IRQ_MASK_CHECK_UNIQUE
Definition rng.c:152
#define VSF_RNG_CFG_MODE_CHECK_UNIQUE
Definition rng.c:151
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36
vsf_rng_ctrl_t
Predefined VSF RNG control commands that can be reimplemented in specific HAL drivers.
Definition vsf_template_rng.h:154
#define VSF_HAL_CHECK_UNIQUE_CUSTOM(__CHECK_FUNC,...)
Definition vsf_template_static_assert_unique.h:2426