#define  _MP_SHARE_

#ifndef  _MP_CPU_TYPE_
typedef enum {CPU16,CPU32,NA,NA,CPU306,CPU302,CPU307,CPU328,
              CPU302V,CPU302LC} CPU_TYPE;
#define  _MP_CPU_TYPE_
#endif

#ifndef  VERIFY_INFO_DEFINED
typedef struct {
   MEMBER_INDEX offset;
   MEMBER_INDEX space;
   MEMBER_INDEX expected;
   MEMBER_INDEX actual;
} VERIFY_INFO;
#define  VERIFY_INFO_DEFINED
#endif

RETCODE Sds2AbiFwUpdateProbeVersion(VOID);
RETCODE EXPORT FwWriteVerifyErrorInfo(U32 offset, ADDR_SPACE space,
      U32 expected, U32 actual, VERIFY_INFO *verifyInfo);
RETCODE EXPORT Sds2AbiFwGr(EMULATION_STATE *iceState);
RETCODE  Sds2AbiFwHalt(VOID);
RETCODE  Sds2AbiFwGo(EMULATION_STATE *iceState);
RETCODE  Sds2AbiFwStep(U32 count);
RETCODE  Sds2AbiFwUnloadBreakpoints(VOID);
RETCODE  Sds2AbiFwBkptHit();
RETCODE  Sds2AbiFwLoadBreakpoints(BOOLEAN loadNow);
RETCODE EXPORT Sds2AbiStepPostamble(VOID);
RETCODE EXPORT Sds2AbiFwCpuReset(VOID);
RETCODE EXPORT Sds2AbiFwReset(CPU_RESET typeOfReset);
RETCODE EXPORT Sds2AbiRunaccStart(EMULATION_STATE *state, U32 *reg);
RETCODE EXPORT Sds2AbiRunaccFinish(EMULATION_STATE state, U32 *reg);
RETCODE EXPORT Sds2AbiFwGetEmuState(EMULATION_STATE *iceState);
RETCODE EXPORT Sds2AbiFwGetBreakCause(BREAK_CAUSE *cause);
VOID EXPORT Sds2AbiGetCpuType(CPU_TYPE *cpu);
RETCODE EXPORT Sds2AbiMemChecksum(ADDR addr,U32 length,U32 *sum);
RETCODE EXPORT Sds2AbiMemCompare(ADDR addr1, ADDR addr2,U32 len,
                                 RET_ADDR *retAddr1, RET_ADDR *retAddr2,
                                 BOOLEAN *result);
