diff options
Diffstat (limited to 'src/emu/profiler.h')
-rw-r--r-- | src/emu/profiler.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/emu/profiler.h b/src/emu/profiler.h new file mode 100644 index 00000000000..d461a63e8ef --- /dev/null +++ b/src/emu/profiler.h @@ -0,0 +1,86 @@ +/*************************************************************************** + + profiler.h + + Functions to manage profiling of MAME execution. + + Copyright (c) 1996-2007, Nicola Salmoria and the MAME Team. + Visit http://mamedev.org for licensing and usage restrictions. + +***************************************************************************/ + +#pragma once + +#ifndef __PROFILER_H__ +#define __PROFILER_H__ + +/* profiling */ +enum +{ + PROFILER_END = -1, + PROFILER_CPU1 = 0, + PROFILER_CPU2, + PROFILER_CPU3, + PROFILER_CPU4, + PROFILER_CPU5, + PROFILER_CPU6, + PROFILER_CPU7, + PROFILER_CPU8, + PROFILER_MEMREAD, + PROFILER_MEMWRITE, + PROFILER_VIDEO, + PROFILER_DRAWGFX, + PROFILER_COPYBITMAP, + PROFILER_TILEMAP_DRAW, + PROFILER_TILEMAP_DRAW_ROZ, + PROFILER_TILEMAP_UPDATE, + PROFILER_ARTWORK, + PROFILER_BLIT, + PROFILER_SOUND, + PROFILER_MIXER, + PROFILER_TIMER_CALLBACK, + PROFILER_INPUT, /* input.c and inptport.c */ + PROFILER_MOVIE_REC, /* movie recording */ + PROFILER_LOGERROR, /* logerror */ + PROFILER_EXTRA, /* everything else */ + + /* the USER types are available to driver writers to profile */ + /* custom sections of the code */ + PROFILER_USER1, + PROFILER_USER2, + PROFILER_USER3, + PROFILER_USER4, + + PROFILER_PROFILER, + PROFILER_IDLE, + PROFILER_TOTAL +}; + + +/* +To start profiling a certain section, e.g. video: +profiler_mark(PROFILER_VIDEO); + +to end profiling the current section: +profiler_mark(PROFILER_END); + +the profiler handles a FILO list so calls may be nested. +*/ + +#ifdef MAME_PROFILER +void profiler_mark(int type); + +/* functions called by usrintf.c */ +void profiler_start(void); +void profiler_stop(void); +const char *profiler_get_text(void); +#else +#define profiler_mark(type) + +#define profiler_start() +#define profiler_stop() +#define profiler_get_text() "" +#endif + + +#endif /* __PROFILER_H__ */ |