in pkg/progs/loader.go [320:345]
func (m *BpfProgram) GetBPFProgAssociatedMapsIDs(progFD int) ([]uint32, error) {
bpfProgInfo, err := GetBPFprogInfo(progFD)
if bpfProgInfo.NrMapIDs <= 0 {
return nil, nil
}
numMaps := bpfProgInfo.NrMapIDs
associatedMaps := make([]uint32, numMaps)
newBpfProgInfo := BpfProgInfo{
NrMapIDs: numMaps,
MapIDs: uint64(uintptr(unsafe.Pointer(&associatedMaps[0]))),
}
objInfo := BpfObjGetInfo{
bpf_fd: uint32(progFD),
info_len: uint32(unsafe.Sizeof(newBpfProgInfo)),
info: uintptr(unsafe.Pointer(&newBpfProgInfo)),
}
err = objInfo.BpfGetProgramInfoForFD()
if err != nil {
log.Errorf("failed to get program Info for FD - ", progFD)
return nil, err
}
return associatedMaps, nil
}