From 9cf92379d5fcf0076c25dae0935daab446c992cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Wed, 30 Aug 2017 21:37:53 +0200 Subject: Initial commit Adding work done so far. --- qtmips_machine/programloader.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 qtmips_machine/programloader.h (limited to 'qtmips_machine/programloader.h') diff --git a/qtmips_machine/programloader.h b/qtmips_machine/programloader.h new file mode 100644 index 0000000..058e5c1 --- /dev/null +++ b/qtmips_machine/programloader.h @@ -0,0 +1,28 @@ +#ifndef PROGRAM_H +#define PROGRAM_H + +#include +#include +#include +#include +#include + + +class ProgramLoader { +public: + ProgramLoader(char *file); + ~ProgramLoader(); + + size_t get_nsec(); // Returns number of loadable sections + std::uint32_t get_address(size_t sec); // Get target address for given section + std::vector get_data(size_t sec); // Returns bytes of given section +private: + int fd; + Elf *elf; + GElf_Ehdr hdr; // elf file header + size_t n_secs; // number of sections in elf program header + Elf32_Phdr *phdrs; // program section headers + std::vector map; // external index to phdrs index +}; + +#endif // PROGRAM_H -- cgit v1.2.3