From 16fa94bd8c1556d7aae3942293cba0a2f61e4ce7 Mon Sep 17 00:00:00 2001 From: Marcel Ritter Date: Mon, 15 Dec 2008 08:35:55 +0100 Subject: [PATCH] COM32: lua - added simple syslinux_run_command function --- com32/lua/src/Makefile | 1 + com32/lua/src/linit.c | 1 + com32/lua/src/lualib.h | 3 +++ com32/lua/src/syslinux.c | 29 +++++++++++++++++++++++++++++ com32/lua/test/syslinux.lua | 1 + 5 files changed, 35 insertions(+) create mode 100644 com32/lua/src/syslinux.c create mode 100644 com32/lua/test/syslinux.lua diff --git a/com32/lua/src/Makefile b/com32/lua/src/Makefile index f6b1b23..f9e0ab3 100644 --- a/com32/lua/src/Makefile +++ b/com32/lua/src/Makefile @@ -47,6 +47,7 @@ LNXLIBS = ../../libutil/libutil_lnx.a LIBLUA_OBJS := lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o LIBLUA_OBJS += lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o LIBLUA_OBJS += lstate.o lstring.o ltable.o ltm.o lvm.o lzio.o lundump.o +LIBLUA_OBJS += syslinux.o LIBLUA_OBJS += lauxlib.o lbaselib.o ldblib.o ltablib.o \ lstrlib.o loadlib.o linit.o diff --git a/com32/lua/src/linit.c b/com32/lua/src/linit.c index def297b..04d2b55 100644 --- a/com32/lua/src/linit.c +++ b/com32/lua/src/linit.c @@ -25,6 +25,7 @@ static const luaL_Reg lualibs[] = { {LUA_MATHLIBNAME, luaopen_math}, #endif {LUA_DBLIBNAME, luaopen_debug}, + {LUA_SYSLINUXLIBNAME, luaopen_syslinux}, {NULL, NULL} }; diff --git a/com32/lua/src/lualib.h b/com32/lua/src/lualib.h index 469417f..2aa9324 100644 --- a/com32/lua/src/lualib.h +++ b/com32/lua/src/lualib.h @@ -39,6 +39,9 @@ LUALIB_API int (luaopen_debug) (lua_State *L); #define LUA_LOADLIBNAME "package" LUALIB_API int (luaopen_package) (lua_State *L); +#define LUA_SYSLINUXLIBNAME "syslinux" +LUALIB_API int (luaopen_syslinux) (lua_State *L); + /* open all previous libraries */ LUALIB_API void (luaL_openlibs) (lua_State *L); diff --git a/com32/lua/src/syslinux.c b/com32/lua/src/syslinux.c new file mode 100644 index 0000000..8e88fb9 --- /dev/null +++ b/com32/lua/src/syslinux.c @@ -0,0 +1,29 @@ +#include +#include + +#define lnetlib_c /* Define the library */ + +#include "lua.h" +#include "lauxlib.h" +#include "lualib.h" + +static int sl_run_command(lua_State *L) +{ + const char *cmd = luaL_checkstring(L, 1); /* Reads the string parameter */ + syslinux_run_command(cmd); + return 0; +} + + +static const luaL_reg syslinuxlib[] = { + {"run_command", sl_run_command}, + {NULL, NULL} +}; + +/* This defines a function that opens up your library. */ + +LUALIB_API int luaopen_syslinux (lua_State *L) { + luaL_openlib(L, LUA_SYSLINUXLIBNAME, syslinuxlib, 0); + return 1; +} + diff --git a/com32/lua/test/syslinux.lua b/com32/lua/test/syslinux.lua new file mode 100644 index 0000000..3f72ebe --- /dev/null +++ b/com32/lua/test/syslinux.lua @@ -0,0 +1 @@ +syslinux.run_command("memdisk initrd=/dos/BIOS/FSC-P7935-108.img raw") -- 2.7.4