COM32: lua - added simple syslinux_run_command function
authorMarcel Ritter <unrzl1@linux.rrze.uni-erlangen.de>
Mon, 15 Dec 2008 07:35:55 +0000 (08:35 +0100)
committerMarcel Ritter <unrzl1@linux.rrze.uni-erlangen.de>
Mon, 15 Dec 2008 07:35:55 +0000 (08:35 +0100)
com32/lua/src/Makefile
com32/lua/src/linit.c
com32/lua/src/lualib.h
com32/lua/src/syslinux.c [new file with mode: 0644]
com32/lua/test/syslinux.lua [new file with mode: 0644]

index f6b1b23..f9e0ab3 100644 (file)
@@ -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
index def297b..04d2b55 100644 (file)
@@ -25,6 +25,7 @@ static const luaL_Reg lualibs[] = {
   {LUA_MATHLIBNAME, luaopen_math},
 #endif
   {LUA_DBLIBNAME, luaopen_debug},
+  {LUA_SYSLINUXLIBNAME, luaopen_syslinux},
   {NULL, NULL}
 };
 
index 469417f..2aa9324 100644 (file)
@@ -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 (file)
index 0000000..8e88fb9
--- /dev/null
@@ -0,0 +1,29 @@
+#include <stdlib.h>
+#include <string.h>
+
+#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 (file)
index 0000000..3f72ebe
--- /dev/null
@@ -0,0 +1 @@
+syslinux.run_command("memdisk initrd=/dos/BIOS/FSC-P7935-108.img raw")