aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/_mkmalloc/constants.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/_mkmalloc/constants.go')
-rw-r--r--src/runtime/_mkmalloc/constants.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/runtime/_mkmalloc/constants.go b/src/runtime/_mkmalloc/constants.go
new file mode 100644
index 0000000000..ad20c7b52b
--- /dev/null
+++ b/src/runtime/_mkmalloc/constants.go
@@ -0,0 +1,29 @@
+// Copyright 2025 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+const (
+ // Constants that we use and will transfer to the runtime.
+ minHeapAlign = 8
+ maxSmallSize = 32 << 10
+ smallSizeDiv = 8
+ smallSizeMax = 1024
+ largeSizeDiv = 128
+ pageShift = 13
+ tinySize = 16
+
+ // Derived constants.
+ pageSize = 1 << pageShift
+)
+
+const (
+ maxPtrSize = max(4, 8)
+ maxPtrBits = 8 * maxPtrSize
+
+ // Maximum size smallScanNoHeader would be called for, which is the
+ // maximum value gc.MinSizeForMallocHeader can have on any platform.
+ // gc.MinSizeForMallocHeader is defined as goarch.PtrSize * goarch.PtrBits.
+ smallScanNoHeaderMax = maxPtrSize * maxPtrBits
+)