rendered paste body#ifndef _RUMACS_H_
#define _RUMACS_H_
#include <stdio.h>
#include <string.h>
#include "jvmti.h"
#include "jni.h"
#include "java_crw_demo.h"
#define STRING(s) #s
#define RUMACS_class Rumacs
#define RUMACS_hook_entry hook_entry
#define RUMACS_hook_entry_native hook_entry_native
#define RUMACS_hook_exit hook_exit
#define RUMACS_hook_exit_native hook_exit_native
#define MAX_FRAME_COUNT 50
static void
init();
static void
RUMACS_mouse_pressed_entry_native(JNIEnv*, jclass, jthread, jint, jint);
static void JNICALL
cb_vminit(jvmtiEnv*, JNIEnv*, jthread);
static void JNICALL
cb_vmstart(jvmtiEnv*, JNIEnv*);
static void JNICALL
cb_classfileloadhook(jvmtiEnv*, JNIEnv*, jclass, jobject, const char*, jobject,
jint, const unsigned char*, jint*, unsigned char**);
static void JNICALL
cb_vmdeath(jvmtiEnv*, JNIEnv*);
static void*
allocate(jvmtiEnv*, jint);
static void
enter_critical_section(jvmtiEnv*);
static void
exit_critical_section(jvmtiEnv*);
static void
check_error(char*, jvmtiError);
static int class_num;
static jvmtiEnv *jvmti;
static jrawMonitorID lock;
static jboolean vm_dead;
static jboolean vm_started;