aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorJoey Jiao <joeyjiaojg@qq.com>2023-07-02 12:14:03 +0800
committerAleksandr Nogikh <nogikh@google.com>2023-07-04 16:43:58 +0000
commit9a97070da62577e730aaaae4cf657900abb16957 (patch)
treebc3b5d3eaddd3d9036c1302e59cbb64b6c52cd58 /pkg
parentdb33bc12e4f969af9479eb1c55d6a5ed2050b9b5 (diff)
pkg/host: export ParseModulesText
Change-Id: I3119aed5cfe223e24cfc56b27612adaf2a638a99
Diffstat (limited to 'pkg')
-rw-r--r--pkg/host/machine_info.go8
-rw-r--r--pkg/host/machine_info_linux.go7
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)