diff --git a/include/private-include/dollop.h b/include/private-include/dollop.h index 0903bf33e06b0a8dd06e4c486e9927b8f7cb553f..f6bbef6623cab1a454ae021e6098242a6cc36117 100644 --- a/include/private-include/dollop.h +++ b/include/private-include/dollop.h @@ -8,6 +8,10 @@ namespace Zipr_SDK class Dollop_t; class DollopManager_t; + class DollopEntry_t; + + using DollopEntryList_t = list<DollopEntry_t*>; + class Placeable_t { @@ -15,9 +19,9 @@ namespace Zipr_SDK Placeable_t() {} Placeable_t(const Placeable_t& copy) = delete; public: - virtual void Place(RangeAddress_t place) = 0; - virtual RangeAddress_t getPlace() const = 0; - virtual bool isPlaced() const = 0; + virtual void Place(RangeAddress_t place) = 0; + virtual RangeAddress_t getPlace() const = 0; + virtual bool isPlaced() const = 0; friend ostream &operator<<(ostream &, const Placeable_t &); }; @@ -42,11 +46,12 @@ namespace Zipr_SDK DollopEntry_t() { } DollopEntry_t(const DollopEntry_t& copy) = delete; public: - virtual Instruction_t *getInstruction() const = 0 ; - virtual void setTargetDollop(Dollop_t *target) = 0 ; - virtual Dollop_t *getTargetDollop() const = 0 ; - virtual Dollop_t *getMemberOfDollop() const = 0 ; - virtual void MemberOfDollop(Dollop_t *member_of) = 0 ; + virtual void setTargetDollop(Dollop_t *target) = 0 ; + virtual void MemberOfDollop(Dollop_t *member_of) = 0 ; + + virtual Instruction_t* getInstruction() const = 0 ; + virtual Dollop_t* getTargetDollop() const = 0 ; + virtual Dollop_t* getMemberOfDollop() const = 0 ; virtual bool operator==(const DollopEntry_t &); virtual bool operator!=(const DollopEntry_t &); @@ -54,7 +59,6 @@ namespace Zipr_SDK friend ostream &operator<<(ostream &, const DollopEntry_t &); }; - using DollopEntryList_t = list<DollopEntry_t*>; class Dollop_t : virtual public Placeable_t, virtual public DollopEntryList_t { @@ -63,36 +67,28 @@ namespace Zipr_SDK Dollop_t(const Dollop_t& copy) = delete; public: - static Dollop_t *createNewDollop(IRDB_SDK::Instruction_t *start, DollopManager_t *mgr = NULL); - - virtual void setDollopManager(DollopManager_t *mgr) = 0 ; - - virtual size_t getSize() const = 0; - virtual void setSize(size_t size) = 0; - virtual size_t getDollopEntryCount() const = 0; - - virtual Dollop_t *split(IRDB_SDK::Instruction_t *split_point) = 0 ; - virtual void removeDollopEntries(list<DollopEntry_t*>::iterator, list<DollopEntry_t*>::iterator) = 0; - - - virtual void setFallbackDollop(Dollop_t *fallback) = 0 ; - virtual Dollop_t *getFallbackDollop(void) const = 0; + virtual size_t getSize() const = 0; + virtual size_t getDollopEntryCount() const = 0; + virtual Dollop_t* getFallbackDollop() const = 0; + virtual Dollop_t* getFallthroughDollop() const = 0; + virtual bool isFallthroughPatched() const = 0; + virtual bool wasTruncated() const = 0; + virtual bool wasCoalesced() const = 0; + virtual DollopEntry_t* + getFallthroughDollopEntry(DollopEntry_t *) const = 0; + + virtual void setDollopManager(DollopManager_t *mgr) = 0; + virtual void setSize(size_t size) = 0; + virtual void setCoalesced(bool coalesced) = 0; + virtual void setFallthroughPatched(bool patched) = 0; virtual void setFallthroughDollop(Dollop_t *fallthrough) = 0; - virtual Dollop_t *getFallthroughDollop(void) const = 0; - - virtual bool isFallthroughPatched(void) const = 0; - virtual void setFallthroughPatched(bool patched) = 0 ; - - virtual DollopEntry_t *setFallthroughDollopEntry(DollopEntry_t *) const = 0 ; - - virtual void wasTruncated(bool truncated) = 0; - virtual bool wasTruncated(void) const = 0; - - virtual void setCoalesced(bool coalesced) = 0 ; - virtual bool wasCoalesced(void) const = 0; + virtual void setFallbackDollop(Dollop_t *fallback) = 0; + virtual void setTruncated(bool trunc) = 0; virtual void reCalculateSize() = 0 ; + virtual Dollop_t *split(Instruction_t *split_point) = 0 ; + virtual void removeDollopEntries(DollopEntryList_t::iterator, DollopEntryList_t::iterator) = 0; friend ostream &operator<<(ostream &, const Dollop_t &); }; diff --git a/include/private-include/memory_space.h b/include/private-include/memory_space.h index b20d18405bb8adc60eef0422555f5d58824a101a..2cba832c8b15c3ef3ba5f15b01080cb536e91bf0 100644 --- a/include/private-include/memory_space.h +++ b/include/private-include/memory_space.h @@ -12,33 +12,32 @@ namespace Zipr_SDK public: // range operatations - virtual void splitFreeRange(RangeAddress_t addr) = 0; - virtual void splitFreeRange(Range_t range) = 0; - virtual void mergeFreeRange(RangeAddress_t addr) = 0; - virtual void mergeFreeRange(Range_t range) = 0; + virtual void splitFreeRange(RangeAddress_t addr) = 0; + virtual void splitFreeRange(Range_t range) = 0; + virtual void mergeFreeRange(RangeAddress_t addr) = 0; + virtual void mergeFreeRange(Range_t range) = 0; virtual RangeSet_t::iterator - findFreeRange(RangeAddress_t addr) = 0; - virtual Range_t getFreeRange(int size) = 0; - virtual Range_t getInfiniteFreeRange() = 0; - virtual list<Range_t> getFreeRanges(size_t size = 0) = 0; - virtual RangeSetBounds_t - getNearbyFreeRanges(const RangeAddress_t hint, size_t count = 0) = 0; - virtual void addFreeRange(Range_t newRange) = 0; - virtual void removeFreeRange(Range_t newRange) = 0; - virtual Range_t getLargeRange(void) = 0; + findFreeRange(RangeAddress_t addr) = 0; + virtual Range_t getFreeRange(int size) = 0; + virtual Range_t getInfiniteFreeRange() = 0; + virtual list<Range_t> getFreeRanges(size_t size = 0) = 0; + virtual RangeSetBounds_t getNearbyFreeRanges(const RangeAddress_t hint, size_t count = 0) = 0; + virtual void addFreeRange(Range_t newRange) = 0; + virtual void removeFreeRange(Range_t newRange) = 0; + virtual Range_t getLargeRange(void) = 0; // queries about free areas. - virtual bool areBytesFree(RangeAddress_t addr, int num_bytes)=0; - virtual bool isByteFree(RangeAddress_t addr) = 0; - virtual bool isValidRange(RangeSet_t::iterator it) = 0; - virtual int getRangeCount() = 0; - virtual void printMemorySpace(ostream &out) = 0; - - virtual void plopBytes(RangeAddress_t addr, const char the_byte[], int num)=0; - virtual void plopByte(RangeAddress_t addr, char the_byte)=0; - virtual void plopJump(RangeAddress_t addr) = 0; - virtual RangeAddress_t getMinPlopped() const = 0; - virtual RangeAddress_t getMaxPlopped() const = 0; + virtual bool areBytesFree(RangeAddress_t addr, int num_bytes) = 0; + virtual bool isByteFree(RangeAddress_t addr) = 0; + virtual bool isValidRange(RangeSet_t::iterator it) = 0; + virtual int getRangeCount() = 0; + virtual void printMemorySpace(ostream &out) = 0; + + virtual void plopBytes(RangeAddress_t addr, const char the_byte[], int num) = 0; + virtual void plopByte(RangeAddress_t addr, char the_byte) = 0; + virtual void plopJump(RangeAddress_t addr) = 0; + virtual RangeAddress_t getMinPlopped() const = 0; + virtual RangeAddress_t getMaxPlopped() const = 0; };