Documentation ¶
Index ¶
- type Definer
- type HandledByGadgetPredicate
- type HotplugDeviceInfo
- func (h *HotplugDeviceInfo) Attribute(name string) (string, bool)
- func (h *HotplugDeviceInfo) DeviceName() string
- func (h *HotplugDeviceInfo) DevicePath() string
- func (h *HotplugDeviceInfo) DeviceType() string
- func (h *HotplugDeviceInfo) Major() string
- func (h *HotplugDeviceInfo) Minor() string
- func (h *HotplugDeviceInfo) ShortString() string
- func (h *HotplugDeviceInfo) String() string
- func (h *HotplugDeviceInfo) Subsystem() string
- type HotplugKeyHandler
- type ProposedSlot
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Definer ¶
type Definer interface { // HotplugDeviceDetected is called for all devices and should return nil slot for those that are irrelevant for the interface. // Error should only be returned in rare cases when device is relevant, but there is a problem with creating a proposed slot for it. HotplugDeviceDetected(di *HotplugDeviceInfo) (*ProposedSlot, error) }
Definer can be implemented by interfaces that need to create slots in response to hotplug events.
type HandledByGadgetPredicate ¶
type HandledByGadgetPredicate interface {
HandledByGadget(di *HotplugDeviceInfo, slot *snap.SlotInfo) bool
}
HandledByGadgetPredicate can be implemented by hotplug interfaces to decide whether a device is already handled by given gadget slot.
type HotplugDeviceInfo ¶
type HotplugDeviceInfo struct {
// contains filtered or unexported fields
}
HotplugDeviceInfo carries information about added/removed device detected at runtime.
func EnumerateExistingDevices ¶
func EnumerateExistingDevices() (devices []*HotplugDeviceInfo, parseErrors []error, fatalError error)
EnumerateExistingDevices enumerates all devices by parsing 'udevadm info -e' command output. Non-fatal parsing errors are reported via parseErrors and they don't stop the parser.
func NewHotplugDeviceInfo ¶
func NewHotplugDeviceInfo(env map[string]string) (*HotplugDeviceInfo, error)
NewHotplugDeviceInfo creates HotplugDeviceInfo structure related to udev add or remove event.
func (*HotplugDeviceInfo) Attribute ¶
func (h *HotplugDeviceInfo) Attribute(name string) (string, bool)
Generic method for getting arbitrary attribute from the uevent data.
func (*HotplugDeviceInfo) DeviceName ¶
func (h *HotplugDeviceInfo) DeviceName() string
Returns the value of "DEVNAME" attribute of the udev event associated with the device, e.g. "/dev/ttyUSB0". The DeviceName value may be empty.
func (*HotplugDeviceInfo) DevicePath ¶
func (h *HotplugDeviceInfo) DevicePath() string
Returns full device path under /sysfs, e.g /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2. The path is derived from DEVPATH attribute of the udev event.
func (*HotplugDeviceInfo) DeviceType ¶
func (h *HotplugDeviceInfo) DeviceType() string
Returns the value of "DEVTYPE" attribute of the udev event associated with the device, e.g. "usb_device". The DeviceType value may be empty.
func (*HotplugDeviceInfo) Major ¶
func (h *HotplugDeviceInfo) Major() string
Returns the value of "MAJOR" attribute of the udev event associated with the device. The Major value may be empty.
func (*HotplugDeviceInfo) Minor ¶
func (h *HotplugDeviceInfo) Minor() string
Returns the value of "MINOR" attribute of the udev event associated with the device. The Minor value may be empty.
func (*HotplugDeviceInfo) ShortString ¶
func (h *HotplugDeviceInfo) ShortString() string
ShortString returns a string representation of the device with more aggressive truncating of model/vendor name.
func (*HotplugDeviceInfo) String ¶
func (h *HotplugDeviceInfo) String() string
func (*HotplugDeviceInfo) Subsystem ¶
func (h *HotplugDeviceInfo) Subsystem() string
Returns the value of "SUBSYSTEM" attribute of the udev event associated with the device, e.g. "usb". Subsystem value is always present.
type HotplugKeyHandler ¶
type HotplugKeyHandler interface {
HotplugKey(di *HotplugDeviceInfo) (snap.HotplugKey, error)
}
HotplugKeyHandler can be implemented by interfaces that need to provide a non-standard key for hotplug devices.
type ProposedSlot ¶
type ProposedSlot struct { // Name is how the interface wants to name the slot. When left empty, // one will be generated on demand. The hotplug machinery appends a // suffix to ensure uniqueness of the name. Name string `json:"name"` Label string `json:"label"` Attrs map[string]interface{} `json:"attrs,omitempty"` }
ProposedSlot is a definition of the slot to create in response to a hotplug event.
func (*ProposedSlot) Clean ¶
func (slot *ProposedSlot) Clean() (*ProposedSlot, error)
Clean returns a copy of the input slot with normalized attributes and validated slot name (unless its empty).