aboutsummaryrefslogtreecommitdiff
path: root/include/linux/ion_debugger_kernel.h
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