Skip to content
Snippets Groups Projects
Commit a10dd60b authored by whh8b's avatar whh8b
Browse files

Add DollopManager_t to the public SDK API.

parent 31efe7f7
No related branches found
No related tags found
No related merge requests found
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
/README -text /README -text
/SDK_VERSION -text /SDK_VERSION -text
include/dollop.h -text include/dollop.h -text
include/dollop_man.h -text
include/memory_space.h -text include/memory_space.h -text
include/range.h -text include/range.h -text
include/zipr.h -text include/zipr.h -text
......
/***************************************************************************
* Copyright (c) 2014 Zephyr Software LLC. All rights reserved.
*
* This software is furnished under a license and/or other restrictive
* terms and may be used and copied only in accordance with such terms
* and the inclusion of the above copyright notice. This software or
* any other copies thereof may not be provided or otherwise made
* available to any other person without the express written consent
* of an authorized representative of Zephyr Software LCC. Title to,
* ownership of, and all rights in the software is retained by
* Zephyr Software LCC.
*
* Zephyr Software LLC. Proprietary Information
*
* Unless otherwise specified, the information contained in this
* directory, following this legend, and/or referenced herein is
* Zephyr Software LLC. (Zephyr) Proprietary Information.
*
* CONTACT
*
* For technical assistance, contact Zephyr Software LCC. at:
*
*
* Zephyr Software, LLC
* 2040 Tremont Rd
* Charlottesville, VA 22911
*
* E-mail: jwd@zephyr-software.com
**************************************************************************/
#ifndef dollop_man_h
#define dollop_man_h
#include <dollop.h>
namespace Zipr_SDK {
class DollopManager_t {
public:
DollopManager_t() {};
virtual void AddDollops(Zipr_SDK::Dollop_t *dollop_head) = 0;
virtual Zipr_SDK::Dollop_t *AddNewDollops(libIRDB::Instruction_t *start) = 0;
virtual size_t Size() = 0;
virtual Zipr_SDK::Dollop_t *GetContainingDollop(libIRDB::Instruction_t *insn) = 0;
virtual void AddDollopPatch(Zipr_SDK::DollopPatch_t *new_patch) = 0;
virtual std::list<Zipr_SDK::DollopPatch_t*> PatchesToDollop(Zipr_SDK::Dollop_t *target) = 0;
virtual bool UpdateTargets(Zipr_SDK::Dollop_t *) = 0;
virtual void UpdateAllTargets() = 0;
virtual std::list<Zipr_SDK::Dollop_t*>::const_iterator dollops_begin() = 0;
virtual std::list<Zipr_SDK::Dollop_t*>::const_iterator dollops_end() = 0;
virtual void PrintDollopPatches(const std::ostream &) = 0;
friend std::ostream &operator<<(std::ostream &out, const DollopManager_t &dollop_man);
virtual void PrintStats(std::ostream &out) = 0;
virtual void PrintPlacementMap(const Zipr_SDK::MemorySpace_t &memory_space,
const std::string &map_filename) = 0;
};
}
#endif
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#define zipr_h #define zipr_h
#include <memory_space.h> #include <memory_space.h>
#include <dollop_man.h>
namespace Zipr_SDK namespace Zipr_SDK
...@@ -86,6 +87,7 @@ class Zipr_t ...@@ -86,6 +87,7 @@ class Zipr_t
virtual ELFIO::elfio *GetELFIO()=0; virtual ELFIO::elfio *GetELFIO()=0;
virtual libIRDB::FileIR_t *GetFileIR()=0; virtual libIRDB::FileIR_t *GetFileIR()=0;
virtual Zipr_SDK::InstructionLocationMap_t *GetLocationMap()=0; virtual Zipr_SDK::InstructionLocationMap_t *GetLocationMap()=0;
virtual Zipr_SDK::DollopManager_t *GetDollopManager()=0;
}; };
}; };
......
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
#include <range.h> #include <range.h>
#include <dollop.h> #include <dollop.h>
#include <memory_space.h> #include <memory_space.h>
#include <dollop_man.h>
#include <zipr_options.h> #include <zipr_options.h>
#include <zipr_plugin.h> #include <zipr_plugin.h>
#include <zipr.h> #include <zipr.h>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment