github.com/cockroachdb/pebble@v1.1.1-0.20240513155919-3622ade60459/vfs/fadvise_linux.go (about)

     1  // Copyright 2019 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 "golang.org/x/sys/unix"
    11  
    12  // Calls Fadvise with FADV_RANDOM to disable readahead on a file descriptor.
    13  func fadviseRandom(f uintptr) error {
    14  	return unix.Fadvise(int(f), 0, 0, unix.FADV_RANDOM)
    15  }
    16  
    17  // Calls Fadvise with FADV_SEQUENTIAL to enable readahead on a file descriptor.
    18  func fadviseSequential(f uintptr) error {
    19  	return unix.Fadvise(int(f), 0, 0, unix.FADV_SEQUENTIAL)
    20  }