summaryrefslogtreecommitdiff
path: root/utils/hwstub/tools/hwstub_shell.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/hwstub/tools/hwstub_shell.cpp')
-rw-r--r--utils/hwstub/tools/hwstub_shell.cpp14
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
248int 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
247bool my_lua_import_hwstub() 258bool 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);