
Imported golang.org/x/telemetry@9c0d19e to avoid go version requirement change. For #3815 For golang/go#70056
37 lines
937 B
Go
37 lines
937 B
Go
// Copyright 2011 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.
|
|
|
|
// This package is a lightly modified version of the mmap code
|
|
// in github.com/google/codesearch/index.
|
|
|
|
// The mmap package provides an abstraction for memory mapping files
|
|
// on different platforms.
|
|
package mmap
|
|
|
|
import (
|
|
"os"
|
|
)
|
|
|
|
// The backing file is never closed, so Data
|
|
// remains valid for the lifetime of the process.
|
|
type Data struct {
|
|
// TODO(pjw): might be better to define versions of Data
|
|
// for the 3 specializations
|
|
f *os.File
|
|
Data []byte
|
|
// Some windows magic
|
|
Windows interface{}
|
|
}
|
|
|
|
// Mmap maps the given file into memory.
|
|
// When remapping a file, pass the most recently returned Data.
|
|
func Mmap(f *os.File) (*Data, error) {
|
|
return mmapFile(f)
|
|
}
|
|
|
|
// Munmap unmaps the given file from memory.
|
|
func Munmap(d *Data) error {
|
|
return munmapFile(d)
|
|
}
|