Skip to content

Latest commit

 

History

History
74 lines (58 loc) · 1.44 KB

File metadata and controls

74 lines (58 loc) · 1.44 KB

9. 虚拟机模块创建API


9.1 evm_native_fn函数声明

/**
 * @brief evm_native_fn函数声明
 * @param e,虚拟机参数
 * @param self,绑定的内置函数
 * @param vc, 函数参数个数
 * @param v,函数参数指针
 * @return 内置函数对象
 */
typedef evm_val_t (*evm_native_fn)(void * e, evm_val_t * self, 
                                   int vc, evm_val_t * v);

9.2 创建内置函数值

/**
 * @brief 创建内置函数值
 * @param n, 函数地址(evm_native_fn指针对象)
 * @return
 */
evm_val_t evm_mk_native(intptr_t n)

9.3 创建内置函数对象

/**
 * @brief 创建内置函数对象
 * @param e,虚拟机参数
 * @param fn,绑定的内置函数
 * @param prop_len,成员长度
 * @param attr_len,属性长度
 * @return 内置函数对象
 */
evm_val_t *evm_native_function_create(evm_t *e, evm_native_fn fn, 
                                      int attr_len);

9.4 添加内置函数列表

/**
 * @brief 添加内置函数列表
 * @param e,虚拟机
 * @param n,内置函数列表
 * @return 错误码
 */
evm_err_t evm_native_add(evm_t * e, evm_builtin_t * n);

9.5 创建指定名称的扩展模块

/**
 * @brief 创建指定名称的模块
 * @param e,虚拟机
 * @param name,名称
 * @param n,内置成员列表
 * @return 内置对象
 */
evm_val_t evm_module_create(evm_t * e, const char* name, evm_builtin_t *n);