diff options
| author | Joey Jiao <joeyjiaojg@qq.com> | 2023-07-02 12:14:03 +0800 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2023-07-04 16:43:58 +0000 |
| commit | 9a97070da62577e730aaaae4cf657900abb16957 (patch) | |
| tree | bc3b5d3eaddd3d9036c1302e59cbb64b6c52cd58 /pkg/host | |
| parent | db33bc12e4f969af9479eb1c55d6a5ed2050b9b5 (diff) | |
pkg/host: export ParseModulesText
Change-Id: I3119aed5cfe223e24cfc56b27612adaf2a638a99
Diffstat (limited to 'pkg/host')
| -rw-r--r-- | pkg/host/machine_info.go | 8 | ||||
| -rw-r--r-- | pkg/host/machine_info_linux.go | 7 |
2 files changed, 14 insertions, 1 deletions
diff --git a/pkg/host/machine_info.go b/pkg/host/machine_info.go index 3c04becab..779356d4a 100644 --- a/pkg/host/machine_info.go +++ b/pkg/host/machine_info.go @@ -45,9 +45,17 @@ func CollectGlobsInfo(globs map[string]bool) (map[string][]string, error) { return machineGlobsInfo(globs) } +func ParseModulesText(modulesText []byte) ([]KernelModule, error) { + if machineParseModules == nil { + return nil, nil + } + return machineParseModules(modulesText) +} + var machineInfoFuncs []machineInfoFunc var machineModulesInfo func() ([]KernelModule, error) var machineGlobsInfo func(map[string]bool) (map[string][]string, error) +var machineParseModules func([]byte) ([]KernelModule, error) type machineInfoFunc struct { name string diff --git a/pkg/host/machine_info_linux.go b/pkg/host/machine_info_linux.go index 702b55cb3..d46dacd4e 100644 --- a/pkg/host/machine_info_linux.go +++ b/pkg/host/machine_info_linux.go @@ -21,6 +21,7 @@ func init() { } machineModulesInfo = getModulesInfo machineGlobsInfo = getGlobsInfo + machineParseModules = parseModules } func readCPUInfo(buffer *bytes.Buffer) error { @@ -125,8 +126,12 @@ func readKVMInfo(buffer *bytes.Buffer) error { } func getModulesInfo() ([]KernelModule, error) { - var modules []KernelModule modulesText, _ := os.ReadFile("/proc/modules") + return parseModules(modulesText) +} + +func parseModules(modulesText []byte) ([]KernelModule, error) { + var modules []KernelModule re := regexp.MustCompile(`(\w+) ([0-9]+) .*(0[x|X][a-fA-F0-9]+)[^\n]*`) for _, m := range re.FindAllSubmatch(modulesText, -1) { addr, err := strconv.ParseUint(string(m[3]), 0, 64) |
