Milán Major

netscape-revival

1 branch
Code

sun-java/jit/win32/jinterf.h

// $Header: /m/src/ns/sun-java/jit/win32/Attic/jinterf.h,v 1.2.10.2 1996/09/30 02:47:53 dhopwood Exp $
/*
 * Copyright (c) 1996 Borland International. All Rights Reserved.
 *
 * AppAccelerator(tm) for x86
 *
 * JInterf.h, R. Crelier, 7/31/96
 *
*/

#define	NO_CLEANUP 0xFFFFFFFE

/* info block to be stored in mb->CompiledCodeInfo */
typedef struct CodeInfo
{
    unsigned char *start_pc;	// address range of native code	[start_pc..end_pc[
    unsigned char *end_pc;
    long frameSize;	// size of ret addr, saved regs, and exception frame if any
    long localSize;	// size of local variables, operand stack, and place holders
    long baseOff;	// offset of the first operand rel to esp
    long xframe2esp;	// 0 if no exception frame

}   CodeInfo;


/* Links to the virtual machine used by the compiler */

extern void *
(*p_malloc)(size_t size);

extern void *
(*p_calloc)(size_t nitems, size_t size);

extern void *
(*p_realloc)(void *block, size_t size);

extern void
(*p_free)(void *block);

extern ExecEnv *
(*p_EE)(void);

extern void
(*p_SignalError)(struct execenv *ee, char *ename, char *DetailMessage);

extern char *
(*p_GetClassConstantClassName)(cp_item_type *constant_pool, int index);

extern bool_t
(*p_ResolveClassConstant)(cp_item_type *constant_pool, unsigned index,
    struct execenv *ee, unsigned mask);

extern bool_t
(*p_ResolveClassConstantFromClass)(ClassClass *class, unsigned index,
    struct execenv *ee, unsigned mask);

extern bool_t
(*p_VerifyClassAccess)(ClassClass *current_class, ClassClass *new_class,
    bool_t classloader_only);

extern ClassClass *
(*p_FindClassFromClass)(struct execenv *ee, char *name,
    bool_t resolve, ClassClass *from);

extern bool_t
(*p_is_subclass_of)(ClassClass *cb, ClassClass *dcb, ExecEnv *ee);

extern void
(*p_monitorEnter)(unsigned int key);

extern void
(*p_monitorExit)(unsigned int key);

extern HObject *
(*p_ObjAlloc)(ClassClass *cb, long n0);

extern HObject *
(*p_ArrayAlloc)(int t, int l);

extern HObject *
(*p_MultiArrayAlloc)(int dimensions, ClassClass *array_cb, stack_item *sizes);

extern int
(*p_sizearray)(int t, int l);

extern bool_t
(*p_is_instance_of)(JHandle *h, ClassClass *dcb, ExecEnv *ee);

extern int
(*p_jio_snprintf)(char *str, size_t count, const char *fmt, ...);

extern char *
(*p_classname2string)(char *str, char *dst, int size);

extern char *
(*p_IDToNameAndTypeString)(unsigned short ID);

extern char *
(*p_IDToType)(unsigned short ID);

/* local copy of class java.lang.object */
extern ClassClass *
classJavaLangObject;

/* local copy of class java.lang.Cloneable */
extern ClassClass *
interfaceJavaLangCloneable;

/* The methodtable for java.lang.object */
extern struct methodtable *
ObjectMethodTable;

/* Functions raising a native exception */
void __stdcall
ErrorUnwind(struct execenv *ee);

void __stdcall
SignalErrorUnwind(struct execenv *ee, char *ename, char *DetailMessage,
    unsigned char *stub_base, long stub_nargs);

/* Functions used by assert */
void
DumpThreads(void);

int
cprintf(FILE *strm, const char *format, .../* args */);