package realm

import (
	"os"
	"syscall"

	"github.com/tidbcloud/ffs/pkg/v1/proto"
	"golang.org/x/sys/unix"
)

func convertToStatfsResp(statfs *syscall.Statfs_t) *proto.StatfsResp {
	s := &proto.StatfsResp{}
	s.Blocks = statfs.Blocks
	s.Bsize = uint32(statfs.Bsize)
	s.Bfree = statfs.Bfree
	s.Bavail = statfs.Bavail
	s.Files = statfs.Files
	s.Ffree = statfs.Ffree
	s.Frsize = uint32(statfs.Frsize)
	s.Namelen = uint32(statfs.Namelen)
	return s
}

func fdatasync(f *os.File) error {
	return unix.Fdatasync(int(f.Fd()))
}

func fallocate(fd int, mode uint32, off int64, len int64) (err error) {
	return syscall.Fallocate(fd, mode, off, len)
}
