aboutsummaryrefslogtreecommitdiff
path: root/include/linux/mmprofile.h
diff options
context:
space:
mode:
authorMeizu OpenSource <patchwork@meizu.com>2016-08-15 10:19:42 +0800
committerMeizu OpenSource <patchwork@meizu.com>2016-08-15 10:19:42 +0800
commitd2e1446d81725c351dc73a03b397ce043fb18452 (patch)
tree4dbc616b7f92aea39cd697a9084205ddb805e344 /include/linux/mmprofile.h
first commit
Diffstat (limited to 'include/linux/mmprofile.h')
-rw-r--r--include/linux/mmprofile.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/include/linux/mmprofile.h b/include/linux/mmprofile.h
new file mode 100644
index 000000000..866022c07
--- /dev/null
+++ b/include/linux/mmprofile.h
@@ -0,0 +1,102 @@
+#ifndef __MMPROFILE_H__
+#define __MMPROFILE_H__
+#include "mmprofile_static_event.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MMProfileEventNameMaxLen 31
+
+typedef unsigned int MMP_Event;
+
+typedef enum {
+ MMProfileFlagStart = 1,
+ MMProfileFlagEnd = 2,
+ MMProfileFlagPulse = 4,
+ MMProfileFlagEventSeparator = 8,
+ MMProfileFlagSystrace = 0x80000000,
+ MMProfileFlagMax = 0xFFFFFFFF
+} MMP_LogType;
+
+typedef enum {
+ MMProfileMetaStringMBS = 1,
+ MMProfileMetaStringWCS,
+ MMProfileMetaStructure,
+ MMProfileMetaBitmap,
+ MMProfileMetaRaw,
+ MMProfileMetaUser = 0x10000000,
+ MMProfileMetaUserM4UReg,
+ MMProfileMetaMax = 0xFFFFFFFF
+} MMP_MetaDataType;
+
+typedef enum {
+ MMProfileBitmapRGB565 = 1,
+ MMProfileBitmapRGB888,
+ MMProfileBitmapRGBA8888,
+ MMProfileBitmapBGR888,
+ MMProfileBitmapBGRA8888,
+ MMProfileBitmapMax = 0xFFFFFFFF
+} MMP_PixelFormat;
+
+typedef struct {
+ unsigned int data1; // data1 (user defined)
+ unsigned int data2; // data2 (user defined)
+ MMP_MetaDataType data_type; // meta data type
+ unsigned int size; // meta data size
+ void *pData; // meta data pointer
+} MMP_MetaData_t;
+
+typedef struct {
+ unsigned int data1; // data1 (user defined)
+ unsigned int data2; // data2 (user defined)
+ unsigned int struct_size; // structure size (bytes)
+ void *pData; // structure pointer
+ char struct_name[32]; // structure name
+} MMP_MetaDataStructure_t;
+
+typedef struct {
+ unsigned int data1; // data1 (user defined)
+ unsigned int data2; // data2 (user defined)
+ unsigned int width; // image width
+ unsigned int height; // image height
+ MMP_PixelFormat format; // image pixel format
+ unsigned int start_pos; // start offset of image data (base on pData)
+ unsigned int bpp; // bits per pixel
+ int pitch; // image pitch (bytes per line)
+ unsigned int data_size; // image data size (bytes)
+ unsigned int down_sample_x; // horizontal down sample rate (>=1)
+ unsigned int down_sample_y; // vertical down sample rate (>=1)
+ void *pData; // image buffer address
+} MMP_MetaDataBitmap_t;
+
+MMP_Event MMProfileRegisterEvent(MMP_Event parent, const char *name);
+MMP_Event MMProfileFindEvent(MMP_Event parent, const char *name);
+void MMProfileEnableEvent(MMP_Event event, long enable);
+void MMProfileEnableFTraceEvent(MMP_Event event, long enable, long ftrace);
+void MMProfileEnableEventRecursive(MMP_Event event, long enable);
+void MMProfileEnableFTraceEventRecursive(MMP_Event event, long enable, long ftrace);
+long MMProfileQueryEnable(MMP_Event event);
+void MMProfileLog(MMP_Event event, MMP_LogType type);
+void MMProfileLogEx(MMP_Event event, MMP_LogType type, unsigned long data1, unsigned long data2);
+long MMProfileLogMeta(MMP_Event event, MMP_LogType type, MMP_MetaData_t *pMetaData);
+long MMProfileLogMetaString(MMP_Event event, MMP_LogType type, const char *str);
+long MMProfileLogMetaStringEx(MMP_Event event, MMP_LogType type, unsigned long data1, unsigned long data2, const char *str);
+long MMProfileLogMetaStructure(MMP_Event event, MMP_LogType type, MMP_MetaDataStructure_t *pMetaData);
+long MMProfileLogMetaBitmap(MMP_Event event, MMP_LogType type, MMP_MetaDataBitmap_t *pMetaData);
+
+#define MMProfileLogStructure(event, type, pStruct, struct_type) \
+{ \
+ MMP_MetaDataStructure_t MetaData; \
+ MetaData.data1 = 0; \
+ MetaData.data2 = 0; \
+ strcpy(MetaData.struct_name, #struct_type); \
+ MetaData.struct_size = sizeof(struct_type); \
+ MetaData.pData = (void *)(pStruct); \
+ MMProfileLogMetaStructure(event, type, &MetaData); \
+}
+
+#ifdef __cplusplus
+}
+#endif
+#endif