From 575615c5a41592f3701853f90e1762c6dce4abe4 Mon Sep 17 00:00:00 2001 From: bloodstalker Date: Fri, 12 Jan 2018 18:36:46 +0330 Subject: you can now run objects that are loaded into bruiser from a shared library from lua. right now very simple examples work. i have to figure out how to handles runtime pointer recasts. --- bruiser/lua-scripts/demo1.lua | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'bruiser/lua-scripts/demo1.lua') diff --git a/bruiser/lua-scripts/demo1.lua b/bruiser/lua-scripts/demo1.lua index de83431..eb55acb 100644 --- a/bruiser/lua-scripts/demo1.lua +++ b/bruiser/lua-scripts/demo1.lua @@ -81,8 +81,34 @@ function codeTableByName(name) return nil end +function codeTableByName_number(name) + local return_table = {} + local func_name_table = objload("elf_get_func_names", "../bfd/test/test.so", "symbol_list") + local code_table = objload("elf_get_func_code", "../bfd/test/test.so", "code_list") + for k,v in ipairs(func_name_table) do + if v == name then + for k1, v1 in ipairs(code_table[k]) do + table.insert(return_table, v1) + end + return return_table + end + end + return nil +end + +function printFuncSizes() + local func_name_table = objload("elf_get_func_names", "../bfd/test/test.so", "symbol_list") + local code_table = objload("elf_get_func_code", "../bfd/test/test.so", "code_list") + local counter = 1 + print("function sizes:") + for k, v in ipairs(code_table) do + print("code size for "..func_name_table[counter].." is".." "..#v) + counter = counter + 1 + end +end + -- start of @placeholder -function XobjRegister(code_table, registration_name) +function xobjRegister(code_table, registration_name) -- lightuserdata local Xobjpointer return Xobjpointer @@ -110,6 +136,14 @@ function main() io.write(v, " ") end io.write("\n") + + local add2_code = codeTableByName_number("'add2'") + local sub2_code = codeTableByName_number("'sub2'") + + printFuncSizes() + + xobjregister(add2_code, "add2") + xobjregister(sub2_code, "sub2") end main() -- cgit v1.2.3