Contents | Prev | Next |
J2ME CDC 1.0 Beta
Porting Guide |
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.
- The defs.h section describes the data types defined by the platform.
- The vm-defs.h section describes data types that are exported to the porting layer.
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); #endifStack 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;
Copyright © 2000
Sun Microsystems, Inc.
All Rights Reserved.
Please send comments to: jcp-cdc-comments@eng.sun.com |
![]() |