jvm_symbols_md.c revision 183
183N/A/*
183N/A * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
183N/A * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
183N/A */
183N/A
183N/A#include <windows.h>
183N/A#include <stdio.h>
183N/A#include <string.h>
183N/A#include <errno.h>
183N/A
183N/A#include <jvm.h>
183N/A
183N/A#include "jvm_symbols.h"
183N/A
183N/AJvmSymbols* lookupJvmSymbols() {
183N/A JvmSymbols* syms = (JvmSymbols*)malloc(sizeof(JvmSymbols));
183N/A if (syms != NULL) {
183N/A HINSTANCE jvm = LoadLibrary("jvm.dll");
183N/A if (jvm == NULL) {
183N/A free(syms);
183N/A return NULL;
183N/A }
183N/A syms->GetVersion = (GetVersion_t)
183N/A GetProcAddress(jvm, "JVM_DTraceGetVersion");
183N/A syms->IsSupported = (IsSupported_t)
183N/A GetProcAddress(jvm, "JVM_DTraceIsSupported");
183N/A syms->Activate = (Activate_t)
183N/A GetProcAddress(jvm, "JVM_DTraceActivate");
183N/A syms->Dispose = (Dispose_t)
183N/A GetProcAddress(jvm, "JVM_DTraceDispose");
183N/A syms->IsProbeEnabled = (IsProbeEnabled_t)
183N/A GetProcAddress(jvm, "JVM_DTraceIsProbeEnabled");
183N/A
183N/A (void)FreeLibrary(jvm);
183N/A if ( syms->GetVersion == NULL || syms->IsSupported == NULL ||
183N/A syms->Activate == NULL || syms->Dispose == NULL ||
183N/A syms->IsProbeEnabled == NULL) {
183N/A free(syms);
183N/A syms = NULL;
183N/A }
183N/A
183N/A }
183N/A return syms;
183N/A}