From b4847da83974214292f7473afb67cde9321f9210 Mon Sep 17 00:00:00 2001 From: EnumDev Date: Sat, 15 Mar 2025 09:23:01 +0200 Subject: [PATCH] Add swap fstab entry support --- cmd/enit/mount.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/cmd/enit/mount.go b/cmd/enit/mount.go index 55a5aac..b348216 100644 --- a/cmd/enit/mount.go +++ b/cmd/enit/mount.go @@ -1,10 +1,12 @@ package main import ( + "fmt" "golang.org/x/sys/unix" "os" "slices" "strings" + "unsafe" ) var flagsEquivalence = map[string]uintptr{ @@ -111,6 +113,8 @@ func mountFstabEntries() error { return err } + swapPriority := -2 + for _, line := range strings.Split(string(bytes), "\n") { line = strings.TrimSpace(line) if strings.HasPrefix(line, "#") || line == "" { @@ -128,6 +132,18 @@ func mountFstabEntries() error { continue } + if fstype == "swap" { + b := append([]byte(source), 0) + const SwapFlagPrioShift = 0 + const SwapFlagPrioMask = 0x7fff + _, _, err := unix.Syscall(unix.SYS_SWAPON, uintptr(unsafe.Pointer(&b[0])), uintptr((swapPriority<