xref: /linux/tools/perf/jvmti/jvmti_agent.h (revision 598b7c6919c7bbcc1243009721a01bc12275ff3e)
1209045adSStephane Eranian #ifndef __JVMTI_AGENT_H__
2209045adSStephane Eranian #define __JVMTI_AGENT_H__
3209045adSStephane Eranian 
4209045adSStephane Eranian #include <sys/types.h>
5209045adSStephane Eranian #include <stdint.h>
6209045adSStephane Eranian #include <jvmti.h>
7209045adSStephane Eranian 
8209045adSStephane Eranian #define __unused __attribute__((unused))
9209045adSStephane Eranian 
10209045adSStephane Eranian #if defined(__cplusplus)
11209045adSStephane Eranian extern "C" {
12209045adSStephane Eranian #endif
13209045adSStephane Eranian 
14*598b7c69SStephane Eranian typedef struct {
15*598b7c69SStephane Eranian 	unsigned long	pc;
16*598b7c69SStephane Eranian 	int		line_number;
17*598b7c69SStephane Eranian 	int		discrim; /* discriminator -- 0 for now */
18*598b7c69SStephane Eranian } jvmti_line_info_t;
19*598b7c69SStephane Eranian 
20209045adSStephane Eranian void *jvmti_open(void);
21209045adSStephane Eranian int   jvmti_close(void *agent);
22209045adSStephane Eranian int   jvmti_write_code(void *agent, char const *symbol_name,
23209045adSStephane Eranian 		       uint64_t vma, void const *code,
24209045adSStephane Eranian 		       const unsigned int code_size);
25*598b7c69SStephane Eranian 
26209045adSStephane Eranian int   jvmti_write_debug_info(void *agent,
27209045adSStephane Eranian 		             uint64_t code,
28209045adSStephane Eranian 			     const char *file,
29*598b7c69SStephane Eranian 			     jvmti_line_info_t *li,
30*598b7c69SStephane Eranian 			     int nr_lines);
31209045adSStephane Eranian 
32209045adSStephane Eranian #if defined(__cplusplus)
33209045adSStephane Eranian }
34209045adSStephane Eranian 
35209045adSStephane Eranian #endif
36209045adSStephane Eranian #endif /* __JVMTI_H__ */
37