Documentation
¶
Index ¶
Constants ¶
const DriverDirectory = "/tmp/driver"
DriverDirectory is the directory the processor uses to store the driver.
const ModuleFileName = "module.ko"
ModuleFileName is the standard file name for the kernel module.
const ProbeFileName = "probe.o"
ProbeFileName is the standard file name for the eBPF probe.
Variables ¶
var BuilderByTarget = Targets{}
BuilderByTarget maps targets to their builder.
var HeadersNotFoundErr = errors.New("kernel headers not found")
var ModuleFullPath = path.Join(DriverDirectory, ModuleFileName)
ModuleFullPath is the standard path for the kernel module. Builders must place the compiled module at this location.
var ProbeFullPath = path.Join(DriverDirectory, "bpf", ProbeFileName)
ProbeFullPath is the standard path for the eBPF probe. Builders must place the compiled probe at this location.
Functions ¶
func Script ¶ added in v0.9.6
func Script(b Builder, c Config, kr kernelrelease.KernelRelease) (string, error)
Types ¶
type Build ¶
type Build struct { TargetType Type KernelConfigData string KernelRelease string KernelVersion string DriverVersion string Architecture string ModuleFilePath string ProbeFilePath string ModuleDriverName string ModuleDeviceName string BuilderImage string BuilderRepos []string KernelUrls []string GCCVersion string RepoOrg string RepoName string Images ImagesMap }
Build contains the info about the on-going build.
func (*Build) GetBuilderImage ¶ added in v0.10.0
func (*Build) KernelReleaseFromBuildConfig ¶ added in v0.9.3
func (b *Build) KernelReleaseFromBuildConfig() kernelrelease.KernelRelease
func (*Build) LoadImages ¶ added in v0.12.0
func (b *Build) LoadImages()
type Builder ¶
type Builder interface { Name() string TemplateScript() string URLs(c Config, kr kernelrelease.KernelRelease) ([]string, error) TemplateData(c Config, kr kernelrelease.KernelRelease, urls []string) interface{} // error return type is managed }
Builder represents a builder capable of generating a script for a driverkit target.
type Config ¶
Config contains all the configurations needed to build the kernel module or the eBPF probe.
type GCCVersionRequestor ¶ added in v0.10.0
type GCCVersionRequestor interface { // GCCVersion returns the GCC version to be used. // If the returned value is empty, the default algorithm will be enforced. GCCVersion(kr kernelrelease.KernelRelease) semver.Version }
type MinimumURLsBuilder ¶ added in v0.9.6
type MinimumURLsBuilder interface {
MinimumURLs() int
}
MinimumURLsBuilder is an optional interface to specify minimum number of requested headers urls
type Type ¶
type Type string
Type is a type representing targets.
const TargetTypeAlma Type = "almalinux"
TargetTypeAlma identifies the AlmaLinux target.
const TargetTypeAmazonLinux Type = "amazonlinux"
TargetTypeAmazonLinux identifies the AmazonLinux target.
const TargetTypeAmazonLinux2 Type = "amazonlinux2"
TargetTypeAmazonLinux2 identifies the AmazonLinux2 target.
const TargetTypeAmazonLinux2022 Type = "amazonlinux2022"
TargetTypeAmazonLinux2022 identifies the AmazonLinux2022 target.
const TargetTypeArchlinux Type = "arch"
TargetTypeArchlinux identifies the Archlinux target.
const TargetTypeBottlerocket Type = "bottlerocket"
TargetTypeBottlerocket identifies the Bottlerocket target.
const TargetTypeCentos Type = "centos"
TargetTypeCentos identifies the Centos target.
const TargetTypeDebian Type = "debian"
TargetTypeDebian identifies the Debian target.
const TargetTypeFedora Type = "fedora"
TargetTypeFedora identifies the Fedora target.
const TargetTypeFlatcar Type = "flatcar"
TargetTypeFlatcar identifies the Flatcar target.
const TargetTypeMinikube Type = "minikube"
TargetTypeMinikube identifies the Minikube target.
const TargetTypeOpenSUSE Type = "opensuse"
TargetTypeOpenSUSE identifies the OpenSUSE target.
const TargetTypePhoton Type = "photon"
TargetTypePhoton identifies the Photon target.
const TargetTypeRedhat Type = "redhat"
TargetTypeRedhat identifies the redhat target.
const TargetTypeRocky Type = "rocky"
TargetTypeRocky identifies the Rocky target.
const TargetTypeUbuntu Type = "ubuntu"
TargetTypeUbuntu identifies the Ubuntu target.
const TargetTypeVanilla Type = "vanilla"
TargetTypeVanilla identifies the Vanilla target.