directmem.h

来自「This is a resource based on j2me embedde」· C头文件 代码 · 共 1,006 行 · 第 1/3 页

H
1,006
字号
}#ifndef CVMgcimplArrayReadBodyByte#define CVMD_arrayReadBodyByte(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyRead(buf, arr, start, len, \                                    CVMJavaByte, Byte)#else#define CVMD_arrayReadBodyByte CVMgcimplArrayReadBodyByte#endif#ifndef CVMgcimplArrayReadBodyBoolean#define CVMD_arrayReadBodyBoolean(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyRead(buf, arr, start, len, \                                    CVMJavaBoolean, Boolean)#else#define CVMD_arrayReadBodyBoolean CVMgcimplArrayReadBodyBoolean#endif#ifndef CVMgcimplArrayReadBodyShort#define CVMD_arrayReadBodyShort(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyRead(buf, arr, start, len, \                                    CVMJavaShort, Short)#else#define CVMD_arrayReadBodyShort CVMgcimplArrayReadBodyShort#endif#ifndef CVMgcimplArrayReadBodyChar#define CVMD_arrayReadBodyChar(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyRead(buf, arr, start, len, \                                    CVMJavaChar, Char)#else#define CVMD_arrayReadBodyChar CVMgcimplArrayReadBodyChar#endif#ifndef CVMgcimplArrayReadBodyInt#define CVMD_arrayReadBodyInt(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyRead(buf, arr, start, len, \                                    CVMJavaInt, Int)#else#define CVMD_arrayReadBodyInt CVMgcimplArrayReadBodyInt#endif#ifndef CVMgcimplArrayReadBodyFloat#define CVMD_arrayReadBodyFloat(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyRead(buf, arr, start, len, \                                    CVMJavaFloat, Float)#else#define CVMD_arrayReadBodyFloat CVMgcimplArrayReadBodyFloat#endif#ifndef CVMgcimplArrayReadBodyRef#define CVMD_arrayReadBodyRef(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyRead(buf, arr, start, len, \                                    CVMObject*, Ref)#else#define CVMD_arrayReadBodyRef CVMgcimplArrayReadBodyRef#endif#ifndef CVMgcimplArrayReadBodyLong#define CVMD_arrayReadBodyLong(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyRead(buf, arr, start, len, \                                    CVMJavaLong, Long)#else#define CVMD_arrayReadBodyLong CVMgcimplArrayReadBodyLong#endif#ifndef CVMgcimplArrayReadBodyDouble#define CVMD_arrayReadBodyDouble(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyRead(buf, arr, start, len, \                                    CVMJavaDouble, Double)#else#define CVMD_arrayReadBodyDouble CVMgcimplArrayReadBodyDouble#endif#ifndef CVMgcimplArrayWriteBodyByte#define CVMD_arrayWriteBodyByte(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyWrite(buf, arr, start, len, \                                     CVMJavaByte, Byte)#else#define CVMD_arrayWriteBodyByte CVMgcimplArrayWriteBodyByte#endif#ifndef CVMgcimplArrayWriteBodyBoolean#define CVMD_arrayWriteBodyBoolean(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyWrite(buf, arr, start, len, \                                     CVMJavaBoolean, Boolean)#else#define CVMD_arrayWriteBodyBoolean CVMgcimplArrayWriteBodyBoolean#endif#ifndef CVMgcimplArrayWriteBodyShort#define CVMD_arrayWriteBodyShort(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyWrite(buf, arr, start, len, \                                     CVMJavaShort, Short)#else#define CVMD_arrayWriteBodyShort CVMgcimplArrayWriteBodyShort#endif#ifndef CVMgcimplArrayWriteBodyChar#define CVMD_arrayWriteBodyChar(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyWrite(buf, arr, start, len, \                                     CVMJavaChar, Char)#else#define CVMD_arrayWriteBodyChar CVMgcimplArrayWriteBodyChar#endif#ifndef CVMgcimplArrayWriteBodyInt#define CVMD_arrayWriteBodyInt(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyWrite(buf, arr, start, len, \                                     CVMJavaInt, Int)#else#define CVMD_arrayWriteBodyInt CVMgcimplArrayWriteBodyInt#endif#ifndef CVMgcimplArrayWriteBodyFloat#define CVMD_arrayWriteBodyFloat(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyWrite(buf, arr, start, len, \                                     CVMJavaFloat, Float)#else#define CVMD_arrayWriteBodyFloat CVMgcimplArrayWriteBodyFloat#endif#ifndef CVMgcimplArrayWriteBodyRef#define CVMD_arrayWriteBodyRef(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyWrite(buf, arr, start, len, \                                     CVMObject*, Ref)#else#define CVMD_arrayWriteBodyRef CVMgcimplArrayWriteBodyRef#endif#ifndef CVMgcimplArrayWriteBodyLong#define CVMD_arrayWriteBodyLong(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyWrite(buf, arr, start, len, \                                     CVMJavaLong, Long)#else#define CVMD_arrayWriteBodyLong CVMgcimplArrayWriteBodyLong#endif#ifndef CVMgcimplArrayWriteBodyDouble#define CVMD_arrayWriteBodyDouble(buf, arr, start, len) \    CVMDprivateDefaultArrayBodyWrite(buf, arr, start, len, \                                     CVMJavaDouble, Double)#else#define CVMD_arrayWriteBodyDouble CVMgcimplArrayWriteBodyDouble#endif/* * Array copy definitions */#ifdef CVMgcimplArrayCopyByte#define CVMD_arrayCopyByte CVMgcimplArrayCopyByte#elif defined(CVMGC_HAS_NO_BYTE_READ_BARRIER) && \      defined(CVMGC_HAS_NO_BYTE_WRITE_BARRIER)#define CVMD_arrayCopyByte(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultNoBarrierArrayCopy(srcArr, srcIdx, dstArr, dstIdx, \                                         len, CVMJavaByte, Byte)#else#define CVMD_arrayCopyByte(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultArrayCopy(srcArr, srcIdx, dstArr, dstIdx, len, \                                     CVMJavaByte, Byte)#endif#ifdef CVMgcimplArrayCopyBoolean#define CVMD_arrayCopyBoolean CVMgcimplArrayCopyBoolean#elif defined(CVMGC_HAS_NO_BOOLEAN_READ_BARRIER) && \      defined(CVMGC_HAS_NO_BOOLEAN_WRITE_BARRIER)#define CVMD_arrayCopyBoolean(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultNoBarrierArrayCopy(srcArr, srcIdx, dstArr, dstIdx, \                                         len, CVMJavaBoolean, Boolean)#else#define CVMD_arrayCopyBoolean(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultArrayCopy(srcArr, srcIdx, dstArr, dstIdx, len, \                                     CVMJavaBoolean, Boolean)#endif#ifdef CVMgcimplArrayCopyShort#define CVMD_arrayCopyShort CVMgcimplArrayCopyShort#elif defined(CVMGC_HAS_NO_SHORT_READ_BARRIER) && \      defined(CVMGC_HAS_NO_SHORT_WRITE_BARRIER)#define CVMD_arrayCopyShort(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultNoBarrierArrayCopy(srcArr, srcIdx, dstArr, dstIdx, \                                         len, CVMJavaShort, Short)#else#define CVMD_arrayCopyShort(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultArrayCopy(srcArr, srcIdx, dstArr, dstIdx, len, \                                     CVMJavaShort, Short)#endif#ifdef CVMgcimplArrayCopyChar#define CVMD_arrayCopyChar CVMgcimplArrayCopyChar#elif defined(CVMGC_HAS_NO_CHAR_READ_BARRIER) && \      defined(CVMGC_HAS_NO_CHAR_WRITE_BARRIER)#define CVMD_arrayCopyChar(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultNoBarrierArrayCopy(srcArr, srcIdx, dstArr, dstIdx, \                                         len, CVMJavaChar, Char)#else#define CVMD_arrayCopyChar(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultArrayCopy(srcArr, srcIdx, dstArr, dstIdx, len, \                                     CVMJavaChar, Char)#endif#ifdef CVMgcimplArrayCopyInt#define CVMD_arrayCopyInt CVMgcimplArrayCopyInt#elif defined(CVMGC_HAS_NO_INT_READ_BARRIER) && \      defined(CVMGC_HAS_NO_INT_WRITE_BARRIER)#define CVMD_arrayCopyInt(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultNoBarrierArrayCopy(srcArr, srcIdx, dstArr, dstIdx, \                                         len, CVMJavaInt, Int)#else#define CVMD_arrayCopyInt(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultArrayCopy(srcArr, srcIdx, dstArr, dstIdx, len, \                                     CVMJavaInt, Int)#endif#ifdef CVMgcimplArrayCopyFloat#define CVMD_arrayCopyFloat CVMgcimplArrayCopyFloat#elif defined(CVMGC_HAS_NO_FLOAT_READ_BARRIER) && \      defined(CVMGC_HAS_NO_FLOAT_WRITE_BARRIER)#define CVMD_arrayCopyFloat(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultNoBarrierArrayCopy(srcArr, srcIdx, dstArr, dstIdx, \                                         len, CVMJavaFloat, Float)#else#define CVMD_arrayCopyFloat(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultArrayCopy(srcArr, srcIdx, dstArr, dstIdx, len, \                                     CVMJavaFloat, Float)#endif#ifdef CVMgcimplArrayCopyRef#define CVMD_arrayCopyRef CVMgcimplArrayCopyRef#elif defined(CVMGC_HAS_NO_REF_READ_BARRIER) && \      defined(CVMGC_HAS_NO_REF_WRITE_BARRIER)#define CVMD_arrayCopyRef(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultNoBarrierArrayCopy(srcArr, srcIdx, dstArr, dstIdx, \                                         len, CVMObject*, Ref)#else#define CVMD_arrayCopyRef(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultArrayCopy(srcArr, srcIdx, dstArr, dstIdx, len, \                                     CVMObject*, Ref)#endif#ifdef CVMgcimplArrayCopyLong#define CVMD_arrayCopyLong CVMgcimplArrayCopyLong#elif defined(CVMGC_HAS_NO_64BIT_READ_BARRIER) && \      defined(CVMGC_HAS_NO_64BIT_WRITE_BARRIER)#define CVMD_arrayCopyLong(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultNoBarrierArrayCopy(srcArr, srcIdx, dstArr, dstIdx, \                                         len, CVMJavaLong, Long)#else#define CVMD_arrayCopyLong(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultArrayCopy(srcArr, srcIdx, dstArr, dstIdx, len, \                                     CVMJavaLong, Long)#endif#ifdef CVMgcimplArrayCopyDouble#define CVMD_arrayCopyDouble CVMgcimplArrayCopyDouble#elif defined(CVMGC_HAS_NO_64BIT_READ_BARRIER) && \      defined(CVMGC_HAS_NO_64BIT_WRITE_BARRIER)#define CVMD_arrayCopyDouble(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultNoBarrierArrayCopy(srcArr, srcIdx, dstArr, dstIdx, \                                         len, CVMJavaDouble, Double)#else#define CVMD_arrayCopyDouble(srcArr, srcIdx, dstArr, dstIdx, len) \    CVMDprivateDefaultArrayCopy(srcArr, srcIdx, dstArr, dstIdx, len, \                                     CVMJavaDouble, Double)#endif/* * The location of an object field, with "slot index" off_. */#define CVMDprivate_fieldLoc32(o_, off_) \    ((CVMJavaVal32 volatile *)(o_) + (off_))/* * Typed read, write, 32-bit, with appropriate R/W barriers. */#define CVMDprivate_typedRead(o_, off_, item_, barrKind_, type_)	\    {									\	type_ volatile *fieldLoc_ = 					\           (type_ volatile *)CVMDprivate_fieldLoc32(o_, off_);		\	CVMgcimplReadBarrier##barrKind_((o_), (fieldLoc_));		\        (item_) = *fieldLoc_;						\    }#define CVMDprivate_typedWrite(o_, off_, item_, barrKind_, type_) 	 \    {									 \	type_ volatile *fieldLoc_ = 					 \	    (type_ volatile *)CVMDprivate_fieldLoc32(o_, off_);	 	 \	CVMgcimplWriteBarrier##barrKind_((o_), (fieldLoc_), (item_));	 \        *fieldLoc_ = (item_);						 \    }#ifdef __cplusplus#define ASSIGN_VAL32(lhs, rhs)	((lhs).raw = (rhs).raw)#else#define ASSIGN_VAL32(lhs, rhs)	((lhs) = (rhs))#endif/* * Weakly-typed (non-reference) read, write, 32-bit with R/W barriers. * * Make generic 32-bit barriers look like Int barriers. */#define CVMD_fieldRead32(o_, off_, item_)				     \    {									     \	CVMJavaVal32 volatile* fieldLoc_ = CVMDprivate_fieldLoc32(o_, off_); \	CVMgcimplReadBarrierInt((o_), ((CVMJavaInt*)(fieldLoc_)));	     \	ASSIGN_VAL32((item_), *fieldLoc_);				     \    }#define CVMD_fieldWrite32(o_, off_, item_)				     \    {									     \	CVMJavaVal32 volatile* fieldLoc_ = CVMDprivate_fieldLoc32(o_, off_); \	CVMgcimplWriteBarrierInt((o_), ((CVMJavaInt*)(fieldLoc_)),	     \				 (item_).i);				     \	ASSIGN_VAL32(*fieldLoc_, (item_));				     \    }/* * Weakly-typed read, write, 64-bit */#define CVMD_fieldRead64(o_, off_, location_)				     \    {									     \	CVMJavaVal32 volatile* fieldLoc_ = CVMDprivate_fieldLoc32(o_, off_); \	union {CVMUint32 x;} tmp_[2];					     \	CVMgcimplReadBarrier64((o_), (fieldLoc_));			     \        tmp_[0].x = (&(fieldLoc_)->raw)[0];				     \        tmp_[1].x = (&(fieldLoc_)->raw)[1];				     \        CVMmemCopy64(&(location_)->raw, &tmp_[0].x);			     \    }#define CVMD_fieldWrite64(o_, off_, location_)				     \    {									     \	CVMJavaVal32 volatile* fieldLoc_ = CVMDprivate_fieldLoc32(o_, off_); \	union {CVMUint32 x;} tmp_[2];					     \	CVMgcimplWriteBarrier64((o_), (fieldLoc_), (location_));	     \

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?