summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--pkg/atomicbitops/BUILD2
-rw-r--r--pkg/atomicbitops/aligned_32bit_unsafe.go (renamed from pkg/tcpip/aligned_unsafe.go)2
-rw-r--r--pkg/atomicbitops/aligned_64bit.go (renamed from pkg/tcpip/aligned.go)2
-rw-r--r--pkg/tcpip/BUILD3
-rw-r--r--pkg/tcpip/socketops.go3
-rw-r--r--pkg/tcpip/stack/BUILD1
-rw-r--r--pkg/tcpip/stack/stack.go5
-rw-r--r--pkg/tcpip/tcpip.go3
8 files changed, 13 insertions, 8 deletions
diff --git a/pkg/atomicbitops/BUILD b/pkg/atomicbitops/BUILD
index 1a30f6967..11072d4de 100644
--- a/pkg/atomicbitops/BUILD
+++ b/pkg/atomicbitops/BUILD
@@ -5,6 +5,8 @@ package(licenses = ["notice"])
go_library(
name = "atomicbitops",
srcs = [
+ "aligned_32bit_unsafe.go",
+ "aligned_64bit.go",
"atomicbitops.go",
"atomicbitops_amd64.s",
"atomicbitops_arm64.s",
diff --git a/pkg/tcpip/aligned_unsafe.go b/pkg/atomicbitops/aligned_32bit_unsafe.go
index 35e869453..1d71a0641 100644
--- a/pkg/tcpip/aligned_unsafe.go
+++ b/pkg/atomicbitops/aligned_32bit_unsafe.go
@@ -14,7 +14,7 @@
// +build arm 386
-package tcpip
+package atomicbitops
import (
"sync/atomic"
diff --git a/pkg/tcpip/aligned.go b/pkg/atomicbitops/aligned_64bit.go
index ea22c101f..21043c53d 100644
--- a/pkg/tcpip/aligned.go
+++ b/pkg/atomicbitops/aligned_64bit.go
@@ -14,7 +14,7 @@
// +build !arm,!386
-package tcpip
+package atomicbitops
import "sync/atomic"
diff --git a/pkg/tcpip/BUILD b/pkg/tcpip/BUILD
index f71a805bf..eac18028d 100644
--- a/pkg/tcpip/BUILD
+++ b/pkg/tcpip/BUILD
@@ -18,8 +18,6 @@ go_template_instance(
go_library(
name = "tcpip",
srcs = [
- "aligned.go",
- "aligned_unsafe.go",
"errors.go",
"sock_err_list.go",
"socketops.go",
@@ -29,6 +27,7 @@ go_library(
],
visibility = ["//visibility:public"],
deps = [
+ "//pkg/atomicbitops",
"//pkg/sync",
"//pkg/tcpip/buffer",
"//pkg/waiter",
diff --git a/pkg/tcpip/socketops.go b/pkg/tcpip/socketops.go
index 9ce5f231b..5f8f2abe1 100644
--- a/pkg/tcpip/socketops.go
+++ b/pkg/tcpip/socketops.go
@@ -18,6 +18,7 @@ import (
"math"
"sync/atomic"
+ "gvisor.dev/gvisor/pkg/atomicbitops"
"gvisor.dev/gvisor/pkg/sync"
)
@@ -205,7 +206,7 @@ type SocketOptions struct {
getSendBufferLimits GetSendBufferLimits `state:"manual"`
// sendBufferSize determines the send buffer size for this socket.
- sendBufferSize AlignedAtomicInt64
+ sendBufferSize atomicbitops.AlignedAtomicInt64
// mu protects the access to the below fields.
mu sync.Mutex `state:"nosave"`
diff --git a/pkg/tcpip/stack/BUILD b/pkg/tcpip/stack/BUILD
index 49362333a..485f226b2 100644
--- a/pkg/tcpip/stack/BUILD
+++ b/pkg/tcpip/stack/BUILD
@@ -71,6 +71,7 @@ go_library(
],
visibility = ["//visibility:public"],
deps = [
+ "//pkg/atomicbitops",
"//pkg/ilist",
"//pkg/log",
"//pkg/rand",
diff --git a/pkg/tcpip/stack/stack.go b/pkg/tcpip/stack/stack.go
index 11ff65bf2..b3c96f4c9 100644
--- a/pkg/tcpip/stack/stack.go
+++ b/pkg/tcpip/stack/stack.go
@@ -29,6 +29,7 @@ import (
"time"
"golang.org/x/time/rate"
+ "gvisor.dev/gvisor/pkg/atomicbitops"
"gvisor.dev/gvisor/pkg/rand"
"gvisor.dev/gvisor/pkg/sync"
"gvisor.dev/gvisor/pkg/tcpip"
@@ -366,10 +367,10 @@ type ResumableEndpoint interface {
}
// uniqueIDGenerator is a default unique ID generator.
-type uniqueIDGenerator uint64
+type uniqueIDGenerator atomicbitops.AlignedAtomicUint64
func (u *uniqueIDGenerator) UniqueID() uint64 {
- return atomic.AddUint64((*uint64)(u), 1)
+ return ((*atomicbitops.AlignedAtomicUint64)(u)).Add(1)
}
// Stack is a networking stack, with all supported protocols, NICs, and route
diff --git a/pkg/tcpip/tcpip.go b/pkg/tcpip/tcpip.go
index a2935d695..9f15eb0d9 100644
--- a/pkg/tcpip/tcpip.go
+++ b/pkg/tcpip/tcpip.go
@@ -39,6 +39,7 @@ import (
"strings"
"time"
+ "gvisor.dev/gvisor/pkg/atomicbitops"
"gvisor.dev/gvisor/pkg/sync"
"gvisor.dev/gvisor/pkg/waiter"
)
@@ -1203,7 +1204,7 @@ type NetworkProtocolNumber uint32
// A StatCounter keeps track of a statistic.
type StatCounter struct {
- count AlignedAtomicUint64
+ count atomicbitops.AlignedAtomicUint64
}
// Increment adds one to the counter.