19 lines
631 B
Go
19 lines
631 B
Go
// Copyright 2020 The LevelDB-Go and Pebble 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 linux
|
|
// +build linux
|
|
|
|
package vfs
|
|
|
|
import "syscall"
|
|
|
|
// Prefetch signals the OS (on supported platforms) to fetch the next size
|
|
// bytes in file (as returned by os.File.Fd()) after offset into cache. Any
|
|
// subsequent reads in that range will not issue disk IO.
|
|
func Prefetch(file uintptr, offset uint64, size uint64) error {
|
|
_, _, err := syscall.Syscall(syscall.SYS_READAHEAD, uintptr(file), uintptr(offset), uintptr(size))
|
|
return err
|
|
}
|