diff --git a/include/inc-core/eh.hpp b/include/inc-core/eh.hpp index 99cc954f89e0ac807c3e67a36ce61f79717eab16..de66dde36bce5125e6ac4611d8bf1af3087af5ed 100644 --- a/include/inc-core/eh.hpp +++ b/include/inc-core/eh.hpp @@ -21,6 +21,8 @@ namespace IRDB_SDK virtual void setCodeAlignmentFactor(const uint64_t caf) = 0; virtual void setDataAlignmentFactor(const int64_t daf) = 0; virtual void setReturnRegNumber (const uint8_t rr ) = 0; + virtual void setCIEProgram(const EhProgramListing_t& p) = 0; + virtual void setFDEProgram(const EhProgramListing_t& p) = 0; // helpers virtual void print() const = 0; diff --git a/include/inc-core/fileir.hpp b/include/inc-core/fileir.hpp index 3395ac320020459cfffeaf7749d65cbd81588f13..ee9c49232015b4e804988c9ea5947f04b74da53d 100644 --- a/include/inc-core/fileir.hpp +++ b/include/inc-core/fileir.hpp @@ -25,22 +25,23 @@ namespace IRDB_SDK virtual DataScoop_t* findScoop( const VirtualOffset_t &p_addr) const = 0; - virtual void setBaseIDS() = 0; - virtual void assembleRegistry() = 0; - virtual void registerAssembly(Instruction_t *p_instr, string p_assembly) = 0; - virtual void unregisterAssembly(Instruction_t *p_instr) = 0; - virtual string lookupAssembly(Instruction_t *p_instr) = 0; - virtual void changeRegistryKey( - Instruction_t* p_orig, Instruction_t* p_updated) = 0; - virtual void splitScoop( - DataScoop_t *p_to_split, - const VirtualOffset_t &p_addr, - size_t p_size, - DataScoop_t* &p_before, - DataScoop_t* &p_containing, - DataScoop_t* &p_after, - DatabaseID_t *p_max_id=NULL - ) = 0; + virtual void setAllEhPrograms(const EhProgramSet_t& new_pgms) = 0; + virtual void setBaseIDS() = 0; + virtual void assembleRegistry() = 0; + virtual void registerAssembly(Instruction_t *p_instr, string p_assembly) = 0; + virtual void unregisterAssembly(Instruction_t *p_instr) = 0; + virtual string lookupAssembly(Instruction_t *p_instr) = 0; + virtual void changeRegistryKey( + Instruction_t* p_orig, Instruction_t* p_updated) = 0; + virtual void splitScoop( + DataScoop_t *p_to_split, + const VirtualOffset_t &p_addr, + size_t p_size, + DataScoop_t* &p_before, + DataScoop_t* &p_containing, + DataScoop_t* &p_after, + DatabaseID_t *p_max_id=NULL + ) = 0; virtual void writeToDB(std::ostream *verbose_logging=&std::cerr) = 0; @@ -88,6 +89,7 @@ namespace IRDB_SDK virtual void removeScoop(DataScoop_t* s) = 0; virtual void moveRelocation(Relocation_t* reloc, Instruction_t* from, Instruction_t* to) = 0; + virtual EhProgram_t* copyEhProgram(const EhProgram_t& orig) = 0; // static methods