/*
 * JuiceFS, Copyright (C) 2020 Juicedata, Inc.
 *
 * This program is free software: you can use, redistribute, and/or modify
 * it under the terms of the GNU Affero General Public License, version 3
 * or later ("AGPL"), as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

package chunk

import (
	"os"
	"syscall"
	"time"

	sys "golang.org/x/sys/windows"
)

func getAtime(fi os.FileInfo) time.Time {
	stat, ok := fi.Sys().(*syscall.Win32FileAttributeData)
	if ok {
		return time.Unix(0, stat.LastAccessTime.Nanoseconds())
	} else {
		return time.Unix(0, 0)
	}
}

func getNlink(fi os.FileInfo) int {
	return 1
}

func getDiskUsage(path string) (uint64, uint64, uint64, uint64) {
	var freeBytes, total, totalFree uint64
	err := sys.GetDiskFreeSpaceEx(sys.StringToUTF16Ptr(path), &freeBytes, &total, &totalFree)
	if err != nil {
		logger.Errorf("GetDiskFreeSpaceEx %s: %s", path, err.Error())
		return 1, 1, 1, 1
	}
	return total, freeBytes, 1, 1
}

func changeMode(dir string, st os.FileInfo, mode os.FileMode) {}
