diff options
-rw-r--r-- | utils/hwstub/tools/hwstub_shell.cpp | 14 | ||||
-rw-r--r-- | utils/hwstub/tools/init.lua | 7 |
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" |