From fc5f9496fde5728597bd38896c3e51be08c6203c Mon Sep 17 00:00:00 2001
From: Jason Hiser <jdhiser@gmail.com>
Date: Sun, 27 Jan 2019 14:16:48 -0500
Subject: [PATCH] new api calls

---
 include/inc-core/eh.hpp     |  2 ++
 include/inc-core/fileir.hpp | 34 ++++++++++++++++++----------------
 2 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/include/inc-core/eh.hpp b/include/inc-core/eh.hpp
index 99cc954..de66dde 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 3395ac3..ee9c492 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
-- 
GitLab