type MountInfo … // Reads each line of the mountinfo file, and returns a list of formatted MountInfo structs. func parseMountInfo(info []byte) ([]*MountInfo, error) { … } // Parses a mountinfo file line, and converts it to a MountInfo struct. // An important check here is to see if the hyphen separator, as if it does not exist, // it means that the line is malformed. func parseMountInfoString(mountString string) (*MountInfo, error) { … } // mountOptionsIsValidField checks a string against a valid list of optional fields keys. func mountOptionsIsValidField(s string) bool { … } // mountOptionsParseOptionalFields parses a list of optional fields strings into a double map of strings. func mountOptionsParseOptionalFields(o []string) (map[string]string, error) { … } // mountOptionsParser parses the mount options, superblock options. func mountOptionsParser(mountOptions string) map[string]string { … } // GetMounts retrieves mountinfo information from `/proc/self/mountinfo`. func GetMounts() ([]*MountInfo, error) { … } // GetProcMounts retrieves mountinfo information from a processes' `/proc/<pid>/mountinfo`. func GetProcMounts(pid int) ([]*MountInfo, error) { … }