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 + -
显示快捷键?