diff --git a/lispBM/c_libs/lbm_if.h b/lispBM/c_libs/lbm_if.h index b7830249..03b71b4a 100755 --- a/lispBM/c_libs/lbm_if.h +++ b/lispBM/c_libs/lbm_if.h @@ -27,6 +27,7 @@ typedef uint32_t lbm_value; typedef uint32_t lbm_type; +typedef uint32_t lbm_cid; typedef uint32_t lbm_uint; typedef int32_t lbm_int; diff --git a/lispBM/c_libs/vesc_c_if.h b/lispBM/c_libs/vesc_c_if.h index 6c6dd5db..4a1bf402 100755 --- a/lispBM/c_libs/vesc_c_if.h +++ b/lispBM/c_libs/vesc_c_if.h @@ -279,6 +279,14 @@ typedef struct { bool (*uart_start)(uint32_t baudrate, bool half_duplex); bool (*uart_write)(uint8_t *data, uint32_t size); int32_t (*uart_read)(void); + + // LBM + char* (*lbm_dec_str)(lbm_value); + int (*lbm_add_symbol_const)(char *, lbm_uint *); + void (*lbm_block_ctx_from_extension)(void); + bool (*lbm_unblock_ctx)(lbm_cid, lbm_value); + lbm_cid (*lbm_get_current_cid)(void); + } vesc_c_if; typedef struct { diff --git a/lispBM/lispif_c_lib.c b/lispBM/lispif_c_lib.c index 5f398b65..68806a60 100644 --- a/lispBM/lispif_c_lib.c +++ b/lispBM/lispif_c_lib.c @@ -486,6 +486,13 @@ lbm_value ext_load_native_lib(lbm_value *args, lbm_uint argn) { cif.cif.uart_write = lib_uart_write; cif.cif.uart_read = lib_uart_read; + //LBM + cif.cif.lbm_dec_str = lbm_dec_str; + cif.cif.lbm_add_symbol_const = lbm_add_symbol_const; + cif.cif.lbm_block_ctx_from_extension = lbm_block_ctx_from_extension; + cif.cif.lbm_unblock_ctx = lbm_unblock_ctx; + cif.cif.lbm_get_current_cid = lbm_get_current_cid; + lib_init_done = true; }