github.com/zuoyebang/bitalostable@v1.0.1-0.20240229032404-e3b99a834294/vfs/prefetch_linux.go (about) 1 // Copyright 2020 The LevelDB-Go and Pebble Authors. All rights reserved. Use 2 // of this source code is governed by a BSD-style license that can be found in 3 // the LICENSE file. 4 5 //go:build linux 6 // +build linux 7 8 package vfs 9 10 import "syscall" 11 12 // Prefetch signals the OS (on supported platforms) to fetch the next size 13 // bytes in file (as returned by os.File.Fd()) after offset into cache. Any 14 // subsequent reads in that range will not issue disk IO. 15 func Prefetch(file uintptr, offset uint64, size uint64) error { 16 _, _, err := syscall.Syscall(syscall.SYS_READAHEAD, uintptr(file), uintptr(offset), uintptr(size)) 17 return err 18 }