blob: f633f283400334b23a9e585e353f9703a9c69b71 (
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
|
#ifndef ION_DEBUGGER_KERNEL_DEF
#define ION_DEBUGGER_KERNEL_DEF
#define BACKTRACE_SIZE 10
#include <linux/mutex.h>
struct ion_buffer_record {
struct ion_buffer_record *next;
void *buffer_address;
struct ion_buffer *buffer;
unsigned int heap_type;
unsigned int size;
union {
void *priv_virt;
unsigned long priv_phys;
};
struct ion_buffer_usage_record *buffer_using_list;
struct ion_buffer_usage_record *buffer_freed_list;
struct mutex ion_buffer_usage_mutex;
struct ion_address_usage_record *address_using_list;
struct ion_address_usage_record *address_freed_list;
struct mutex ion_address_usage_mutex;
};
struct ion_process_record {
struct ion_process_record *next;
pid_t pid;
pid_t group_id;
unsigned int count;
struct ion_address_usage_record *address_using_list;
struct ion_address_usage_record *address_freed_list;
struct mutex ion_address_usage_mutex;
struct ion_fd_usage_record *fd_using_list;
struct ion_fd_usage_record *fd_freed_list;
struct mutex ion_fd_usage_mutex;
};
extern void *ion_get_list(unsigned int record_type, void *record, unsigned int list_type);
extern struct ion_buffer_record *ion_get_inuse_buffer_record(void);
extern struct ion_buffer_record *ion_get_freed_buffer_record(void);
/* extern struct ion_prcoess_record *ion_get_inuse_process_usage_record(void); */
extern struct ion_process_record *ion_get_freed_process_record(void);
extern struct ion_client_usage_record *ion_get_inuse_client_record(void);
extern struct ion_client_usage_record *ion_get_freed_client_record(void);
extern unsigned int ion_get_data_from_record(void *record, unsigned int data_type);
void disable_ion_debugger(void);
#endif
|