VSF Documented
Data Structures | Macros | Typedefs | Functions
vsf_template_rng.h File Reference
#include "./vsf_template_hal_driver.h"
#include "hal/arch/vsf_arch.h"

Go to the source code of this file.

Data Structures

struct  vsf_rng_capability_t
 
struct  vsf_rng_op_t
 
struct  vsf_rng_t
 

Macros

#define VSF_RNG_CFG_MULTI_CLASS   ENABLED
 
#define VSF_RNG_CFG_PREFIX   vsf
 
#define VSF_RNG_CFG_FUNCTION_RENAME   ENABLED
 
#define VSF_RNG_CFG_REIMPLEMENT_TYPE_CFG   DISABLED
 
#define VSF_RNG_CFG_REIMPLEMENT_TYPE_CAPABILITY   DISABLED
 
#define VSF_RNG_CFG_INHERT_HAL_CAPABILITY   ENABLED
 
#define VSF_RNG_APIS(__prefix_name)
 
#define __VSF_HAL_TEMPLATE_API   VSF_HAL_TEMPLATE_API_FP
 
#define __vsf_rng_t   VSF_MCONNECT(VSF_RNG_CFG_PREFIX, _rng_t)
 
#define vsf_rng_init(__RNG, ...)   VSF_MCONNECT(VSF_RNG_CFG_PREFIX, _rng_init) ((__vsf_rng_t *)(__RNG), ##__VA_ARGS__)
 
#define vsf_rng_fini(__RNG)   VSF_MCONNECT(VSF_RNG_CFG_PREFIX, _rng_fini) ((__vsf_rng_t *)(__RNG))
 
#define vsf_rng_capability(__RNG)   VSF_MCONNECT(VSF_RNG_CFG_PREFIX, _rng_capability) ((__vsf_rng_t *)(__RNG))
 
#define vsf_rng_generate_request(__RNG, ...)   VSF_MCONNECT(VSF_RNG_CFG_PREFIX, _rng_generate_request) ((__vsf_rng_t *)(__RNG), ##__VA_ARGS__)
 

Typedefs

typedef struct vsf_rng_t vsf_rng_t
 
typedef void vsf_rng_on_ready_callback_t(void *param, uint32_t *buffer, uint32_t num)
 
typedef struct vsf_rng_capability_t vsf_rng_capability_t
 
typedef struct vsf_rng_op_t vsf_rng_op_t
 

Functions

vsf_err_t vsf_rng_init (vsf_rng_t *rng_ptr)
 initialize a rng instance.
 
void vsf_rng_fini (vsf_rng_t *rng_ptr)
 finalize a rng instance.
 
vsf_rng_capability_t vsf_rng_capability (vsf_rng_t *rng_ptr)
 get the capability of rng instance.
 
vsf_err_t vsf_rng_generate_request (vsf_rng_t *rng_ptr, uint32_t *buffer, uint32_t num, void *param, vsf_rng_on_ready_callback_t *on_ready_cb)
 rng generate request
 

Macro Definition Documentation

◆ VSF_RNG_CFG_MULTI_CLASS

#define VSF_RNG_CFG_MULTI_CLASS   ENABLED

◆ VSF_RNG_CFG_PREFIX

#define VSF_RNG_CFG_PREFIX   vsf

◆ VSF_RNG_CFG_FUNCTION_RENAME

#define VSF_RNG_CFG_FUNCTION_RENAME   ENABLED

◆ VSF_RNG_CFG_REIMPLEMENT_TYPE_CFG

#define VSF_RNG_CFG_REIMPLEMENT_TYPE_CFG   DISABLED

Redefine struct vsf_rng_cfg_t. The vsf_rng_isr_handler_t type also needs to be redefined For compatibility, members should not be deleted when struct vsf_rng_cfg_t redefining.

◆ VSF_RNG_CFG_REIMPLEMENT_TYPE_CAPABILITY

#define VSF_RNG_CFG_REIMPLEMENT_TYPE_CAPABILITY   DISABLED

Redefine struct vsf_rng_capability_t. For compatibility, members should not be deleted when struct vsf_rng_capability_t redefining.

◆ VSF_RNG_CFG_INHERT_HAL_CAPABILITY

#define VSF_RNG_CFG_INHERT_HAL_CAPABILITY   ENABLED

◆ VSF_RNG_APIS

#define VSF_RNG_APIS (   __prefix_name)
Value:
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, rng, init, VSF_MCONNECT(__prefix_name, _rng_t) *rng_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, void, rng, fini, VSF_MCONNECT(__prefix_name, _rng_t) *rng_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_rng_capability_t, rng, capability, VSF_MCONNECT(__prefix_name, _rng_t) *rng_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, rng, generate_request, VSF_MCONNECT(__prefix_name, _rng_t) *rng_ptr, \
uint32_t *buffer, uint32_t num, void *param, vsf_rng_on_ready_callback_t * on_ready_cb)
vsf_err_t
Definition __type.h:42
struct VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_t)
Definition flash.c:53
__le16 capability
Definition ieee80211.h:134
unsigned uint32_t
Definition stdint.h:9
Definition vsf_template_rng.h:92
void vsf_rng_on_ready_callback_t(void *param, uint32_t *buffer, uint32_t num)
Definition vsf_template_rng.h:90
#define __VSF_HAL_TEMPLATE_API
Definition vsf_template_rng.h:100

◆ __VSF_HAL_TEMPLATE_API

#define __VSF_HAL_TEMPLATE_API   VSF_HAL_TEMPLATE_API_FP

◆ __vsf_rng_t

#define __vsf_rng_t   VSF_MCONNECT(VSF_RNG_CFG_PREFIX, _rng_t)

◆ vsf_rng_init

#define vsf_rng_init (   __RNG,
  ... 
)    VSF_MCONNECT(VSF_RNG_CFG_PREFIX, _rng_init) ((__vsf_rng_t *)(__RNG), ##__VA_ARGS__)

◆ vsf_rng_fini

#define vsf_rng_fini (   __RNG)    VSF_MCONNECT(VSF_RNG_CFG_PREFIX, _rng_fini) ((__vsf_rng_t *)(__RNG))

◆ vsf_rng_capability

#define vsf_rng_capability (   __RNG)    VSF_MCONNECT(VSF_RNG_CFG_PREFIX, _rng_capability) ((__vsf_rng_t *)(__RNG))

◆ vsf_rng_generate_request

#define vsf_rng_generate_request (   __RNG,
  ... 
)    VSF_MCONNECT(VSF_RNG_CFG_PREFIX, _rng_generate_request) ((__vsf_rng_t *)(__RNG), ##__VA_ARGS__)

Typedef Documentation

◆ vsf_rng_t

typedef struct vsf_rng_t vsf_rng_t

◆ vsf_rng_on_ready_callback_t

typedef void vsf_rng_on_ready_callback_t(void *param, uint32_t *buffer, uint32_t num)

◆ vsf_rng_capability_t

◆ vsf_rng_op_t

typedef struct vsf_rng_op_t vsf_rng_op_t

Function Documentation

◆ vsf_rng_init()

vsf_err_t vsf_rng_init ( vsf_rng_t rng_ptr)
extern

initialize a rng instance.

Parameters
[in]rng_ptra pointer to structure vsf_rng_t
[in]cfg_ptra pointer to structure vsf_rng_cfg_t
Returns
vsf_err_t: VSF_ERR_NONE if rng was initialized, or a negative error code
Note
It is not necessary to call vsf_rng_fini() to deinitialization. vsf_rng_init() should be called before any other rng API except vsf_rng_capability().

◆ vsf_rng_fini()

void vsf_rng_fini ( vsf_rng_t rng_ptr)
extern

finalize a rng instance.

Parameters
[in]rng_ptra pointer to structure vsf_rng_t
Returns
none

◆ vsf_rng_capability()

vsf_rng_capability_t vsf_rng_capability ( vsf_rng_t rng_ptr)
extern

get the capability of rng instance.

Parameters
[in]rng_ptra pointer to structure vsf_rng_t
Returns
vsf_rng_capability_t: return all capability of current rng vsf_rng_capability_t

◆ vsf_rng_generate_request()

vsf_err_t vsf_rng_generate_request ( vsf_rng_t rng_ptr,
uint32_t buffer,
uint32_t  num,
void *  param,
vsf_rng_on_ready_callback_t on_ready_cb 
)
extern

rng generate request

Parameters
[in]rng_ptra pointer to structure vsf_rng_t
[in]bufferrng data buffer
[in]numthe length of rng data buffer
[in]paramcall back param
[in]on_ready_cbcall back
Returns
vsf_err_t: VSF_ERR_NONE if rng generate request was successfully, or a negative error code