From 488111ce390218806fca933b89279b766f7ff49c Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sun, 12 Apr 2020 17:15:03 +0200 Subject: inomap: split into separate package inomap will also be used by fusefrontend_reverse in the future. Split if off openfiletable to make it independent. --- internal/inomap/qino.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 internal/inomap/qino.go (limited to 'internal/inomap/qino.go') diff --git a/internal/inomap/qino.go b/internal/inomap/qino.go new file mode 100644 index 0000000..8f99004 --- /dev/null +++ b/internal/inomap/qino.go @@ -0,0 +1,25 @@ +package inomap + +import ( + "syscall" +) + +// QIno = Qualified Inode number. +// Uniquely identifies a backing file through the device number, +// inode number pair. +type QIno struct { + // Stat_t.{Dev,Ino} is uint64 on 32- and 64-bit Linux + Dev uint64 + Ino uint64 +} + +// QInoFromStat fills a new QIno struct with the passed Stat_t info. +func QInoFromStat(st *syscall.Stat_t) QIno { + return QIno{ + // There are some architectures that use 32-bit values here + // (darwin, freebsd-32, maybe others). Add and explicit cast to make + // this function work everywhere. + Dev: uint64(st.Dev), + Ino: uint64(st.Ino), + } +} -- cgit v1.2.3