-
Jason Hiser authoredJason Hiser authored
zipr.h 2.27 KiB
/***************************************************************************
* 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 zipr_h
#define zipr_h
#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
{
public:
/*
* These are public functions that the SDK user way want to use.
*/
virtual size_t DetermineDollopEntrySize(DollopEntry_t*, bool account_for_fallthrough) = 0;
virtual Zipr_SDK::RangeAddress_t PlopDollopEntry(
DollopEntry_t *,
RangeAddress_t = 0,
RangeAddress_t = 0)
= 0;
virtual Zipr_SDK::RangeAddress_t PlopDollopEntryWithTarget(
DollopEntry_t *,
RangeAddress_t = 0,
RangeAddress_t = 0)
= 0;
virtual Zipr_SDK::RangeAddress_t PlopDollopEntryWithCallback(
DollopEntry_t *,
RangeAddress_t = 0)
= 0;
virtual Zipr_SDK::MemorySpace_t *GetMemorySpace()=0;
virtual ELFIO::elfio *GetELFIO()=0;
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;
};
};
#endif