pci

package
v0.6.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2020 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Address

type Address struct {
	Domain   string
	Bus      string
	Slot     string
	Function string
}

func AddressFromString

func AddressFromString(address string) *Address

Given a string address, returns a complete Address struct, filled in with domain, bus, slot and function components. The address string may either be in $BUS:$SLOT.$FUNCTION (BSF) format or it can be a full PCI address that includes the 4-digit $DOMAIN information as well: $DOMAIN:$BUS:$SLOT.$FUNCTION.

Returns "" if the address string wasn't a valid PCI address.

type Device

type Device struct {
	// The PCI address of the device
	Address   string         `json:"address"`
	Vendor    *pcidb.Vendor  `json:"vendor"`
	Product   *pcidb.Product `json:"product"`
	Subsystem *pcidb.Product `json:"subsystem"`
	// optional subvendor/sub-device information
	Class *pcidb.Class `json:"class"`
	// optional sub-class for the device
	Subclass *pcidb.Subclass `json:"subclass"`
	// optional programming interface
	ProgrammingInterface *pcidb.ProgrammingInterface `json:"programming_interface"`
}

func (*Device) MarshalJSON

func (d *Device) MarshalJSON() ([]byte, error)

NOTE(jaypipes) Device has a custom JSON marshaller because we don't want to serialize the entire PCIDB information for the Vendor (which includes all of the vendor's products, etc). Instead, we simply serialize the ID and human-readable name of the vendor, product, class, etc.

func (*Device) String

func (d *Device) String() string

type Info

type Info struct {

	// hash of class ID -> class information
	Classes map[string]*pcidb.Class
	// hash of vendor ID -> vendor information
	Vendors map[string]*pcidb.Vendor
	// hash of vendor ID + product/device ID -> product information
	Products map[string]*pcidb.Product
	// contains filtered or unexported fields
}

func New

func New(opts ...*option.Option) (*Info, error)

New returns a pointer to an Info struct that contains information about the PCI devices on the host system

func (*Info) GetDevice

func (info *Info) GetDevice(address string) *Device

GetDevice returns a pointer to a Device struct that describes the PCI device at the requested address. If no such device could be found, returns nil

func (*Info) ListDevices

func (info *Info) ListDevices() []*Device

ListDevices returns a list of pointers to Device structs present on the host system

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL