Initial commit
This commit is contained in:
24
vendor/github.com/cockroachdb/pebble/internal/rawalloc/rawalloc.go
generated
vendored
Normal file
24
vendor/github.com/cockroachdb/pebble/internal/rawalloc/rawalloc.go
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
// Copyright 2018 The Cockroach Authors.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
// implied. See the License for the specific language governing
|
||||
// permissions and limitations under the License.
|
||||
|
||||
package rawalloc
|
||||
|
||||
// New returns a new byte slice of the specified length and capacity where the
|
||||
// backing memory is uninitialized. This differs from make([]byte) which
|
||||
// guarantees that the backing memory for the slice is initialized to zero. Use
|
||||
// carefully.
|
||||
func New(len, cap int) []byte {
|
||||
ptr := mallocgc(uintptr(cap), nil, false)
|
||||
return (*[maxArrayLen]byte)(ptr)[:len:cap]
|
||||
}
|
||||
22
vendor/github.com/cockroachdb/pebble/internal/rawalloc/rawalloc_32bit.go
generated
vendored
Normal file
22
vendor/github.com/cockroachdb/pebble/internal/rawalloc/rawalloc_32bit.go
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
// Copyright 2014 The Cockroach Authors.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
// implied. See the License for the specific language governing
|
||||
// permissions and limitations under the License.
|
||||
|
||||
//go:build 386 || amd64p32 || arm || armbe || mips || mipsle || mips64p32 || mips64p32le || ppc || sparc
|
||||
// +build 386 amd64p32 arm armbe mips mipsle mips64p32 mips64p32le ppc sparc
|
||||
|
||||
package rawalloc
|
||||
|
||||
const (
|
||||
maxArrayLen = 1<<31 - 1
|
||||
)
|
||||
22
vendor/github.com/cockroachdb/pebble/internal/rawalloc/rawalloc_64bit.go
generated
vendored
Normal file
22
vendor/github.com/cockroachdb/pebble/internal/rawalloc/rawalloc_64bit.go
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
// Copyright 2014 The Cockroach Authors.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
// implied. See the License for the specific language governing
|
||||
// permissions and limitations under the License.
|
||||
|
||||
//go:build amd64 || arm64 || arm64be || ppc64 || ppc64le || mips64 || mips64le || s390x || sparc64
|
||||
// +build amd64 arm64 arm64be ppc64 ppc64le mips64 mips64le s390x sparc64
|
||||
|
||||
package rawalloc
|
||||
|
||||
const (
|
||||
maxArrayLen = 1<<50 - 1
|
||||
)
|
||||
23
vendor/github.com/cockroachdb/pebble/internal/rawalloc/rawalloc_gccgo.go
generated
vendored
Normal file
23
vendor/github.com/cockroachdb/pebble/internal/rawalloc/rawalloc_gccgo.go
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
// Copyright 2018 The Cockroach Authors.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
// implied. See the License for the specific language governing
|
||||
// permissions and limitations under the License.
|
||||
|
||||
//go:build gccgo
|
||||
// +build gccgo
|
||||
|
||||
package rawalloc
|
||||
|
||||
import "unsafe"
|
||||
|
||||
//extern runtime.mallocgc
|
||||
func mallocgc(size uintptr, typ unsafe.Pointer, needzero bool) unsafe.Pointer
|
||||
28
vendor/github.com/cockroachdb/pebble/internal/rawalloc/rawalloc_go1.9.go
generated
vendored
Normal file
28
vendor/github.com/cockroachdb/pebble/internal/rawalloc/rawalloc_go1.9.go
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
// Copyright 2018 The Cockroach Authors.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
// implied. See the License for the specific language governing
|
||||
// permissions and limitations under the License.
|
||||
|
||||
//go:build gc && go1.9
|
||||
// +build gc,go1.9
|
||||
|
||||
package rawalloc
|
||||
|
||||
import "unsafe"
|
||||
|
||||
// The go:linkname directives provides backdoor access to private functions in
|
||||
// the runtime. Below we're accessing the mallocgc function. Note that this
|
||||
// access is necessarily tied to a specific Go release which is why this file
|
||||
// is protected by a build tag.
|
||||
|
||||
//go:linkname mallocgc runtime.mallocgc
|
||||
func mallocgc(size uintptr, typ unsafe.Pointer, needzero bool) unsafe.Pointer
|
||||
Reference in New Issue
Block a user