summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2013-12-24 15:24:40 +0100
committerAmaury Pouly <amaury.pouly@gmail.com>2013-12-24 15:24:40 +0100
commit5b865de73afc6e577187e6ccd545749351a02c37 (patch)
tree5b92b399ecc295ac70f8ce4cda71e9b3b395244d
parent1dc91b4560fb296509cdda81ab32276c7d653ecd (diff)
downloadrockbox-5b865de73afc6e577187e6ccd545749351a02c37.tar.gz
rockbox-5b865de73afc6e577187e6ccd545749351a02c37.zip
hwstub: add delay function
Change-Id: Iab208ed59a9a2540a64b190357411d3de28f288e
-rw-r--r--utils/hwstub/tools/hwstub_shell.cpp14
-rw-r--r--utils/hwstub/tools/init.lua7
2 files changed, 21 insertions, 0 deletions
diff --git a/utils/hwstub/tools/hwstub_shell.cpp b/utils/hwstub/tools/hwstub_shell.cpp
index d70fd6dc06..2a3fc177ed 100644
--- a/utils/hwstub/tools/hwstub_shell.cpp
+++ b/utils/hwstub/tools/hwstub_shell.cpp
@@ -27,6 +27,7 @@
#include <readline/readline.h>
#include <readline/history.h>
#include <lua.hpp>
+#include <unistd.h>
#include "soc_desc.hpp"
#if LUA_VERSION_NUM < 502
@@ -244,6 +245,16 @@ int my_lua_quit(lua_State *state)
return 0;
}
+int my_lua_udelay(lua_State *state)
+{
+ int n = lua_gettop(state);
+ if(n != 1)
+ luaL_error(state, "udelay takes one argument");
+ long usec = lua_tointeger(state, -1);
+ usleep(usec);
+ return 0;
+}
+
bool my_lua_import_hwstub()
{
int oldtop = lua_gettop(g_lua);
@@ -377,6 +388,9 @@ bool my_lua_import_hwstub()
lua_settable(g_lua, -3);
lua_setfield(g_lua, -2, "help");
+ lua_pushcclosure(g_lua, my_lua_udelay, 0);
+ lua_setfield(g_lua, -2, "udelay");
+
lua_setglobal(g_lua, "hwstub");
lua_pushcfunction(g_lua, my_lua_help);
diff --git a/utils/hwstub/tools/init.lua b/utils/hwstub/tools/init.lua
index 74f610a2ee..4c62de007f 100644
--- a/utils/hwstub/tools/init.lua
+++ b/utils/hwstub/tools/init.lua
@@ -108,4 +108,11 @@ end
--
DEV = hwstub.dev
+--
+-- Misc
+--
+function hwstub.mdelay(msec)
+ hwstub.udelay(msec * 1000)
+end
+
require "lua/load"