jdk/src/solaris/native/sun/tracing/dtrace/jvm_symbols_md.c
changeset 406 bde3a21bcab0
child 491 a394684ccfe6
equal deleted inserted replaced
405:f0b8d8e5cc64 406:bde3a21bcab0
       
     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 }