1// Copyright 2015 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 5package atomic 6 7import "unsafe" 8 9//go:noescape 10func Xadd(ptr *uint32, delta int32) uint32 11 12//go:noescape 13func Xadd64(ptr *uint64, delta int64) uint64 14 15//go:noescape 16func Xadduintptr(ptr *uintptr, delta uintptr) uintptr 17 18//go:noescape 19func Xchg(ptr *uint32, new uint32) uint32 20 21//go:noescape 22func Xchg64(ptr *uint64, new uint64) uint64 23 24//go:noescape 25func Xchguintptr(ptr *uintptr, new uintptr) uintptr 26 27//go:noescape 28func Load(ptr *uint32) uint32 29 30//go:noescape 31func Load8(ptr *uint8) uint8 32 33//go:noescape 34func Load64(ptr *uint64) uint64 35 36// NO go:noescape annotation; *ptr escapes if result escapes (#31525) 37func Loadp(ptr unsafe.Pointer) unsafe.Pointer 38 39//go:noescape 40func LoadAcq(ptr *uint32) uint32 41 42//go:noescape 43func LoadAcq64(ptr *uint64) uint64 44 45//go:noescape 46func LoadAcquintptr(ptr *uintptr) uintptr 47 48//go:noescape 49func Or8(ptr *uint8, val uint8) 50 51//go:noescape 52func And8(ptr *uint8, val uint8) 53 54//go:noescape 55func And(ptr *uint32, val uint32) 56 57//go:noescape 58func Or(ptr *uint32, val uint32) 59 60//go:noescape 61func And32(ptr *uint32, val uint32) uint32 62 63//go:noescape 64func Or32(ptr *uint32, val uint32) uint32 65 66//go:noescape 67func And64(ptr *uint64, val uint64) uint64 68 69//go:noescape 70func Or64(ptr *uint64, val uint64) uint64 71 72//go:noescape 73func Anduintptr(ptr *uintptr, val uintptr) uintptr 74 75//go:noescape 76func Oruintptr(ptr *uintptr, val uintptr) uintptr 77 78//go:noescape 79func Cas64(ptr *uint64, old, new uint64) bool 80 81//go:noescape 82func CasRel(ptr *uint32, old, new uint32) bool 83 84//go:noescape 85func Store(ptr *uint32, val uint32) 86 87//go:noescape 88func Store8(ptr *uint8, val uint8) 89 90//go:noescape 91func Store64(ptr *uint64, val uint64) 92 93// NO go:noescape annotation; see atomic_pointer.go. 94func StorepNoWB(ptr unsafe.Pointer, val unsafe.Pointer) 95 96//go:noescape 97func StoreRel(ptr *uint32, val uint32) 98 99//go:noescape 100func StoreRel64(ptr *uint64, val uint64) 101 102//go:noescape 103func StoreReluintptr(ptr *uintptr, val uintptr) 104