using System; using System.Runtime.CompilerServices; using UnityEngine.Scripting; namespace UnityEngine { // Token: 0x020003B6 RID: 950 [UsedByNativeCode] internal struct AtomicSafetyHandle { // Token: 0x06003796 RID: 14230 RVA: 0x0005EA64 File Offset: 0x0005CC64 internal static AtomicSafetyHandle Create() { AtomicSafetyHandle atomicSafetyHandle; AtomicSafetyHandle.Create_Injected(out atomicSafetyHandle); return atomicSafetyHandle; } // Token: 0x06003797 RID: 14231 RVA: 0x0005EA7C File Offset: 0x0005CC7C internal static void Release(AtomicSafetyHandle handle) { AtomicSafetyHandle.Release_Injected(ref handle); } // Token: 0x06003798 RID: 14232 [MethodImpl(MethodImplOptions.InternalCall)] internal static extern void PrepareUndisposable(ref AtomicSafetyHandle handle); // Token: 0x06003799 RID: 14233 [MethodImpl(MethodImplOptions.InternalCall)] internal static extern void UseSecondaryVersion(ref AtomicSafetyHandle handle); // Token: 0x0600379A RID: 14234 [MethodImpl(MethodImplOptions.InternalCall)] internal static extern void BumpSecondaryVersion(ref AtomicSafetyHandle handle); // Token: 0x0600379B RID: 14235 RVA: 0x0005EA88 File Offset: 0x0005CC88 internal static void EnforceAllBufferJobsHaveCompletedAndRelease(AtomicSafetyHandle handle) { AtomicSafetyHandle.EnforceAllBufferJobsHaveCompletedAndRelease_Injected(ref handle); } // Token: 0x0600379C RID: 14236 RVA: 0x0005EA94 File Offset: 0x0005CC94 internal static void CheckReadAndThrowNoEarlyOut(AtomicSafetyHandle handle) { AtomicSafetyHandle.CheckReadAndThrowNoEarlyOut_Injected(ref handle); } // Token: 0x0600379D RID: 14237 RVA: 0x0005EAA0 File Offset: 0x0005CCA0 internal static void CheckWriteAndThrowNoEarlyOut(AtomicSafetyHandle handle) { AtomicSafetyHandle.CheckWriteAndThrowNoEarlyOut_Injected(ref handle); } // Token: 0x0600379E RID: 14238 RVA: 0x0005EAAC File Offset: 0x0005CCAC internal static void CheckDeallocateAndThrow(AtomicSafetyHandle handle) { AtomicSafetyHandle.CheckDeallocateAndThrow_Injected(ref handle); } // Token: 0x0600379F RID: 14239 RVA: 0x0005EAB8 File Offset: 0x0005CCB8 internal unsafe static void CheckReadAndThrow(AtomicSafetyHandle handle) { AtomicSafetyHandleVersionMask* ptr = (AtomicSafetyHandleVersionMask*)(void*)handle.versionNode; if ((handle.version & AtomicSafetyHandleVersionMask.Read) == (AtomicSafetyHandleVersionMask)0 && handle.version != (*ptr & AtomicSafetyHandleVersionMask.ReadInv)) { AtomicSafetyHandle.CheckReadAndThrowNoEarlyOut(handle); } } // Token: 0x060037A0 RID: 14240 RVA: 0x0005EAF8 File Offset: 0x0005CCF8 internal unsafe static void CheckWriteAndThrow(AtomicSafetyHandle handle) { AtomicSafetyHandleVersionMask* ptr = (AtomicSafetyHandleVersionMask*)(void*)handle.versionNode; if ((handle.version & AtomicSafetyHandleVersionMask.Write) == (AtomicSafetyHandleVersionMask)0 && handle.version != (*ptr & AtomicSafetyHandleVersionMask.WriteInv)) { AtomicSafetyHandle.CheckWriteAndThrowNoEarlyOut(handle); } } // Token: 0x060037A1 RID: 14241 [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Create_Injected(out AtomicSafetyHandle ret); // Token: 0x060037A2 RID: 14242 [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Release_Injected(ref AtomicSafetyHandle handle); // Token: 0x060037A3 RID: 14243 [MethodImpl(MethodImplOptions.InternalCall)] private static extern void EnforceAllBufferJobsHaveCompletedAndRelease_Injected(ref AtomicSafetyHandle handle); // Token: 0x060037A4 RID: 14244 [MethodImpl(MethodImplOptions.InternalCall)] private static extern void CheckReadAndThrowNoEarlyOut_Injected(ref AtomicSafetyHandle handle); // Token: 0x060037A5 RID: 14245 [MethodImpl(MethodImplOptions.InternalCall)] private static extern void CheckWriteAndThrowNoEarlyOut_Injected(ref AtomicSafetyHandle handle); // Token: 0x060037A6 RID: 14246 [MethodImpl(MethodImplOptions.InternalCall)] private static extern void CheckDeallocateAndThrow_Injected(ref AtomicSafetyHandle handle); // Token: 0x04000C9F RID: 3231 internal IntPtr versionNode; // Token: 0x04000CA0 RID: 3232 internal AtomicSafetyHandleVersionMask version; } }