--- hatari/src/debug/profile.h 2019/04/09 08:49:27 1.1.1.1 +++ hatari/src/debug/profile.h 2019/04/09 08:58:05 1.1.1.5 @@ -1,36 +1,45 @@ /* * Hatari - profile.h * - * This file is distributed under the GNU Public License, version 2 or at - * your option any later version. Read the file gpl.txt for details. + * This file is distributed under the GNU General Public License, version 2 + * or at your option any later version. Read the file gpl.txt for details. */ #ifndef HATARI_PROFILE_H #define HATARI_PROFILE_H +/* caller types */ +#define CALL_UNDEFINED 0 /* = call type information not supported */ +typedef enum { + CALL_UNKNOWN = 1, + CALL_NEXT = 2, + CALL_BRANCH = 4, + CALL_SUBROUTINE = 8, + CALL_SUBRETURN = 16, + CALL_EXCEPTION = 32, + CALL_EXCRETURN = 64, + CALL_INTERRUPT = 128 +} calltype_t; + /* profile command parsing */ extern const char Profile_Description[]; extern char *Profile_Match(const char *text, int state); -extern bool Profile_Command(int nArgc, char *psArgs[], bool bForDsp); +extern int Profile_Command(int nArgc, char *psArgs[], bool bForDsp); /* CPU profile control */ extern bool Profile_CpuStart(void); extern void Profile_CpuUpdate(void); extern void Profile_CpuStop(void); + /* CPU profile results */ -extern void Profile_CpuShowStats(void); -extern void Profile_CpuShowCycles(unsigned int show); -extern void Profile_CpuShowCounts(unsigned int show, bool only_symbols); -extern bool Profile_CpuAddressData(Uint32 addr, Uint32 *count, Uint32 *cycles); +extern bool Profile_CpuAddressDataStr(char *buffer, size_t maxlen, Uint32 addr); /* DSP profile control */ extern bool Profile_DspStart(void); extern void Profile_DspUpdate(void); extern void Profile_DspStop(void); + /* DSP profile results */ -extern void Profile_DspShowStats(void); -extern void Profile_DspShowCycles(unsigned int show); -extern void Profile_DspShowCounts(unsigned int show, bool only_symbols); -extern bool Profile_DspAddressData(Uint16 addr, Uint32 *count, Uint32 *cycles); +extern bool Profile_DspAddressData(Uint16 addr, float *percentage, Uint64 *count, Uint64 *cycles, Uint16 *cycle_diff); #endif