From 39a4ce0387cb78a0bcd2c8ea943d4670a663de57 Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Thu, 28 Apr 2016 09:24:09 +0200 Subject: [PATCH] app_lua: added utils script to generate c functions for kemi exports --- modules/app_lua/utils/app_lua_ctl | 149 ++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100755 modules/app_lua/utils/app_lua_ctl diff --git a/modules/app_lua/utils/app_lua_ctl b/modules/app_lua/utils/app_lua_ctl new file mode 100755 index 00000000000..6a85943ddaf --- /dev/null +++ b/modules/app_lua/utils/app_lua_ctl @@ -0,0 +1,149 @@ +#!/bin/bash + +# generate the .h file + +KEMI_MAX_SIZE=1024 + +cat > ../app_lua_kemi_export.h < +#include +#include +#include "../../kemi.h" + +#define SR_KEMI_LUA_EXPORT_SIZE ${KEMI_MAX_SIZE} + +typedef struct sr_kemi_lua_export { + lua_CFunction pfunc; + sr_kemi_t *ket; +} sr_kemi_lua_export_t; + +sr_kemi_t *sr_kemi_lua_export_get(int idx); +lua_CFunction sr_kemi_lua_export_associate(sr_kemi_t *ket); + +#endif +EOF + +# generate the .c file + +cat > ../app_lua_kemi_export.c < +#include +#include + +#include +#include +#include + +#include "../../dprint.h" + +#include "app_lua_sr.h" +#include "app_lua_kemi_export.h" + +EOF + +CEND=${KEMI_MAX_SIZE} + +for (( c=0; c>../app_lua_kemi_export.c + echo "/**" >>../app_lua_kemi_export.c + echo " *" >>../app_lua_kemi_export.c + echo " */" >>../app_lua_kemi_export.c + echo "static int sr_kemi_lua_exec_func_${c}(lua_State *L)" >>../app_lua_kemi_export.c + echo "{" >>../app_lua_kemi_export.c + echo " return sr_kemi_lua_exec_func(L, ${c});" >>../app_lua_kemi_export.c + echo "}" >>../app_lua_kemi_export.c +done + +echo >>../app_lua_kemi_export.c +echo "/**" >>../app_lua_kemi_export.c +echo " *" >>../app_lua_kemi_export.c +echo " */" >>../app_lua_kemi_export.c + +echo "static sr_kemi_lua_export_t _sr_kemi_lua_export_list[] = {" >>../app_lua_kemi_export.c +for (( c=0; c>../app_lua_kemi_export.c +done +echo " {NULL, NULL}" >>../app_lua_kemi_export.c +echo "};" >>../app_lua_kemi_export.c + +cat >> ../app_lua_kemi_export.c <=SR_KEMI_LUA_EXPORT_SIZE) + return NULL; + return _sr_kemi_lua_export_list[idx].ket; +} + +/** + * + */ +lua_CFunction sr_kemi_lua_export_associate(sr_kemi_t *ket) +{ + int i; + for(i=0; i