summaryrefslogtreecommitdiff
path: root/src/elf_model/main.lem
diff options
context:
space:
mode:
Diffstat (limited to 'src/elf_model/main.lem')
-rw-r--r--src/elf_model/main.lem37
1 files changed, 19 insertions, 18 deletions
diff --git a/src/elf_model/main.lem b/src/elf_model/main.lem
index a7e7a709..501657cc 100644
--- a/src/elf_model/main.lem
+++ b/src/elf_model/main.lem
@@ -3,6 +3,7 @@ open import String
open import Tuple
open import Bitstring
+open import Default_printing
open import Error
open import Missing_pervasives
open import Show
@@ -11,31 +12,31 @@ open import Elf_header
open import Elf_file1
open import Elf_executable_file2
open import Elf_executable_file3
-open import Elf_executable_file4
-open import Elf_executable_file5
+open import Elf_linking_file2
+open import Elf_linking_file3
open import Sail_interface
-let default_os _ =
- "*Default OS specific print*"
-
-let default_proc _ =
- "*Default processor specific print*"
-
-let default_user _ =
- "*Default user specific print*"
-
let default_hdr_bdl =
- (default_os, default_proc)
+ (default_os_specific_print, default_proc_specific_print)
let default_pht_bdl =
- (default_os, default_proc)
+ (default_os_specific_print, default_proc_specific_print)
let default_sht_bdl =
- (default_os, default_proc, default_user)
+ (default_os_specific_print, default_proc_specific_print, default_user_specific_print)
let _ =
- let (chunks_addr, entry) = Sail_interface.populate "test/power64-executable-1" in
- let _ = Missing_pervasives.print ("Entry point: " ^ show entry) in
- let _ = Missing_pervasives.print ("#Chunks: " ^ show (List.length chunks_addr)) in
- () \ No newline at end of file
+ let res =
+ Bitstring.acquire "test/power64-executable-2" >>= fun bs0 ->
+ Elf_executable_file3.read_elf64_executable_file3 bs0 >>= fun f1 ->
+ Elf_executable_file3.get_elf64_symbol_table f1 >>= fun symtab ->
+ Elf_executable_file3.get_elf64_symbol_string_table f1 >>= fun strtab ->
+ Elf_symbol_table.get_elf64_symbol_image_address symtab strtab >>= fun strs ->
+ let _ = Missing_pervasives.print (show strs) in
+ return f1
+ in
+ match res with
+ | Fail err -> Missing_pervasives.print ("[!]: " ^ err)
+ | Success _ -> Missing_pervasives.print "Success..."
+ end