Contents | Prev | Next
J2ME CDC 1.0 Beta
Porting Guide

Data Types

This chapter describes the system data types used by the porting system.

Note: The basic data types and VM basic data types are described in the HPI Reference chapter.

Basic Type Definitions

typedef char      CVMUtf8;
#define CVMoffsetof(T, f)    (CVMUint32)(&(((T *)0)->f))

Object Format

CVM_STRUCT_TYPEDEF(CVMObjectHeader);
CVM_UNION_TYPEDEF (CVMVariousBits);
CVM_UNION_TYPEDEF (CVMJavaVal8);
CVM_UNION_TYPEDEF (CVMJavaVal16);
CVM_UNION_TYPEDEF (CVMJavaVal32);
CVM_UNION_TYPEDEF (CVMJavaVal64);
CVM_STRUCT_TYPEDEF(CVMjava_lang_Object);
CVM_STRUCT_TYPEDEF(CVMSyncVector);

typedef CVMjava_lang_Object CVMObject;  /* Short-hand for CVMjava_lang_Object */

Array Types

CVM_STRUCT_TYPEDEF(CVMArrayOfByte);	/* CVMArrayOfByte    */
CVM_STRUCT_TYPEDEF(CVMArrayOfShort);	/* CVMArrayOfShort   */
CVM_STRUCT_TYPEDEF(CVMArrayOfChar);	/* CVMArrayOfChar    */
CVM_STRUCT_TYPEDEF(CVMArrayOfBoolean);	/* CVMArrayOfBoolean */
CVM_STRUCT_TYPEDEF(CVMArrayOfInt);	/* CVMArrayOfInt     */
CVM_STRUCT_TYPEDEF(CVMArrayOfRef);	/* CVMArrayOfRef     */
CVM_STRUCT_TYPEDEF(CVMArrayOfFloat);	/* CVMArrayOfFloat   */
CVM_STRUCT_TYPEDEF(CVMArrayOfLong);	/* CVMArrayOfLong    */
CVM_STRUCT_TYPEDEF(CVMArrayOfDouble);	/* CVMArrayOfDouble  */
CVM_STRUCT_TYPEDEF(CVMArrayOfAnyType);	/* CVMArrayOfAnyType */

ICell Types

CVM_STRUCT_TYPEDEF(CVMjava_lang_ObjectICell);	/* CVMjava_lang_ObjectICell */
CVM_STRUCT_TYPEDEF(CVMObjectICell);		/* ObjectICell         */

CVM_STRUCT_TYPEDEF(CVMArrayOfByteICell);	/* CVMArrayOfByteICell    */
CVM_STRUCT_TYPEDEF(CVMArrayOfShortICell);	/* CVMArrayOfShortICell   */
CVM_STRUCT_TYPEDEF(CVMArrayOfCharICell);	/* CVMArrayOfCharICell    */
CVM_STRUCT_TYPEDEF(CVMArrayOfBooleanICell);	/* CVMArrayOfBooleanICell */
CVM_STRUCT_TYPEDEF(CVMArrayOfIntICell);		/* CVMArrayOfIntICell     */
CVM_STRUCT_TYPEDEF(CVMArrayOfRefICell);		/* CVMArrayOfRefICell     */
CVM_STRUCT_TYPEDEF(CVMArrayOfFloatICell);	/* CVMArrayOfFloatICell   */
CVM_STRUCT_TYPEDEF(CVMArrayOfLongICell);	/* CVMArrayOfLongICell    */
CVM_STRUCT_TYPEDEF(CVMArrayOfDoubleICell);	/* CVMArrayOfDoubleICell  */
CVM_STRUCT_TYPEDEF(CVMArrayOfAnyTypeICell);	/* CVMArrayOfAnyTypeICell */

Class Data Structures

CVM_STRUCT_TYPEDEF(CVMClassBlock);
CVM_UNION_TYPEDEF (CVMGCBitMap);
CVM_STRUCT_TYPEDEF(CVMBigGCBitMap);
CVM_STRUCT_TYPEDEF(CVMArrayInfo);
CVM_STRUCT_TYPEDEF(CVMInterfaces);
CVM_STRUCT_TYPEDEF(CVMInterfaceTable);
CVM_STRUCT_TYPEDEF(CVMMethodBlock);
CVM_STRUCT_TYPEDEF(CVMMethodRange);
CVM_STRUCT_TYPEDEF(CVMMethodArray);
CVM_STRUCT_TYPEDEF(CVMCheckedExceptions);
CVM_STRUCT_TYPEDEF(CVMJavaMethodDescriptor);
CVM_STRUCT_TYPEDEF(CVMExceptionHandler);
CVM_STRUCT_TYPEDEF(CVMLineNumberEntry);
CVM_STRUCT_TYPEDEF(CVMLocalVariableEntry);
CVM_STRUCT_TYPEDEF(CVMFieldBlock);
CVM_STRUCT_TYPEDEF(CVMFieldRange);
CVM_STRUCT_TYPEDEF(CVMFieldArray);
CVM_STRUCT_TYPEDEF(CVMInnerClassInfo);
CVM_STRUCT_TYPEDEF(CVMInnerClassesInfo);
CVM_UNION_TYPEDEF(CVMConstantPool);
CVM_STRUCT_TYPEDEF(CVMTransitionConstantPool);
CVM_UNION_TYPEDEF (CVMConstantPoolEntry);
CVM_STRUCT_TYPEDEF (CVMStackMapEntry);
CVM_STRUCT_TYPEDEF(CVMStackMaps);

VM Classes

typedef CVMObjectICell CVMThreadICell;		/* java.lang.Thread */
typedef CVMObjectICell CVMThrowableICell;	/* java.lang.Throwable */
typedef CVMObjectICell CVMStringICell;		/* java.lang.String */
typedef CVMObjectICell CVMClassICell;		/* java.lang.Class */
typedef CVMObjectICell CVMClassLoaderICell;	/* java.lang.ClassLoader */

Interpreter Data Structures

CVM_STRUCT_TYPEDEF(CVMExecEnv);

Synchronization-related Types

typedef CVMBool CVMTryLockFunc(CVMExecEnv* ee, CVMObject* obj);
typedef CVMBool CVMLockFunc (CVMExecEnv* ee, CVMObjectICell* indirectObj);
typedef CVMBool CVMNotifyFunc (CVMExecEnv* ee, CVMObjectICell* indirectObj);
typedef CVMBool CVMNotifyAllFunc (CVMExecEnv* ee, CVMObjectICell* indirectObj);
typedef CVMBool CVMWaitFunc (CVMExecEnv* ee, CVMObjectICell* indirectObj, CVMJavaLong     millis);

CVM_STRUCT_TYPEDEF(CVMReentrantMutex);
CVM_STRUCT_TYPEDEF(CVMSysMutex);
CVM_STRUCT_TYPEDEF(CVMSysMonitor);
CVM_STRUCT_TYPEDEF(CVMNamedSysMonitor);
CVM_STRUCT_TYPEDEF(CVMObjMonitor);
CVM_STRUCT_TYPEDEF(CVMOwnedMonitor);

Consistent States Types

CVM_STRUCT_TYPEDEF(CVMCState);
CVM_STRUCT_TYPEDEF(CVMTCState);

Class Loading Data Structures

CVM_STRUCT_TYPEDEF(CVMLoaderCacheEntry);
#ifdef CVM_CLASSLOADING
CVM_STRUCT_TYPEDEF(CVMLoaderConstraint);
CVM_STRUCT_TYPEDEF(CVMSeenClass);
CVM_STRUCT_TYPEDEF(CVMClassPathEntry);
#endif

Stack Data Structures

CVM_UNION_TYPEDEF (CVMStackVal32);
CVM_STRUCT_TYPEDEF(CVMStack);
CVM_STRUCT_TYPEDEF(CVMStackChunk);
CVM_STRUCT_TYPEDEF(CVMFrame);
CVM_STRUCT_TYPEDEF(CVMLocalRootsFrame);
CVM_STRUCT_TYPEDEF(CVMFreelistFrame);
CVM_STRUCT_TYPEDEF(CVMInterpreterFrame);
CVM_STRUCT_TYPEDEF(CVMJavaFrame);
CVM_STRUCT_TYPEDEF(CVMTransitionFrame);
CVM_STRUCT_TYPEDEF(CVMStackWalkContext);

VM Global State

CVM_STRUCT_TYPEDEF(CVMGlobalState);
CVM_STRUCT_TYPEDEF(CVMGCGlobalState);

VM Initialization Options

CVM_STRUCT_TYPEDEF(CVMOptions);

GC-related Types

CVM_STRUCT_TYPEDEF(CVMGCOptions);

Callbacks

Function Description
typedef void (*CVMRefCallbackFun) (CVMObject **refAddr, void* data); A 'ref callback' called on each discovered root.
typedef CVMBool (*CVMRefLivenessQueryFunc)(CVMObject **refAddr, void* data); A predicate to test livenessof a given reference.
typedef void (*CVMObjectCallbackFunc)(CVMObject *obj, CVMClassBlock *cb, CVMUint32 objSize, void *data); A per-object callback function, to be called during heap dumps.
typedef void CVMFrameGCScannerFunc(CVMExecEnv* ee, CVMFrame *thisFrame, CVMStackChunk* thisChunk, CVMRefCallbackFunc refCallback, void *data, CVMGCOptions *gcOpts); An object to scan all GC references in a frame. Each frame carries a pointer to one of these.

JNI Types

struct JNINativeInterface;

typedef const struct JNINativeInterface * JNIEnv;

Contents | Prev | Next
Copyright © 2000 Sun Microsystems, Inc. All Rights Reserved.

Please send comments to: jcp-cdc-comments@eng.sun.com
Sun