2020-09-30 17:12:29 +02:00

163 lines
6.5 KiB
C

// **********************************************************************
// * *
// * API callback function prototypes (internal to SAPI) *
// * *
// **********************************************************************
#ifdef WINDOWS3
#define save_libname(p1) SHHexeAddNew((HPDS)NULL,(SZ)p1)
#else // !WINDOWS3
#define save_libname(p1,p2) SHHexeAddNew((HPDS)NULL,(SZ)p1)
#endif // WINDOWS3
#ifdef WINDOWS3
#define SPRINTF wsprintf
int FAR cdecl wsprintf(LSZ,LSZ,...);
#else
#define SPRINTF sprintf
#endif
LSZ LOADDS PASCAL SHLszGetErrorText( SHE );
HEXE PASCAL SHHexeAddNew( HPDS, HEXG );
UOFFSET LOADDS PASCAL SHGetDebugStart( HSYM );
LSZ LOADDS PASCAL SHGetSymName( HSYM, LSZ );
VOID LOADDS PASCAL SHAddrFromHsym( LPADDR, HSYM );
HMOD LOADDS PASCAL SHHmodGetNextGlobal( HEXE FAR *, HMOD );
BOOL LOADDS PASCAL SHModHasSrc( HMOD );
LSZ LOADDS PASCAL SHGetSymbol( LPADDR, SOP, LPADDR, LSZ, LPL );
BOOL LOADDS PASCAL SHGetPublicAddr( LPADDR, LSZ );
SHE LOADDS PASCAL SHAddDll( LSZ, BOOL );
BOOL LOADDS PASCAL SHIsLabel( HSYM );
VOID LOADDS PASCAL SHSetDebuggeeDir( LSZ );
VOID LOADDS PASCAL SHUnloadDll( HEXE );
SHE LOADDS PASCAL SHLoadDll( LSZ, BOOL );
BOOL LOADDS PASCAL PHGetAddr ( LPADDR, LSZ );
SHE LOADDS PASCAL SHAddDllsToProcess ( VOID );
HEXE LOADDS PASCAL SHHexeFromHmod ( HMOD );
HEXE LOADDS PASCAL SHGetNextExe(HEXE);
HMOD LOADDS PASCAL SHGetNextMod( HEXE, HMOD );
HMOD LOADDS PASCAL SHHmodGetNext( HEXE, HMOD );
PCXT LOADDS PASCAL SHGetCxtFromHmod( HMOD, PCXT );
PCXT LOADDS PASCAL SHSetCxt( LPADDR, PCXT );
PCXT LOADDS PASCAL SHSetCxtMod( LPADDR, PCXT );
HSYM LOADDS PASCAL SHFindNameInGlobal( HSYM, PCXT, LPSSTR, SHFLAG, PFNCMP, SHFLAG, PCXT );
HSYM LOADDS PASCAL SHFindNameInContext( HSYM, PCXT, LPSSTR, SHFLAG, PFNCMP, SHFLAG, PCXT );
HSYM LOADDS PASCAL SHGoToParent( PCXT, PCXT );
HSYM LOADDS PASCAL SHHsymFromPcxt(PCXT);
HSYM LOADDS PASCAL SHNextHsym(HMOD, HSYM);
SHFLAG LOADDS PASCAL SHCompareRE (char FAR *, char FAR *);
SHFLAG LOADDS PASCAL SHFixupAddr (LPADDR);
SHFLAG LOADDS PASCAL SHUnFixupAddr (LPADDR);
char FAR * LOADDS PASCAL SHGetModName(HMOD);
char FAR * LOADDS PASCAL SHGetFileName(HFL);
char FAR * LOADDS PASCAL SHGetExeName(HEXE);
HFL LOADDS PASCAL SHGethFileFromhMod(HMOD);
HMOD LOADDS PASCAL SHGethModFromName(HEXE, char FAR *);
HEXE LOADDS PASCAL SHGethExeFromName(char FAR *);
BOOL LOADDS PASCAL SHCanDisplay ( HSYM );
UOFF32 LOADDS PASCAL SHGetNearestHsym(LPADDR, HMOD, int, PHSYM);
// questionable API calls
int LOADDS PASCAL SHPublicNameToAddr(LPADDR, LPADDR, char FAR *);
int LOADDS PASCAL SHModelFromAddr ( LPADDR, WORD FAR *, LPB, UOFFSET FAR * );
SHFLAG LOADDS PASCAL SHIsInProlog(PCXT); // it can be done by EE
SHFLAG LOADDS PASCAL SHIsAddrInCxt(PCXT, LPADDR);
BOOL LOADDS PASCAL SHFindSymbol ( LSZ, PADDR, LPASR );
// end questionable API calls
UOFF32 LOADDS PASCAL PHGetNearestHsym(LPADDR, HEXE, PHSYM);
HSYM LOADDS PASCAL PHFindNameInPublics(HSYM, HEXE, LPSSTR, SHFLAG, PFNCMP);
HTYPE LOADDS PASCAL THGetTypeFromIndex( HMOD, THIDX );
HTYPE LOADDS PASCAL THGetNextType(HMOD, HTYPE);
// Source Line Handler
BOOL LOADDS PASCAL SLLineFromAddr ( LPADDR, LPW, SHOFF FAR *, SHOFF FAR * );
BOOL LOADDS PASCAL SLFLineToAddr ( HSF, WORD, LPADDR, SHOFF FAR * , WORD FAR * );
LPCH LOADDS PASCAL SLNameFromHsf ( HVOID );
LPCH LOADDS PASCAL SLNameFromHmod ( HMOD, WORD );
BOOL LOADDS PASCAL SLFQueryModSrc ( HMOD );
HMOD LOADDS PASCAL SLHmodFromHsf ( HEXE, HSF );
HSF LOADDS PASCAL SLHsfFromPcxt ( PCXT );
HSF LOADDS PASCAL SLHsfFromFile ( HMOD, LSZ );
HDEP LOADDS PASCAL MHMemAllocate( unsigned short);
HDEP LOADDS PASCAL MHMemReAlloc(HDEP, unsigned short);
void LOADDS PASCAL MHMemFree(HDEP);
HVOID LOADDS PASCAL MHMemLock(HDEP);
void LOADDS PASCAL MHMemUnLock(HDEP);
LPV LOADDS PASCAL MHOmfLock(HDEP);
void LOADDS PASCAL MHOmfUnLock(HDEP);
SHFLAG LOADDS PASCAL MHIsMemLocked(HDEP);
SHFLAG LOADDS PASCAL DHExecProc(LPADDR, SHCALL);
USHORT LOADDS PASCAL DHGetDebugeeBytes(ADDR, unsigned short, void FAR *);
USHORT LOADDS PASCAL DHPutDebugeeBytes(ADDR, unsigned short, void FAR *);
PSHREG LOADDS PASCAL DHGetReg(PSHREG, PFRAME);
PSHREG LOADDS PASCAL DHSetReg(PSHREG, PFRAME);
HDEP LOADDS PASCAL DHSaveReg(void);
void LOADDS PASCAL DHRestoreReg(HDEP);
HFL PASCAL SHHFLFromCXT(PCXT);
HSYM PASCAL SHFindNameInSym( HSYM, PCXT, LPSSTR, SHFLAG, PFNCMP, PCXT );
void LOADDS PASCAL SHSetEmiOfAddr( LPADDR );
int SYLoadOmf( char *, unsigned short FAR * );
LPSLT LOADDS PASCAL SHGETSRC( HMOD );
HFL LOADDS PASCAL SHGETMODHFL( HMOD );
SFG LOADDS PASCAL SHSrcFlag( HMOD );
extern HPID hpidCurr;
LPB PASCAL SHlszGetSymName ( SYMPTR );
SHFLAG PASCAL ExactCmp ( LSZ, HSYM, LSZ, SHFLAG );
HEXG PASCAL SHHexgFromHmod ( HMOD hmod );
HEXG PASCAL SHHexgFromHmod ( HMOD );
HEXE LOADDS PASCAL SHHexeFromHmod ( HMOD );
VOID LOADDS PASCAL FAR KillPdsNode ( LPV );
int LOADDS PASCAL FAR CmpPdsNode ( LPPDS, LPW, LONG );
int LOADDS PASCAL SHGetLineInfo ( PCXT, LPLRB, LPADDR, LPW );
VOID PASCAL SHpSymlplLabLoc ( LPLBS );
void LOADDS PASCAL SHXlasFill ( PCXT, HFL, LPLAS );
HPDS PASCAL SHFAddNewPds ( void );
void LOADDS PASCAL SHSetUserDir ( LSZ );
LPLRB LOADDS PASCAL SHplrbNext ( PCXT, LPLRB, LPW );
void LOADDS PASCAL SHGetfip ( HFL, LPFIP );
void LOADDS PASCAL SHSetfip ( HFL, LPFIP );
HFL LOADDS PASCAL SHlrbToHFL ( HMOD, LPLRB );
LSZ LOADDS PASCAL SHGetSourceName ( HFL, LPCH );
LSZ LOADDS PASCAL SHXlszGetFile ( HFL );
BOOL LOADDS PASCAL SHAddrToLabel ( LPADDR, LSZ );
BOOL LOADDS PASCAL SHIsEmiLoaded ( HEXE );
BOOL LOADDS PASCAL SHFIsAddrNonVirtual ( LPADDR );
BOOL LOADDS PASCAL SHIsFarProc ( HSYM );
int LOADDS PASCAL SHGetSymLoc ( HSYM, LSZ, UINT, PCXT );
SHE OLLoadOmf ( HEXG, UINT );
LPV LOADDS PASCAL SHLpGSNGetTable( HEXE );
HPDS LOADDS PASCAL SHCreateProcess ( VOID );
VOID LOADDS PASCAL SHSetHpid ( HPID );
BOOL LOADDS PASCAL SHDeleteProcess ( HPDS );
VOID LOADDS PASCAL SHChangeProcess ( HPDS );
SHE PASCAL SHAddDllExt( LSZ, BOOL, BOOL, HEXG FAR * );
LSZ PASCAL STRDUP ( LSZ );
void SHSplitPath ( LSZ, LSZ, LSZ, LSZ, LSZ );
int SumUCChar ( LPSSTR, int );
SHE LOADDS PASCAL SHSetupExclude(LSZ);
extern HLLI hlliPds; // List of processes
extern HPDS hpdsCur; // Current process which is being debugged