blob: a060cb90b500b47a8b68f3c329d3bf0f47e59345 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#ifndef _SYSMEMCB_H
#define _SYSMEMCB_H
namespace SysMemCallback {
enum {
ONMALLOC=10,
ONFREE=20,
ONREALLOC=30,
ONCHANGE=40,
};
};
#include <api/syscb/callbacks/syscbi.h>
#define SYSMEMCALLBACK_PARENT SysCallbackI
class SysMemCallbackI : public SYSMEMCALLBACK_PARENT {
protected:
SysMemCallbackI() { }
public:
virtual void sysmem_onMalloc(void *memory, int size)=0;
virtual void sysmem_onFree(void *memory)=0;
virtual void sysmem_onRealloc(void *prev_memory, void *new_memory, int new_size)=0;
virtual void sysmem_onChange(void *memory)=0;
private:
virtual FOURCC syscb_getEventType() { return SysCallback::SYSMEM; }
virtual int syscb_notify(int msg, intptr_t param1=0, intptr_t param2=0) {
switch (msg) {
case SysMemCallback::ONMALLOC:
sysmem_onMalloc((void *)param1, param2);
break;
case SysMemCallback::ONFREE:
sysmem_onFree((void *)param1);
break;
case SysMemCallback::ONREALLOC: {
void **ptrs = (void **)param1;
sysmem_onRealloc(ptrs[0], ptrs[1], param2);
}
break;
case SysMemCallback::ONCHANGE:
sysmem_onChange((void *)param1);
break;
default: return 0;
}
return 1;
}
};
#endif
|