summaryrefslogtreecommitdiff
path: root/driver/probes_manager.h
blob: 9cf1226a1de2b7a2e619b72a80ad340ecbd36f31 (plain)
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
////////////////////////////////////////////////////////////////////////////////////
//
//      FILE:           probes_manager.h
//
//      DESCRIPTION:
//
//      SEE ALSO:       probes_manager.c
//      AUTHOR:         L.Komkov, A.Gerenkov
//      COMPANY NAME:   Samsung Research Center in Moscow
//      DEPT NAME:      Advanced Software Group
//      CREATED:        2008.02.15
//      VERSION:        1.0
//      REVISION DATE:  2008.12.03
//
////////////////////////////////////////////////////////////////////////////////////

#if !defined(__PROBES_MANAGER_H__)
#define __PROBES_MANAGER_H__

#include "ec_probe.h"
#include "probes.h"

typedef struct
{
	unsigned long addr;
	struct jprobe jprobe;
	struct kretprobe retprobe;
	struct hlist_node hlist;
} kernel_probe_t;

extern int add_probe(unsigned long addr,
		     unsigned long pre_handler,
		     unsigned long jp_handler,
		     unsigned long rp_handler);
extern int reset_probes(void);

int set_kernel_probes(void);
int unset_kernel_probes(void);

void dbi_install_user_handlers(void);
void dbi_uninstall_user_handlers(void);
int install_kern_otg_probe(unsigned long addr,
			   unsigned long pre_handler,
			   unsigned long jp_handler,
			   unsigned long rp_handler);

#endif // !defined(__PROBES_MANAGER_H__)