From c19f4ee67e604ba9358a42173cfef6e642ad3e02 Mon Sep 17 00:00:00 2001
From: ze0s <ze0s@riseup.net>
Date: Tue, 10 Dec 2024 02:24:23 +0100
Subject: [PATCH] build: add linkinfo_freebsd.go

---
 hardlinkfilemap/linkinfo_freebsd.go | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 hardlinkfilemap/linkinfo_freebsd.go

diff --git a/hardlinkfilemap/linkinfo_freebsd.go b/hardlinkfilemap/linkinfo_freebsd.go
new file mode 100644
index 0000000..1de6a47
--- /dev/null
+++ b/hardlinkfilemap/linkinfo_freebsd.go
@@ -0,0 +1,19 @@
+package hardlinkfilemap
+
+import (
+	"errors"
+	"os"
+	"strconv"
+	"syscall"
+)
+
+func LinkInfo(fi os.FileInfo, _ string) (string, uint64, error) {
+	sys, ok := fi.Sys().(*syscall.Stat_t)
+	if !ok {
+		return "", 0, errors.New("failed to get file identifier")
+	}
+
+	return strconv.FormatUint(sys.Dev, 10) + "|" + strconv.FormatUint(sys.Ino, 10),
+		uint64(sys.Nlink),
+		nil
+}