Package io.netty.util.internal
Class PlatformDependent0
- java.lang.Object
-
- io.netty.util.internal.PlatformDependent0
-
final class PlatformDependent0 extends java.lang.ObjectThePlatformDependentoperations which requires access tosun.misc.*.
-
-
Field Summary
Fields Modifier and Type Field Description private static longADDRESS_FIELD_OFFSETprivate static java.lang.reflect.MethodALIGN_SLICEprivate static java.lang.reflect.MethodALLOCATE_ARRAY_METHOD(package private) static java.lang.Class<?>BASE_VIRTUAL_THREAD_CLASSprivate static longBITS_MAX_DIRECT_MEMORYprivate static longBYTE_ARRAY_BASE_OFFSETprivate static java.lang.reflect.Constructor<?>DIRECT_BUFFER_CONSTRUCTORprivate static java.lang.ThrowableEXPLICIT_NO_UNSAFE_CAUSE(package private) static intHASH_CODE_ASCII_SEED(package private) static intHASH_CODE_C1(package private) static intHASH_CODE_C2private static longINT_ARRAY_BASE_OFFSETprivate static longINT_ARRAY_INDEX_SCALEprivate static java.lang.ObjectINTERNAL_UNSAFEprivate static booleanIS_ANDROIDprivate static booleanIS_EXPLICIT_TRY_REFLECTION_SET_ACCESSIBLE(package private) static java.lang.reflect.MethodIS_VIRTUAL_THREAD_METHODprivate static intJAVA_VERSIONprivate static InternalLoggerloggerprivate static longLONG_ARRAY_BASE_OFFSETprivate static longLONG_ARRAY_INDEX_SCALEprivate static booleanRUNNING_IN_NATIVE_IMAGEprivate static booleanSTORE_FENCE_AVAILABLEprivate static booleanUNALIGNED(package private) static sun.misc.UnsafeUNSAFEprivate static longUNSAFE_COPY_THRESHOLDLimits the number of bytes to copy perUnsafe.copyMemory(long, long, long)to allow safepoint polling during a large copy.private static java.lang.ThrowableUNSAFE_UNAVAILABILITY_CAUSE
-
Constructor Summary
Constructors Modifier Constructor Description privatePlatformDependent0()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description (package private) static intaddressSize()(package private) static java.nio.ByteBufferalignSlice(java.nio.ByteBuffer buffer, int alignment)(package private) static java.nio.ByteBufferallocateDirectNoCleaner(int capacity)(package private) static longallocateMemory(long size)(package private) static byte[]allocateUninitializedArray(int size)(package private) static longbitsMaxDirectMemory()Any value >= 0 should be considered as a valid max direct memory value.(package private) static longbyteArrayBaseOffset()(package private) static voidcopyMemory(long srcAddr, long dstAddr, long length)(package private) static voidcopyMemory(java.lang.Object src, long srcOffset, java.lang.Object dst, long dstOffset, long length)private static voidcopyMemoryWithSafePointPolling(long srcAddr, long dstAddr, long length)private static voidcopyMemoryWithSafePointPolling(java.lang.Object src, long srcOffset, java.lang.Object dst, long dstOffset, long length)(package private) static longdirectBufferAddress(java.nio.ByteBuffer buffer)(package private) static booleanequals(byte[] bytes1, int startPos1, byte[] bytes2, int startPos2, int length)(package private) static intequalsConstantTime(byte[] bytes1, int startPos1, byte[] bytes2, int startPos2, int length)private static java.lang.ThrowableexplicitNoUnsafeCause0()private static booleanexplicitTryReflectionSetAccessible0()(package private) static voidfreeMemory(long address)private static java.lang.Class<?>getBaseVirtualThreadClass()(package private) static bytegetByte(byte[] data, int index)(package private) static bytegetByte(byte[] data, long index)(package private) static bytegetByte(long address)(package private) static java.lang.ClassLoadergetClassLoader(java.lang.Class<?> clazz)(package private) static java.lang.ClassLoadergetContextClassLoader()(package private) static intgetInt(byte[] data, int index)(package private) static intgetInt(int[] data, long index)(package private) static intgetInt(long address)(package private) static intgetInt(java.lang.Object object, long fieldOffset)(package private) static intgetIntVolatile(long address)private static java.lang.reflect.MethodgetIsVirtualThreadMethod()(package private) static longgetLong(byte[] data, int index)(package private) static longgetLong(long address)(package private) static longgetLong(long[] data, long index)private static longgetLong(java.lang.Object object, long fieldOffset)(package private) static java.lang.ObjectgetObject(java.lang.Object object, long fieldOffset)(package private) static shortgetShort(byte[] data, int index)(package private) static shortgetShort(long address)(package private) static java.lang.ClassLoadergetSystemClassLoader()(package private) static java.lang.ThrowablegetUnsafeUnavailabilityCause()(package private) static booleanhasAlignSliceMethod()(package private) static booleanhasAllocateArrayMethod()(package private) static booleanhasDirectBufferNoCleanerConstructor()(package private) static inthashCodeAscii(byte[] bytes, int startPos, int length)(package private) static inthashCodeAsciiCompute(long value, int hash)(package private) static inthashCodeAsciiSanitize(byte value)(package private) static inthashCodeAsciiSanitize(int value)(package private) static inthashCodeAsciiSanitize(short value)(package private) static booleanhasUnsafe()(package private) static booleanisAndroid()private static booleanisAndroid0()(package private) static booleanisExplicitNoUnsafe()(package private) static booleanisExplicitTryReflectionSetAccessible()(package private) static booleanisUnaligned()(package private) static booleanisVirtualThread(java.lang.Thread thread)(package private) static booleanisZero(byte[] bytes, int startPos, int length)(package private) static intjavaVersion()private static intjavaVersion0()(package private) static intmajorVersion(java.lang.String javaSpecVersion)(package private) static intmajorVersionFromJavaSpecificationVersion()(package private) static java.nio.ByteBuffernewDirectBuffer(long address, int capacity)(package private) static longobjectFieldOffset(java.lang.reflect.Field field)(package private) static voidputByte(byte[] data, int index, byte value)(package private) static voidputByte(long address, byte value)(package private) static voidputByte(java.lang.Object data, long offset, byte value)(package private) static voidputInt(byte[] data, int index, int value)(package private) static voidputInt(long address, int value)(package private) static voidputIntOrdered(long adddress, int newValue)(package private) static voidputLong(byte[] data, int index, long value)(package private) static voidputLong(long address, long value)(package private) static voidputObject(java.lang.Object o, long offset, java.lang.Object x)(package private) static voidputShort(byte[] data, int index, short value)(package private) static voidputShort(long address, short value)(package private) static java.nio.ByteBufferreallocateDirectNoCleaner(java.nio.ByteBuffer buffer, int capacity)(package private) static longreallocateMemory(long address, long newSize)(package private) static voidsafeConstructPutInt(java.lang.Object object, long fieldOffset, int value)(package private) static voidsetMemory(long address, long bytes, byte value)(package private) static voidsetMemory(java.lang.Object o, long offset, long bytes, byte value)(package private) static voidthrowException(java.lang.Throwable cause)(package private) static booleanunalignedAccess()
-
-
-
Field Detail
-
logger
private static final InternalLogger logger
-
ADDRESS_FIELD_OFFSET
private static final long ADDRESS_FIELD_OFFSET
-
BYTE_ARRAY_BASE_OFFSET
private static final long BYTE_ARRAY_BASE_OFFSET
-
INT_ARRAY_BASE_OFFSET
private static final long INT_ARRAY_BASE_OFFSET
-
INT_ARRAY_INDEX_SCALE
private static final long INT_ARRAY_INDEX_SCALE
-
LONG_ARRAY_BASE_OFFSET
private static final long LONG_ARRAY_BASE_OFFSET
-
LONG_ARRAY_INDEX_SCALE
private static final long LONG_ARRAY_INDEX_SCALE
-
DIRECT_BUFFER_CONSTRUCTOR
private static final java.lang.reflect.Constructor<?> DIRECT_BUFFER_CONSTRUCTOR
-
ALLOCATE_ARRAY_METHOD
private static final java.lang.reflect.Method ALLOCATE_ARRAY_METHOD
-
ALIGN_SLICE
private static final java.lang.reflect.Method ALIGN_SLICE
-
JAVA_VERSION
private static final int JAVA_VERSION
-
IS_ANDROID
private static final boolean IS_ANDROID
-
EXPLICIT_NO_UNSAFE_CAUSE
private static final java.lang.Throwable EXPLICIT_NO_UNSAFE_CAUSE
-
STORE_FENCE_AVAILABLE
private static final boolean STORE_FENCE_AVAILABLE
-
UNSAFE_UNAVAILABILITY_CAUSE
private static final java.lang.Throwable UNSAFE_UNAVAILABILITY_CAUSE
-
INTERNAL_UNSAFE
private static final java.lang.Object INTERNAL_UNSAFE
-
RUNNING_IN_NATIVE_IMAGE
private static final boolean RUNNING_IN_NATIVE_IMAGE
-
IS_EXPLICIT_TRY_REFLECTION_SET_ACCESSIBLE
private static final boolean IS_EXPLICIT_TRY_REFLECTION_SET_ACCESSIBLE
-
IS_VIRTUAL_THREAD_METHOD
static final java.lang.reflect.Method IS_VIRTUAL_THREAD_METHOD
-
BASE_VIRTUAL_THREAD_CLASS
static final java.lang.Class<?> BASE_VIRTUAL_THREAD_CLASS
-
UNSAFE
static final sun.misc.Unsafe UNSAFE
-
HASH_CODE_ASCII_SEED
static final int HASH_CODE_ASCII_SEED
- See Also:
- Constant Field Values
-
HASH_CODE_C1
static final int HASH_CODE_C1
- See Also:
- Constant Field Values
-
HASH_CODE_C2
static final int HASH_CODE_C2
- See Also:
- Constant Field Values
-
UNSAFE_COPY_THRESHOLD
private static final long UNSAFE_COPY_THRESHOLD
Limits the number of bytes to copy perUnsafe.copyMemory(long, long, long)to allow safepoint polling during a large copy.- See Also:
- Constant Field Values
-
UNALIGNED
private static final boolean UNALIGNED
-
BITS_MAX_DIRECT_MEMORY
private static final long BITS_MAX_DIRECT_MEMORY
-
-
Method Detail
-
getIsVirtualThreadMethod
private static java.lang.reflect.Method getIsVirtualThreadMethod()
-
getBaseVirtualThreadClass
private static java.lang.Class<?> getBaseVirtualThreadClass()
-
isVirtualThread
static boolean isVirtualThread(java.lang.Thread thread)
- Parameters:
thread- The thread to be checked.- Returns:
trueif thisThreadis a virtual thread,falseotherwise.
-
isExplicitNoUnsafe
static boolean isExplicitNoUnsafe()
-
explicitNoUnsafeCause0
private static java.lang.Throwable explicitNoUnsafeCause0()
-
isUnaligned
static boolean isUnaligned()
-
bitsMaxDirectMemory
static long bitsMaxDirectMemory()
Any value >= 0 should be considered as a valid max direct memory value.
-
hasUnsafe
static boolean hasUnsafe()
-
getUnsafeUnavailabilityCause
static java.lang.Throwable getUnsafeUnavailabilityCause()
-
unalignedAccess
static boolean unalignedAccess()
-
throwException
static void throwException(java.lang.Throwable cause)
-
hasDirectBufferNoCleanerConstructor
static boolean hasDirectBufferNoCleanerConstructor()
-
reallocateDirectNoCleaner
static java.nio.ByteBuffer reallocateDirectNoCleaner(java.nio.ByteBuffer buffer, int capacity)
-
allocateDirectNoCleaner
static java.nio.ByteBuffer allocateDirectNoCleaner(int capacity)
-
hasAlignSliceMethod
static boolean hasAlignSliceMethod()
-
alignSlice
static java.nio.ByteBuffer alignSlice(java.nio.ByteBuffer buffer, int alignment)
-
hasAllocateArrayMethod
static boolean hasAllocateArrayMethod()
-
allocateUninitializedArray
static byte[] allocateUninitializedArray(int size)
-
newDirectBuffer
static java.nio.ByteBuffer newDirectBuffer(long address, int capacity)
-
directBufferAddress
static long directBufferAddress(java.nio.ByteBuffer buffer)
-
byteArrayBaseOffset
static long byteArrayBaseOffset()
-
getObject
static java.lang.Object getObject(java.lang.Object object, long fieldOffset)
-
getInt
static int getInt(java.lang.Object object, long fieldOffset)
-
safeConstructPutInt
static void safeConstructPutInt(java.lang.Object object, long fieldOffset, int value)
-
getLong
private static long getLong(java.lang.Object object, long fieldOffset)
-
objectFieldOffset
static long objectFieldOffset(java.lang.reflect.Field field)
-
getByte
static byte getByte(long address)
-
getShort
static short getShort(long address)
-
getInt
static int getInt(long address)
-
getLong
static long getLong(long address)
-
getByte
static byte getByte(byte[] data, int index)
-
getByte
static byte getByte(byte[] data, long index)
-
getShort
static short getShort(byte[] data, int index)
-
getInt
static int getInt(byte[] data, int index)
-
getInt
static int getInt(int[] data, long index)
-
getIntVolatile
static int getIntVolatile(long address)
-
putIntOrdered
static void putIntOrdered(long adddress, int newValue)
-
getLong
static long getLong(byte[] data, int index)
-
getLong
static long getLong(long[] data, long index)
-
putByte
static void putByte(long address, byte value)
-
putShort
static void putShort(long address, short value)
-
putInt
static void putInt(long address, int value)
-
putLong
static void putLong(long address, long value)
-
putByte
static void putByte(byte[] data, int index, byte value)
-
putByte
static void putByte(java.lang.Object data, long offset, byte value)
-
putShort
static void putShort(byte[] data, int index, short value)
-
putInt
static void putInt(byte[] data, int index, int value)
-
putLong
static void putLong(byte[] data, int index, long value)
-
putObject
static void putObject(java.lang.Object o, long offset, java.lang.Object x)
-
copyMemory
static void copyMemory(long srcAddr, long dstAddr, long length)
-
copyMemoryWithSafePointPolling
private static void copyMemoryWithSafePointPolling(long srcAddr, long dstAddr, long length)
-
copyMemory
static void copyMemory(java.lang.Object src, long srcOffset, java.lang.Object dst, long dstOffset, long length)
-
copyMemoryWithSafePointPolling
private static void copyMemoryWithSafePointPolling(java.lang.Object src, long srcOffset, java.lang.Object dst, long dstOffset, long length)
-
setMemory
static void setMemory(long address, long bytes, byte value)
-
setMemory
static void setMemory(java.lang.Object o, long offset, long bytes, byte value)
-
equals
static boolean equals(byte[] bytes1, int startPos1, byte[] bytes2, int startPos2, int length)
-
equalsConstantTime
static int equalsConstantTime(byte[] bytes1, int startPos1, byte[] bytes2, int startPos2, int length)
-
isZero
static boolean isZero(byte[] bytes, int startPos, int length)
-
hashCodeAscii
static int hashCodeAscii(byte[] bytes, int startPos, int length)
-
hashCodeAsciiCompute
static int hashCodeAsciiCompute(long value, int hash)
-
hashCodeAsciiSanitize
static int hashCodeAsciiSanitize(int value)
-
hashCodeAsciiSanitize
static int hashCodeAsciiSanitize(short value)
-
hashCodeAsciiSanitize
static int hashCodeAsciiSanitize(byte value)
-
getClassLoader
static java.lang.ClassLoader getClassLoader(java.lang.Class<?> clazz)
-
getContextClassLoader
static java.lang.ClassLoader getContextClassLoader()
-
getSystemClassLoader
static java.lang.ClassLoader getSystemClassLoader()
-
addressSize
static int addressSize()
-
allocateMemory
static long allocateMemory(long size)
-
freeMemory
static void freeMemory(long address)
-
reallocateMemory
static long reallocateMemory(long address, long newSize)
-
isAndroid
static boolean isAndroid()
-
isAndroid0
private static boolean isAndroid0()
-
explicitTryReflectionSetAccessible0
private static boolean explicitTryReflectionSetAccessible0()
-
isExplicitTryReflectionSetAccessible
static boolean isExplicitTryReflectionSetAccessible()
-
javaVersion
static int javaVersion()
-
javaVersion0
private static int javaVersion0()
-
majorVersionFromJavaSpecificationVersion
static int majorVersionFromJavaSpecificationVersion()
-
majorVersion
static int majorVersion(java.lang.String javaSpecVersion)
-
-