summaryrefslogtreecommitdiff
path: root/utils/hwstub/tools/lua/hwlib.lua
diff options
context:
space:
mode:
Diffstat (limited to 'utils/hwstub/tools/lua/hwlib.lua')
-rw-r--r--utils/hwstub/tools/lua/hwlib.lua27
1 files changed, 27 insertions, 0 deletions
diff --git a/utils/hwstub/tools/lua/hwlib.lua b/utils/hwstub/tools/lua/hwlib.lua
new file mode 100644
index 0000000..5bbd1e2
--- /dev/null
+++ b/utils/hwstub/tools/lua/hwlib.lua
@@ -0,0 +1,27 @@
+HWLIB = {}
+
+local h = HELP:create_topic("HWLIB")
+h:add("This table contains helper functions for use inside hwstub_shell")
+
+local hh = h:create_topic("load_blob")
+hh:add("load_blob(filename, address) -- this function loads raw binary blob from the file filename")
+hh:add(" at specified address in memory. No cache coherency is")
+hh:add(" guaranteed")
+
+hh = h:create_topic("printf")
+hh:add("printf(s,...) -- this function is simple wrapper around string.format to emulate")
+hh:add(" C printf() function")
+
+function HWLIB.load_blob(filename, address)
+ local f = assert(io.open(filename, "rb"))
+ local bytes = f:read("*all")
+ for b in string.gmatch(bytes, ".") do
+ DEV.write8(address, string.byte(b))
+ address = address + 1
+ end
+ io.close(f)
+end
+
+function HWLIB.printf(s,...)
+ return io.write(s:format(...))
+end