From fadd1b14f77e2dfdc4e3f7f61bee5b22ccf66e2f Mon Sep 17 00:00:00 2001 From: Ophestra Date: Mon, 25 May 2026 13:10:30 +0900 Subject: internal/kobject: process uevent This tracks kernel state by merging a stream of uevent. Inconsistencies are reported and recovered from gracefully. Signed-off-by: Ophestra --- internal/kobject/event.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'internal/kobject/event.go') diff --git a/internal/kobject/event.go b/internal/kobject/event.go index 33cb91b8..38728599 100644 --- a/internal/kobject/event.go +++ b/internal/kobject/event.go @@ -2,6 +2,7 @@ package kobject import ( "errors" + "maps" "strconv" "strings" "unsafe" @@ -28,6 +29,22 @@ type Event struct { Subsystem string `json:"subsystem"` } +// Clone returns a copy of e. +func (e *Event) Clone() Event { + v := *e + v.Env = maps.Clone(e.Env) + return v +} + +// makeColdboot allocates a new [Object] from e in [StateColdboot]. +func (e *Event) makeColdboot() *Object { + return &Object{ + State: StateColdboot, + DevPath: e.DevPath, + Subsystem: e.Subsystem, + } +} + // Populate populates e with the contents of a [uevent.Message]. // // The ACTION and DEVPATH environment variables are ignored and assumed to be -- cgit v1.3.1