testSuite/cmd/mmap_unix.go (21 lines of code) (raw):

// +build linux darwin package cmd import ( "os" "syscall" ) type MMF []byte func NewMMF(file *os.File, writable bool, offset int64, length int64) (MMF, error) { prot, flags := syscall.PROT_READ, syscall.MAP_SHARED // Assume read-only if writable { prot, flags = syscall.PROT_READ|syscall.PROT_WRITE, syscall.MAP_SHARED } addr, err := syscall.Mmap(int(file.Fd()), offset, int(length), prot, flags) return MMF(addr), err } func (m *MMF) Unmap() { err := syscall.Munmap(*m) *m = nil if err != nil { panic(err) } }