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 MethodHandleABSOLUTE_PUT_ARRAYprivate static MethodHandleABSOLUTE_PUT_BUFFERprivate static longADDRESS_FIELD_OFFSETprivate static MethodHandleALIGN_SLICEprivate static MethodHandleALLOCATE_ARRAY_METHODprivate static longBITS_MAX_DIRECT_MEMORYprivate static longBYTE_ARRAY_BASE_OFFSETprivate static MethodHandleDIRECT_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 booleanIS_ANDROIDprivate static booleanIS_EXPLICIT_TRY_REFLECTION_SET_ACCESSIBLE(package private) static MethodHandleIS_VIRTUAL_THREAD_METHOD_HANDLEprivate static intJAVA_VERSIONprivate static InternalLoggerloggerprivate static longLONG_ARRAY_BASE_OFFSETprivate static longLONG_ARRAY_INDEX_SCALEprivate static MethodHandleMEMORY_SEGMENT_ADDRESS_OF_BUFFERprivate static MethodHandleOFFSET_SLICEprivate static booleanRUNNING_IN_NATIVE_IMAGEprivate static MethodHandleSPLITTABLE_RANDOM_NEXT_BYTESprivate 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 java.nio.ByteBufferabsolutePut(java.nio.ByteBuffer dst, int dstOffset, byte[] src, int srcOffset, int length)(package private) static java.nio.ByteBufferabsolutePut(java.nio.ByteBuffer dst, int dstOffset, java.nio.ByteBuffer src, int srcOffset, int length)(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 booleancompareAndSwapInt(java.lang.Object object, long fieldOffset, int expected, int value)(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)(package private) static intgetAndAddInt(java.lang.Object object, long fieldOffset, int value)(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(java.lang.Object object, long fieldOffset)private static MethodHandlegetIsVirtualThreadMethodHandle()(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 booleanhasAbsolutePutArrayMethod()(package private) static booleanhasAbsolutePutBufferMethod()(package private) static booleanhasAlignSliceMethod()(package private) static booleanhasAllocateArrayMethod()(package private) static booleanhasDirectBufferNoCleanerConstructor()(package private) static booleanhasDirectByteBufferAddress(java.nio.ByteBuffer buffer)(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 booleanhasMemorySegmentAddressOfBuffer()(package private) static booleanhasOffsetSliceMethod()(package private) static booleanhasUnsafe()(package private) static booleanisAndroid()private static booleanisAndroid0()(package private) static booleanisExplicitNoUnsafe()(package private) static booleanisExplicitTryReflectionSetAccessible()(package private) static booleanisNativeImage()(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 java.nio.ByteBufferoffsetSlice(java.nio.ByteBuffer buffer, int index, int length)(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 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 voidputOrderedInt(java.lang.Object object, long fieldOffset, int value)(package private) static voidputShort(byte[] data, int index, short value)(package private) static voidputShort(long address, short value)(package private) static voidputShortOrdered(long address, short newValue)(package private) static java.nio.ByteBufferreallocateDirectNoCleaner(java.nio.ByteBuffer buffer, int capacity)(package private) static longreallocateMemory(long address, long newSize)private static voidrethrowIfPossible(java.lang.Throwable cause)(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 voidsplittableRandomNextBytes(java.util.SplittableRandom rng, byte[] data)(package private) static voidthrowException(java.lang.Throwable cause)private static <E extends java.lang.Throwable>
voidthrowException0(java.lang.Throwable t)(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 MethodHandle DIRECT_BUFFER_CONSTRUCTOR
-
ALLOCATE_ARRAY_METHOD
private static final MethodHandle ALLOCATE_ARRAY_METHOD
-
ALIGN_SLICE
private static final MethodHandle ALIGN_SLICE
-
OFFSET_SLICE
private static final MethodHandle OFFSET_SLICE
-
ABSOLUTE_PUT_BUFFER
private static final MethodHandle ABSOLUTE_PUT_BUFFER
-
ABSOLUTE_PUT_ARRAY
private static final MethodHandle ABSOLUTE_PUT_ARRAY
-
MEMORY_SEGMENT_ADDRESS_OF_BUFFER
private static final MethodHandle MEMORY_SEGMENT_ADDRESS_OF_BUFFER
-
SPLITTABLE_RANDOM_NEXT_BYTES
private static final MethodHandle SPLITTABLE_RANDOM_NEXT_BYTES
-
IS_ANDROID
private static final boolean IS_ANDROID
-
JAVA_VERSION
private static final int JAVA_VERSION
-
EXPLICIT_NO_UNSAFE_CAUSE
private static final java.lang.Throwable EXPLICIT_NO_UNSAFE_CAUSE
-
UNSAFE_UNAVAILABILITY_CAUSE
private static final java.lang.Throwable UNSAFE_UNAVAILABILITY_CAUSE
-
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_HANDLE
static final MethodHandle IS_VIRTUAL_THREAD_METHOD_HANDLE
-
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
-
getIsVirtualThreadMethodHandle
private static MethodHandle getIsVirtualThreadMethodHandle()
-
isVirtualThread
static boolean isVirtualThread(java.lang.Thread thread)
- Parameters:
thread- The thread to be checked.- Returns:
trueif thisThreadis a virtual thread,falseotherwise.
-
isNativeImage
static boolean isNativeImage()
-
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()
-
hasMemorySegmentAddressOfBuffer
static boolean hasMemorySegmentAddressOfBuffer()
-
unalignedAccess
static boolean unalignedAccess()
-
splittableRandomNextBytes
static void splittableRandomNextBytes(java.util.SplittableRandom rng, byte[] data)
-
throwException
static void throwException(java.lang.Throwable cause)
-
throwException0
private static <E extends java.lang.Throwable> void throwException0(java.lang.Throwable t) throws E extends java.lang.Throwable- Throws:
E extends java.lang.Throwable
-
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)
-
hasOffsetSliceMethod
static boolean hasOffsetSliceMethod()
-
offsetSlice
static java.nio.ByteBuffer offsetSlice(java.nio.ByteBuffer buffer, int index, int length)
-
hasAbsolutePutBufferMethod
static boolean hasAbsolutePutBufferMethod()
-
hasAbsolutePutArrayMethod
static boolean hasAbsolutePutArrayMethod()
-
absolutePut
static java.nio.ByteBuffer absolutePut(java.nio.ByteBuffer dst, int dstOffset, java.nio.ByteBuffer src, int srcOffset, int length)
-
absolutePut
static java.nio.ByteBuffer absolutePut(java.nio.ByteBuffer dst, int dstOffset, byte[] src, int srcOffset, int length)
-
hasAllocateArrayMethod
static boolean hasAllocateArrayMethod()
-
allocateUninitializedArray
static byte[] allocateUninitializedArray(int size)
-
newDirectBuffer
static java.nio.ByteBuffer newDirectBuffer(long address, int capacity)
-
rethrowIfPossible
private static void rethrowIfPossible(java.lang.Throwable cause)
-
hasDirectByteBufferAddress
static boolean hasDirectByteBufferAddress(java.nio.ByteBuffer buffer)
-
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)
-
getIntVolatile
static int getIntVolatile(java.lang.Object object, long fieldOffset)
-
putOrderedInt
static void putOrderedInt(java.lang.Object object, long fieldOffset, int value)
-
getAndAddInt
static int getAndAddInt(java.lang.Object object, long fieldOffset, int value)
-
compareAndSwapInt
static boolean compareAndSwapInt(java.lang.Object object, long fieldOffset, int expected, int value)
-
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)
-
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)
-
putShortOrdered
static void putShortOrdered(long address, short newValue)
-
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)
-
-