| 1234567891011121314151617181920212223242526272829303132 |
- //go:build linux && arm64
- // +build linux,arm64
- package ebpftracer
- import (
- "embed"
- "fmt"
- "golang.org/x/mod/semver"
- )
- //go:embed ebpf/bin/arm64
- var binData embed.FS
- func EbpfCode(v string) (string, []byte, error) {
- var filePath string
- var err error
- versions := []string{"v5.12", "v5.6", "v4.20", "v4.16"}
- for _, version := range versions {
- if semver.Compare(v, version) >= 0 {
- filePath = fmt.Sprintf("ebpf/bin/arm64/%s_arm64.o", version)
- break
- }
- }
- // Construct the full path to the desired file
- data, err := binData.ReadFile(filePath)
- if err != nil {
- return "", nil, err
- }
- return filePath, data, nil
- }
|