Mercurial > hg > truffle
annotate agent/src/os/linux/proc_service.h @ 17391:e890b86b397d
default allocation profiling to AllocatedTypes
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Thu, 09 Oct 2014 14:44:19 +0200 |
parents | c18cbe5936b8 |
children |
rev | line source |
---|---|
0 | 1 /* |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
2 * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. |
0 | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | |
5 * This code is free software; you can redistribute it and/or modify it | |
6 * under the terms of the GNU General Public License version 2 only, as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
21 * questions. |
0 | 22 * |
23 */ | |
24 | |
25 #ifndef _PROC_SERVICE_H_ | |
26 #define _PROC_SERVICE_H_ | |
27 | |
28 #include <stdio.h> | |
29 #include <thread_db.h> | |
30 | |
31 // Linux does not have the proc service library, though it does provide the | |
32 // thread_db library which can be used to manipulate threads without having | |
33 // to know the details of LinuxThreads or NPTL | |
34 | |
35 // copied from Solaris "proc_service.h" | |
36 typedef enum { | |
37 PS_OK, /* generic "call succeeded" */ | |
38 PS_ERR, /* generic error */ | |
39 PS_BADPID, /* bad process handle */ | |
40 PS_BADLID, /* bad lwp identifier */ | |
41 PS_BADADDR, /* bad address */ | |
42 PS_NOSYM, /* p_lookup() could not find given symbol */ | |
43 PS_NOFREGS /* FPU register set not available for given lwp */ | |
44 } ps_err_e; | |
45 | |
46 // ps_getpid() is only defined on Linux to return a thread's process ID | |
47 pid_t ps_getpid(struct ps_prochandle *ph); | |
48 | |
49 // ps_pglobal_lookup() looks up the symbol sym_name in the symbol table | |
50 // of the load object object_name in the target process identified by ph. | |
51 // It returns the symbol's value as an address in the target process in | |
52 // *sym_addr. | |
53 | |
54 ps_err_e ps_pglobal_lookup(struct ps_prochandle *ph, const char *object_name, | |
55 const char *sym_name, psaddr_t *sym_addr); | |
56 | |
57 // read "size" bytes of data from debuggee at address "addr" | |
58 ps_err_e ps_pdread(struct ps_prochandle *ph, psaddr_t addr, | |
59 void *buf, size_t size); | |
60 | |
61 // write "size" bytes of data to debuggee at address "addr" | |
62 ps_err_e ps_pdwrite(struct ps_prochandle *ph, psaddr_t addr, | |
63 const void *buf, size_t size); | |
64 | |
65 ps_err_e ps_lsetfpregs(struct ps_prochandle *ph, lwpid_t lid, const prfpregset_t *fpregs); | |
66 | |
67 ps_err_e ps_lsetregs(struct ps_prochandle *ph, lwpid_t lid, const prgregset_t gregset); | |
68 | |
69 ps_err_e ps_lgetfpregs(struct ps_prochandle *ph, lwpid_t lid, prfpregset_t *fpregs); | |
70 | |
71 ps_err_e ps_lgetregs(struct ps_prochandle *ph, lwpid_t lid, prgregset_t gregset); | |
72 | |
73 // new libthread_db of NPTL seem to require this symbol | |
74 ps_err_e ps_get_thread_area(); | |
75 | |
76 #endif /* _PROC_SERVICE_H_ */ |