From 427af56cd267b8bbdd85368de0e67743127b3492 Mon Sep 17 00:00:00 2001
From: jdh8d <jdh8d@git.zephyr-software.com>
Date: Sun, 21 Feb 2016 01:05:34 +0000
Subject: [PATCH] first draft of unpinning

---
 include/zipr.h | 29 ++++++-----------------------
 1 file changed, 6 insertions(+), 23 deletions(-)

diff --git a/include/zipr.h b/include/zipr.h
index f473c52..5dccca2 100644
--- a/include/zipr.h
+++ b/include/zipr.h
@@ -33,38 +33,20 @@
 
 #include <memory_space.h>
 #include <dollop_man.h>
+#include <set>
+#include <utility>
 
 
 namespace Zipr_SDK
 {
 
+typedef std::set< std::pair<Dollop_t*,RangeAddress_t> > PlacementQueue_t;
+
 class Zipr_t
 {
-	protected:
-		/*
-		 * Private, but listing them here so that SDK users
-		 * can get a sense of the overall flow of the rewriter.
-		 */
-		virtual void FindFreeRanges(const std::string &name) = 0;
-		virtual void AddPinnedInstructions() = 0;
-		virtual void ReservePinnedInstructions() = 0;
-		virtual void PreReserve2ByteJumpTargets() = 0;
-		virtual void ExpandPinnedInstructions() = 0;
-		virtual void Fix2BytePinnedInstructions() = 0;
-		virtual void CreateDollops() = 0;
-		virtual void PlaceDollops() = 0;
-		virtual void WriteDollops() = 0;
-		virtual void UpdatePins() = 0;
-		virtual void OptimizePinnedInstructions() = 0;
-		virtual void AskPluginsAboutPlopping() = 0;
-		virtual void UpdateCallbacks() = 0;
-		virtual void PrintStats() = 0;
-		virtual void RecordPinnedInsnAddrs() = 0;
-	
 	public:
 		/*
-		 * These are public functions that the SDK user
-		 * way want to use.
+		 * These are public functions that the SDK user way want to use.
 		 */
 		virtual int DetermineWorstCaseInsnSize(libIRDB::Instruction_t*, bool account_for_jump = true) = 0;
 
@@ -89,6 +71,7 @@ class Zipr_t
         	virtual libIRDB::FileIR_t *GetFileIR()=0;
         	virtual Zipr_SDK::InstructionLocationMap_t *GetLocationMap()=0; 
 		virtual Zipr_SDK::DollopManager_t *GetDollopManager()=0;
+		virtual Zipr_SDK::PlacementQueue_t* GetPlacementQueue()=0;
 };
 
 };
-- 
GitLab