Help us shape the future of Go! Take the 2026 Go Developer Survey

types

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Aug 31, 2025 License: Apache-2.0, Apache-2.0 Imports: 3 Imported by: 2

Documentation

Index

Constants

View Source
const (
	DefaultChroot             = "/"
	DefaultCacheOnly          = false
	DefaultEnableNetworkFetch = false
)
View Source
const (
	EnvVarChroot             = "PCIDB_CHROOT"
	EnvVarPath               = "PCIDB_PATH"
	EnvVarCacheOnly          = "PCIDB_CACHE_ONLY"
	EnvVarCachePath          = "PCIDB_CACHE_PATH"
	EnvVarEnableNetworkFetch = "PCIDB_ENABLE_NETWORK_FETCH"
)

Variables

View Source
var (
	ErrNoDB = errors.New(
		"pcidb: No pci-ids DB files found (and network fetch disabled)",
	)
	ErrNoPaths = errors.New(
		"pcidb: no search paths and cache path is empty.",
	)
	// Backwards-compat, deprecated, please reference ErrNoDB
	ERR_NO_DB = ErrNoDB
)
View Source
var (
	DefaultCachePath = getCachePath()
)
View Source
var WithDirectPath = WithPath

Backwards-compat

Functions

This section is empty.

Types

type Class

type Class struct {
	// ID is the hex-encoded PCI_ID for the device class
	ID string `json:"id"`
	// Name is the common string name for the class
	Name string `json:"name"`
	// Subclasses are any subclasses belonging to this class
	Subclasses []*Subclass `json:"subclasses"`
}

Class is the PCI class

type DB

type DB struct {
	// Classes is a map, keyed by class ID, of PCI Class information
	Classes map[string]*Class `json:"classes"`
	// Vendors is a map, keyed by vendor ID, of PCI Vendor information
	Vendors map[string]*Vendor `json:"vendors"`
	// Products is a map, keyed by vendor ID + product ID, of PCI product
	// information
	Products map[string]*Product `json:"products"`
}

type Product

type Product struct {
	// VendorID is the vendor ID for the product
	VendorID string `json:"vendor_id"`
	// ID is the hex-encoded PCI_ID for the product/model
	ID string `json:"id"`
	// Name is the common string name of the vendor
	Name string `json:"name"`
	// Subsystems contains "subdevices" or "subsystems" for the product
	Subsystems []*Product `json:"subsystems"`
}

Product provides information about a PCI device model.

In the hardware world, the PCI "device_id" is the identifier for the product/model

type ProgrammingInterface

type ProgrammingInterface struct {
	// IS is the hex-encoded PCI_ID of the programming interface
	ID string `json:"id"`
	// Name is the common string name for the programming interface
	Name string `json:"name"`
}

ProgrammingInterface is the PCI programming interface for a class of PCI devices

type Subclass

type Subclass struct {
	// ID is the hex-encoded PCI_ID for the device subclass
	ID string `json:"id"`
	// Name is the common string name for the subclass
	Name string `json:"name"`
	// ProgrammingInterfaces contains any programming interfaces this subclass
	// might have
	ProgrammingInterfaces []*ProgrammingInterface `json:"programming_interfaces"`
}

Subclass is a subdivision of a PCI class

type Vendor

type Vendor struct {
	// IS is the hex-encoded PCI_ID for the vendor
	ID string `json:"id"`
	// Name is the common string name of the vendor
	Name string `json:"name"`
	// Products contains all top-level devices for the vendor
	Products []*Product `json:"products"`
}

Vendor provides information about a device vendor

type WithOption

type WithOption struct {
	// Chroot is the directory that pcidb uses when attempting to discover
	// pciids DB files
	Chroot *string
	// CacheOnly is mostly just useful for testing. It essentially disables
	// looking for any non ~/.cache/pci.ids filepaths (which is useful when we
	// want to test the fetch-from-network code paths
	CacheOnly *bool
	// CachePath overrides the pcidb cache path, which defaults to
	// $HOME/.cache/pci.ids
	CachePath *string
	// Enables fetching a pci-ids from a known location on the network if no
	// local pci-ids DB files can be found.
	EnableNetworkFetch *bool
	// Path points to the absolute path of a pci.ids file in a non-standard
	// location.
	Path *string
}

WithOption is used to represent optionally-configured settings

func WithCacheOnly

func WithCacheOnly() *WithOption

WithCacheOnly disables lookup of pci.ids database files over the network and forces pcidb to only use any pre-cached pci.ids database files in its cache directory.

func WithCachePath

func WithCachePath(path string) *WithOption

WithCachePath overrides the directory that pcidb uses to look up pre-found/pre-fetching pci.ids database files.

func WithChroot

func WithChroot(dir string) *WithOption

WithChroot overrides the root directory used for discovery of pci-ids database files.

func WithEnableNetworkFetch

func WithEnableNetworkFetch() *WithOption

WithEnableNetworkFetch enables the fetching of pci.ids database files over the Internet if a pci.ids database file cannot be found on the host filesystem or the pcidb cache directory.

func WithPath

func WithPath(path string) *WithOption

WithPath overrides the pci.ids database file discovery and points pcidb at a known location of a pci.ids or pci.ids.gz database file.

Jump to

Keyboard shortcuts

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