Source file src/runtime/align_runtime_test.go

     1  // Copyright 2022 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // This file lives in the runtime package
     6  // so we can get access to the runtime guts.
     7  // The rest of the implementation of this test is in align_test.go.
     8  
     9  package runtime
    10  
    11  import "unsafe"
    12  
    13  // AtomicFields is the set of fields on which we perform 64-bit atomic
    14  // operations (all the *64 operations in internal/runtime/atomic).
    15  var AtomicFields = []uintptr{
    16  	unsafe.Offsetof(m{}.procid),
    17  	unsafe.Offsetof(p{}.gcFractionalMarkTime),
    18  	unsafe.Offsetof(profBuf{}.overflow),
    19  	unsafe.Offsetof(profBuf{}.overflowTime),
    20  	unsafe.Offsetof(heapStatsDelta{}.tinyAllocCount),
    21  	unsafe.Offsetof(heapStatsDelta{}.smallAllocCount),
    22  	unsafe.Offsetof(heapStatsDelta{}.smallFreeCount),
    23  	unsafe.Offsetof(heapStatsDelta{}.largeAlloc),
    24  	unsafe.Offsetof(heapStatsDelta{}.largeAllocCount),
    25  	unsafe.Offsetof(heapStatsDelta{}.largeFree),
    26  	unsafe.Offsetof(heapStatsDelta{}.largeFreeCount),
    27  	unsafe.Offsetof(heapStatsDelta{}.committed),
    28  	unsafe.Offsetof(heapStatsDelta{}.released),
    29  	unsafe.Offsetof(heapStatsDelta{}.inHeap),
    30  	unsafe.Offsetof(heapStatsDelta{}.inStacks),
    31  	unsafe.Offsetof(heapStatsDelta{}.inPtrScalarBits),
    32  	unsafe.Offsetof(heapStatsDelta{}.inWorkBufs),
    33  	unsafe.Offsetof(lfnode{}.next),
    34  	unsafe.Offsetof(mstats{}.last_gc_nanotime),
    35  	unsafe.Offsetof(mstats{}.last_gc_unix),
    36  	unsafe.Offsetof(workType{}.bytesMarked),
    37  }
    38  
    39  // AtomicVariables is the set of global variables on which we perform
    40  // 64-bit atomic operations.
    41  var AtomicVariables = []unsafe.Pointer{
    42  	unsafe.Pointer(&ncgocall),
    43  	unsafe.Pointer(&test_z64),
    44  	unsafe.Pointer(&blockprofilerate),
    45  	unsafe.Pointer(&mutexprofilerate),
    46  	unsafe.Pointer(&gcController),
    47  	unsafe.Pointer(&memstats),
    48  	unsafe.Pointer(&sched),
    49  	unsafe.Pointer(&ticks),
    50  	unsafe.Pointer(&work),
    51  }
    52  

View as plain text