diff options
| author | lneto <lneto@NetBSD.org> | 2013-12-02 05:06:32 +0000 |
|---|---|---|
| committer | lneto <lneto@NetBSD.org> | 2013-12-02 05:06:32 +0000 |
| commit | 34574b1ce4e259b4bf2c81ddec95cacbdcaccce1 (patch) | |
| tree | cd2f6567619f4cc4750356dea054c8a12c58c7d4 /sys | |
| parent | 89baa79c31aa084cc18dd888ca410c79d4166848 (diff) | |
using Lua auxlib in luacore module
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/modules/luacore/luacore.c | 57 |
1 files changed, 24 insertions, 33 deletions
diff --git a/sys/modules/luacore/luacore.c b/sys/modules/luacore/luacore.c index 5eda5ae3c90..36a0ab160b6 100644 --- a/sys/modules/luacore/luacore.c +++ b/sys/modules/luacore/luacore.c @@ -1,4 +1,4 @@ -/* $NetBSD: luacore.c,v 1.4 2013/10/23 18:57:40 mbalmer Exp $ */ +/* $NetBSD: luacore.c,v 1.5 2013/12/02 05:06:32 lneto Exp $ */ /* * Copyright (c) 2011, 2013 Marc Balmer <mbalmer@NetBSD.org>. @@ -39,6 +39,7 @@ #include <sys/systm.h> #include <lua.h> +#include <lauxlib.h> #ifdef _MODULE MODULE(MODULE_CLASS_MISC, luacore, "lua"); @@ -156,43 +157,34 @@ core_panic(lua_State *L) /* mutexes */ -struct core_reg { - const char *n; - int (*f)(lua_State *); +static const luaL_Reg core_lib[ ] = { + { "print", print }, + { "print_nolog", print_nolog }, + { "uprint", uprint }, + { "aprint_normal", core_aprint_normal }, + { "aprint_naive", core_aprint_naive }, + { "aprint_verbose", core_aprint_verbose }, + { "aprint_debug", core_aprint_debug }, + { "aprint_error", core_aprint_error }, + { "aprint_get_error_count", core_aprint_get_error_count }, + + /* panicing */ + { "panic", core_panic }, + + /* callouts */ + + /* mutexes */ + + {NULL, NULL} }; + static int luaopen_core(void *ls) { lua_State *L = (lua_State *)ls; - int n, nfunc; - struct core_reg core[] = { - /* printing functions */ - { "print", print }, - { "print_nolog", print_nolog }, - { "uprint", uprint }, - { "aprint_normal", core_aprint_normal }, - { "aprint_naive", core_aprint_naive }, - { "aprint_verbose", core_aprint_verbose }, - { "aprint_debug", core_aprint_debug }, - { "aprint_error", core_aprint_error }, - { "aprint_get_error_count", core_aprint_get_error_count }, - - /* panicing */ - { "panic", core_panic }, - - /* callouts */ - - /* mutexes */ - }; - - nfunc = sizeof(core)/sizeof(core[1]); - - lua_createtable(L, nfunc, 0); - for (n = 0; n < nfunc; n++) { - lua_pushcfunction(L, core[n].f); - lua_setfield(L, -2, core[n].n); - } + + luaL_register(L, "core", core_lib); /* some string values */ lua_pushstring(L, copyright); @@ -216,7 +208,6 @@ luaopen_core(void *ls) lua_pushinteger(L, ncpu); lua_setfield(L, -2, "ncpu"); - lua_setglobal(L, "core"); return 1; } |
