mmprofile.h 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. #ifndef __MMPROFILE_H__
  2. #define __MMPROFILE_H__
  3. #include "mmprofile_static_event.h"
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #define MMProfileEventNameMaxLen 31
  8. typedef unsigned int MMP_Event;
  9. typedef enum {
  10. MMProfileFlagStart = 1,
  11. MMProfileFlagEnd = 2,
  12. MMProfileFlagPulse = 4,
  13. MMProfileFlagEventSeparator = 8,
  14. MMProfileFlagSystrace = 0x80000000,
  15. MMProfileFlagMax = 0xFFFFFFFF
  16. } MMP_LogType;
  17. typedef enum {
  18. MMProfileMetaStringMBS = 1,
  19. MMProfileMetaStringWCS,
  20. MMProfileMetaStructure,
  21. MMProfileMetaBitmap,
  22. MMProfileMetaRaw,
  23. MMProfileMetaUser = 0x10000000,
  24. MMProfileMetaUserM4UReg,
  25. MMProfileMetaMax = 0xFFFFFFFF
  26. } MMP_MetaDataType;
  27. typedef enum {
  28. MMProfileBitmapRGB565 = 1,
  29. MMProfileBitmapRGB888,
  30. MMProfileBitmapRGBA8888,
  31. MMProfileBitmapBGR888,
  32. MMProfileBitmapBGRA8888,
  33. MMProfileBitmapMax = 0xFFFFFFFF
  34. } MMP_PixelFormat;
  35. typedef struct {
  36. unsigned int data1; /* data1 (user defined) */
  37. unsigned int data2; /* data2 (user defined) */
  38. MMP_MetaDataType data_type; /* meta data type */
  39. unsigned int size; /* meta data size */
  40. void *pData; /* meta data pointer */
  41. } MMP_MetaData_t;
  42. typedef struct {
  43. unsigned int data1; /* data1 (user defined) */
  44. unsigned int data2; /* data2 (user defined) */
  45. unsigned int struct_size; /* structure size (bytes) */
  46. void *pData; /* structure pointer */
  47. char struct_name[32]; /* structure name */
  48. } MMP_MetaDataStructure_t;
  49. typedef struct {
  50. unsigned int data1; /* data1 (user defined) */
  51. unsigned int data2; /* data2 (user defined) */
  52. unsigned int width; /* image width */
  53. unsigned int height; /* image height */
  54. MMP_PixelFormat format; /* image pixel format */
  55. unsigned int start_pos; /* start offset of image data (base on pData) */
  56. unsigned int bpp; /* bits per pixel */
  57. int pitch; /* image pitch (bytes per line) */
  58. unsigned int data_size; /* image data size (bytes) */
  59. unsigned int down_sample_x; /* horizontal down sample rate (>=1) */
  60. unsigned int down_sample_y; /* vertical down sample rate (>=1) */
  61. void *pData; /* image buffer address */
  62. } MMP_MetaDataBitmap_t;
  63. #ifdef CONFIG_MMPROFILE
  64. MMP_Event MMProfileRegisterEvent(MMP_Event parent, const char *name);
  65. MMP_Event MMProfileFindEvent(MMP_Event parent, const char *name);
  66. void MMProfileEnableEvent(MMP_Event event, long enable);
  67. void MMProfileEnableFTraceEvent(MMP_Event event, long enable, long ftrace);
  68. void MMProfileEnableEventRecursive(MMP_Event event, long enable);
  69. void MMProfileEnableFTraceEventRecursive(MMP_Event event, long enable, long ftrace);
  70. long MMProfileQueryEnable(MMP_Event event);
  71. void MMProfileLog(MMP_Event event, MMP_LogType type);
  72. void MMProfileLogEx(MMP_Event event, MMP_LogType type, unsigned long data1, unsigned long data2);
  73. long MMProfileLogMeta(MMP_Event event, MMP_LogType type, MMP_MetaData_t *pMetaData);
  74. long MMProfileLogMetaString(MMP_Event event, MMP_LogType type, const char *str);
  75. long MMProfileLogMetaStringEx(MMP_Event event, MMP_LogType type,
  76. unsigned long data1, unsigned long data2, const char *str);
  77. long MMProfileLogMetaStructure(MMP_Event event, MMP_LogType type, MMP_MetaDataStructure_t *pMetaData);
  78. long MMProfileLogMetaBitmap(MMP_Event event, MMP_LogType type, MMP_MetaDataBitmap_t *pMetaData);
  79. #endif
  80. #define MMProfileLogStructure(event, type, pStruct, struct_type) \
  81. { \
  82. MMP_MetaDataStructure_t MetaData; \
  83. MetaData.data1 = 0; \
  84. MetaData.data2 = 0; \
  85. strcpy(MetaData.struct_name, #struct_type); \
  86. MetaData.struct_size = sizeof(struct_type); \
  87. MetaData.pData = (void *)(pStruct); \
  88. MMProfileLogMetaStructure(event, type, &MetaData); \
  89. }
  90. /*
  91. * if in kernel config CONFIG_MMPROFILE is not set, and the kernel makefile had define
  92. * obj-$(CONFIG_MMPROFILE) += mmp/
  93. * , the mmp/ driver is compiled but not built-in. Put dummy API implementation here.
  94. */
  95. #ifndef CONFIG_MMPROFILE
  96. static inline MMP_Event MMProfileRegisterEvent(MMP_Event parent, const char *name)
  97. {
  98. return 0;
  99. }
  100. static inline MMP_Event MMProfileFindEvent(MMP_Event parent, const char *name)
  101. {
  102. return 0;
  103. }
  104. static inline void MMProfileEnableEvent(MMP_Event event, long enable)
  105. {
  106. }
  107. static inline void MMProfileEnableEventRecursive(MMP_Event event, long enable)
  108. {
  109. }
  110. static inline void MMProfileEnableFTraceEvent(MMP_Event event, long enable, long ftrace)
  111. {
  112. }
  113. static inline void MMProfileEnableFTraceEventRecursive(MMP_Event event, long enable, long ftrace)
  114. {
  115. }
  116. static inline long MMProfileQueryEnable(MMP_Event event)
  117. {
  118. return 0;
  119. }
  120. static inline void MMProfileLogEx(MMP_Event event, MMP_LogType type, unsigned long data1, unsigned long data2)
  121. {
  122. }
  123. static inline void MMProfileLog(MMP_Event event, MMP_LogType type)
  124. {
  125. }
  126. static inline long MMProfileLogMeta(MMP_Event event, MMP_LogType type, MMP_MetaData_t *pMetaData)
  127. {
  128. return 0;
  129. }
  130. static inline long MMProfileLogMetaStructure(MMP_Event event, MMP_LogType type,
  131. MMP_MetaDataStructure_t *pMetaData)
  132. {
  133. return 0;
  134. }
  135. static inline long MMProfileLogMetaStringEx(MMP_Event event, MMP_LogType type, unsigned long data1,
  136. unsigned long data2, const char *str)
  137. {
  138. return 0;
  139. }
  140. static inline long MMProfileLogMetaString(MMP_Event event, MMP_LogType type, const char *str)
  141. {
  142. return 0;
  143. }
  144. static inline long MMProfileLogMetaBitmap(MMP_Event event, MMP_LogType type, MMP_MetaDataBitmap_t *pMetaData)
  145. {
  146. return 0;
  147. }
  148. #endif
  149. #ifdef __cplusplus
  150. }
  151. #endif
  152. #endif