Mudos扩展efunc,packages方式
首先packages目录建好C文件
我们这里测试了一个mongodb的
mongodb_spec.c
mongodb.h
mongodb.c
这里具体的代码可以参考packages目录下的其他efunc的结构,一样就行了
mongodb_spec.c 是定义导出函数的
为了可以控制自己开发的efunc是否被启用还需要到option.h 去定义个宏 我这里用的是#define PACKAGE_MONGODB
然后重新编译一下edit_source 就在其他地方自动生成想关联的导出数据了,被自动生成的几个文件efun_protos.h efunction.h opcodes.h
然后就可以在mongodb.c编写代码了
mongodb.c的代码
#ifdef LATTICE #else #include "../std.h" #include "../lpc_incl.h" #include "../debug.h" #include "../comm.h" #endif #ifdef PACKAGE_MONGODB #ifdef F_MGDB_CONNECT void f_mgdb_connect PROT((void)) { int fd, num_arg = st_num_arg; // svalue_t *arg = sp - 1; char str[] = {"char"}; debug_message(" <f_mgdb_connect> port %d, %s string2:%s %s ", (sp-2)->u.number, str,(sp-1)->u.string,sp->u.string); pop_n_elems(num_arg); push_malloced_string("test!!"); } #endif #endif