summaryrefslogtreecommitdiffstats
path: root/vendor/modernc.org/libc/libc64.go
blob: 01690fe8e039a15775107c9b60d1b9ae404ff6b5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Copyright 2020 The Libc Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

//go:build amd64 || arm64 || ppc64le || riscv64 || s390x || loong64
// +build amd64 arm64 ppc64le riscv64 s390x loong64

package libc // import "modernc.org/libc"

const (
	heapSize = 2 << 30 // Adjust for your debugging session requirements and system RAM size.
)

type (
	// RawMem represents the biggest byte array the runtime can handle
	RawMem [1<<50 - 1]byte

	// 48-5*8 = 8 bytes left to pad
	stackHeaderPadding struct {
		a uintptr
	}
)

type bits []int

func newBits(n int) (r bits)  { return make(bits, (n+63)>>6) }
func (b bits) has(n int) bool { return b != nil && b[n>>6]&(1<<uint(n&63)) != 0 }
func (b bits) set(n int)      { b[n>>6] |= 1 << uint(n&63) }