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