diff options
Diffstat (limited to 'utils/hwstub/tools/hwstub_shell.cpp')
-rw-r--r-- | utils/hwstub/tools/hwstub_shell.cpp | 14 |
1 files changed, 14 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 @@ | |||
27 | #include <readline/readline.h> | 27 | #include <readline/readline.h> |
28 | #include <readline/history.h> | 28 | #include <readline/history.h> |
29 | #include <lua.hpp> | 29 | #include <lua.hpp> |
30 | #include <unistd.h> | ||
30 | #include "soc_desc.hpp" | 31 | #include "soc_desc.hpp" |
31 | 32 | ||
32 | #if LUA_VERSION_NUM < 502 | 33 | #if LUA_VERSION_NUM < 502 |
@@ -244,6 +245,16 @@ int my_lua_quit(lua_State *state) | |||
244 | return 0; | 245 | return 0; |
245 | } | 246 | } |
246 | 247 | ||
248 | int my_lua_udelay(lua_State *state) | ||
249 | { | ||
250 | int n = lua_gettop(state); | ||
251 | if(n != 1) | ||
252 | luaL_error(state, "udelay takes one argument"); | ||
253 | long usec = lua_tointeger(state, -1); | ||
254 | usleep(usec); | ||
255 | return 0; | ||
256 | } | ||
257 | |||
247 | bool my_lua_import_hwstub() | 258 | bool my_lua_import_hwstub() |
248 | { | 259 | { |
249 | int oldtop = lua_gettop(g_lua); | 260 | int oldtop = lua_gettop(g_lua); |
@@ -377,6 +388,9 @@ bool my_lua_import_hwstub() | |||
377 | lua_settable(g_lua, -3); | 388 | lua_settable(g_lua, -3); |
378 | lua_setfield(g_lua, -2, "help"); | 389 | lua_setfield(g_lua, -2, "help"); |
379 | 390 | ||
391 | lua_pushcclosure(g_lua, my_lua_udelay, 0); | ||
392 | lua_setfield(g_lua, -2, "udelay"); | ||
393 | |||
380 | lua_setglobal(g_lua, "hwstub"); | 394 | lua_setglobal(g_lua, "hwstub"); |
381 | 395 | ||
382 | lua_pushcfunction(g_lua, my_lua_help); | 396 | lua_pushcfunction(g_lua, my_lua_help); |