equal
deleted
inserted
replaced
|
1 /* |
|
2 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. |
|
3 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. |
|
4 */ |
|
5 |
|
6 #include <dlfcn.h> |
|
7 #include <stdlib.h> |
|
8 |
|
9 #include <jvm.h> |
|
10 |
|
11 #include "jvm_symbols.h" |
|
12 |
|
13 JvmSymbols* lookupJvmSymbols() { |
|
14 JvmSymbols* syms = (JvmSymbols*)malloc(sizeof(JvmSymbols)); |
|
15 if (syms != NULL) { |
|
16 syms->GetVersion = (GetVersion_t) |
|
17 dlsym(RTLD_DEFAULT, "JVM_DTraceGetVersion"); |
|
18 syms->IsSupported = (IsSupported_t) |
|
19 dlsym(RTLD_DEFAULT, "JVM_DTraceIsSupported"); |
|
20 syms->Activate = (Activate_t) |
|
21 dlsym(RTLD_DEFAULT, "JVM_DTraceActivate"); |
|
22 syms->Dispose = (Dispose_t) |
|
23 dlsym(RTLD_DEFAULT, "JVM_DTraceDispose"); |
|
24 syms->IsProbeEnabled = (IsProbeEnabled_t) |
|
25 dlsym(RTLD_DEFAULT, "JVM_DTraceIsProbeEnabled"); |
|
26 |
|
27 if ( syms->GetVersion == NULL || syms->Activate == NULL || |
|
28 syms->IsProbeEnabled == NULL || syms->Dispose == NULL || |
|
29 syms->IsSupported == NULL) { |
|
30 free(syms); |
|
31 syms = NULL; |
|
32 } |
|
33 } |
|
34 return syms; |
|
35 } |