...

Source file src/edge-infra.dev/pkg/lib/kernel/udev/monitor.go

Documentation: edge-infra.dev/pkg/lib/kernel/udev

     1  //go:build linux
     2  
     3  package udev
     4  
     5  import (
     6  	"fmt"
     7  	"io"
     8  
     9  	"edge-infra.dev/pkg/lib/kernel/udev/sockets"
    10  )
    11  
    12  const Netlink = "netlink"
    13  
    14  // NewUEventReader will return a UEvent reader depending on the source.
    15  // The source can either be the local netlink instance or an external destination
    16  func NewUEventReader(source string) (uEventReader io.ReadCloser, fd int, err error) {
    17  	switch source {
    18  	case Netlink:
    19  		uEventReader, fd, err = sockets.NewUEventNetlinkReader()
    20  	default:
    21  		uEventReader, fd, err = sockets.NewUEventRemoteReader(source)
    22  	}
    23  
    24  	if err != nil {
    25  		return nil, 0, fmt.Errorf("failed to create uevent reader for %s: %w", source, err)
    26  	}
    27  
    28  	return uEventReader, fd, nil
    29  }
    30  

View as plain text