in pkg/utils/utils.go [160:178]
func GetProgFDFromID(mapID int) (int, error) {
var log = logger.Get()
attr := BpfShowAttr{
id: uint32(mapID),
}
ret, _, errno := unix.Syscall(
unix.SYS_BPF,
uintptr(constdef.BPF_PROG_GET_FD_BY_ID),
uintptr(unsafe.Pointer(&attr)),
unsafe.Sizeof(attr),
)
if errno != 0 {
log.Infof("Failed to get Map FD - ret %d and err %s", int(ret), errno)
return 0, errno
}
fd := int(ret)
runtime.KeepAlive(fd)
return fd, nil
}