Documentation
¶
Overview ¶
Package vfs provides bindings and iterators over proc_pid_mountinfo(5).
Index ¶
Constants ¶
const (
MS_NOSYMFOLLOW = 0x100
)
Variables ¶
Functions ¶
Types ¶
type MountInfo ¶
type MountInfo struct { Next *MountInfo MountInfoEntry }
MountInfo represents the contents of a proc_pid_mountinfo(5) document.
type MountInfoDecoder ¶
type MountInfoDecoder struct {
// contains filtered or unexported fields
}
A MountInfoDecoder reads and decodes proc_pid_mountinfo(5) entries from an input stream.
func NewMountInfoDecoder ¶
func NewMountInfoDecoder(r io.Reader) *MountInfoDecoder
NewMountInfoDecoder returns a new decoder that reads from r.
The decoder introduces its own buffering and may read data from r beyond the mountinfo entries requested.
func (*MountInfoDecoder) Decode ¶
func (d *MountInfoDecoder) Decode(v **MountInfo) (err error)
func (*MountInfoDecoder) Entries ¶
func (d *MountInfoDecoder) Entries() iter.Seq[*MountInfoEntry]
Entries returns an iterator over mountinfo entries.
func (*MountInfoDecoder) Err ¶
func (d *MountInfoDecoder) Err() error
func (*MountInfoDecoder) Unfold ¶
func (d *MountInfoDecoder) Unfold(target string) (*MountInfoNode, error)
Unfold unfolds the mount hierarchy and resolves covered paths.
type MountInfoEntry ¶
type MountInfoEntry struct { // mount ID: a unique ID for the mount (may be reused after umount(2)). ID int `json:"id"` // parent ID: the ID of the parent mount (or of self for the root of this mount namespace's mount tree). Parent int `json:"parent"` // major:minor: the value of st_dev for files on this filesystem (see stat(2)). Devno DevT `json:"devno"` // root: the pathname of the directory in the filesystem which forms the root of this mount. Root string `json:"root"` // mount point: the pathname of the mount point relative to the process's root directory. Target string `json:"target"` // mount options: per-mount options (see mount(2)). VfsOptstr string `json:"vfs_optstr"` // optional fields: zero or more fields of the form "tag[:value]"; see below. // separator: the end of the optional fields is marked by a single hyphen. OptFields []string `json:"opt_fields"` // filesystem type: the filesystem type in the form "type[.subtype]". FsType string `json:"fstype"` // mount source: filesystem-specific information or "none". Source string `json:"source"` // super options: per-superblock options (see mount(2)). FsOptstr string `json:"fs_optstr"` }
MountInfoEntry represents a proc_pid_mountinfo(5) entry.
func (*MountInfoEntry) EqualWithIgnore ¶
func (e *MountInfoEntry) EqualWithIgnore(want *MountInfoEntry, ignore string) bool
func (*MountInfoEntry) Flags ¶
func (e *MountInfoEntry) Flags() (flags uintptr, unmatched []string)
Flags interprets VfsOptstr and returns the resulting flags and unmatched options.
func (*MountInfoEntry) String ¶
func (e *MountInfoEntry) String() string
type MountInfoNode ¶
type MountInfoNode struct { *MountInfoEntry FirstChild *MountInfoNode `json:"first_child"` NextSibling *MountInfoNode `json:"next_sibling"` Clean string `json:"clean"` Covered bool `json:"covered"` }
MountInfoNode positions a MountInfoEntry in its mount hierarchy.
func (*MountInfoNode) Collective ¶
func (n *MountInfoNode) Collective() iter.Seq[*MountInfoNode]
Collective returns an iterator over visible mountinfo nodes.