From 5b865de73afc6e577187e6ccd545749351a02c37 Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Tue, 24 Dec 2013 15:24:40 +0100 Subject: hwstub: add delay function Change-Id: Iab208ed59a9a2540a64b190357411d3de28f288e --- utils/hwstub/tools/hwstub_shell.cpp | 14 ++++++++++++++ utils/hwstub/tools/init.lua | 7 +++++++ 2 files changed, 21 insertions(+) (limited to 'utils/hwstub') 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 #include #include +#include #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" -- cgit v1.2.3