go.mod: runc v1.0.1
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
This commit is contained in:
		
							
								
								
									
										52
									
								
								vendor/github.com/cilium/ebpf/asm/func.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										52
									
								
								vendor/github.com/cilium/ebpf/asm/func.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -132,6 +132,58 @@ const (
 | 
			
		||||
	FnSkStorageDelete
 | 
			
		||||
	FnSendSignal
 | 
			
		||||
	FnTcpGenSyncookie
 | 
			
		||||
	FnSkbOutput
 | 
			
		||||
	FnProbeReadUser
 | 
			
		||||
	FnProbeReadKernel
 | 
			
		||||
	FnProbeReadUserStr
 | 
			
		||||
	FnProbeReadKernelStr
 | 
			
		||||
	FnTcpSendAck
 | 
			
		||||
	FnSendSignalThread
 | 
			
		||||
	FnJiffies64
 | 
			
		||||
	FnReadBranchRecords
 | 
			
		||||
	FnGetNsCurrentPidTgid
 | 
			
		||||
	FnXdpOutput
 | 
			
		||||
	FnGetNetnsCookie
 | 
			
		||||
	FnGetCurrentAncestorCgroupId
 | 
			
		||||
	FnSkAssign
 | 
			
		||||
	FnKtimeGetBootNs
 | 
			
		||||
	FnSeqPrintf
 | 
			
		||||
	FnSeqWrite
 | 
			
		||||
	FnSkCgroupId
 | 
			
		||||
	FnSkAncestorCgroupId
 | 
			
		||||
	FnRingbufOutput
 | 
			
		||||
	FnRingbufReserve
 | 
			
		||||
	FnRingbufSubmit
 | 
			
		||||
	FnRingbufDiscard
 | 
			
		||||
	FnRingbufQuery
 | 
			
		||||
	FnCsumLevel
 | 
			
		||||
	FnSkcToTcp6Sock
 | 
			
		||||
	FnSkcToTcpSock
 | 
			
		||||
	FnSkcToTcpTimewaitSock
 | 
			
		||||
	FnSkcToTcpRequestSock
 | 
			
		||||
	FnSkcToUdp6Sock
 | 
			
		||||
	FnGetTaskStack
 | 
			
		||||
	FnLoadHdrOpt
 | 
			
		||||
	FnStoreHdrOpt
 | 
			
		||||
	FnReserveHdrOpt
 | 
			
		||||
	FnInodeStorageGet
 | 
			
		||||
	FnInodeStorageDelete
 | 
			
		||||
	FnDPath
 | 
			
		||||
	FnCopyFromUser
 | 
			
		||||
	FnSnprintfBtf
 | 
			
		||||
	FnSeqPrintfBtf
 | 
			
		||||
	FnSkbCgroupClassid
 | 
			
		||||
	FnRedirectNeigh
 | 
			
		||||
	FnPerCpuPtr
 | 
			
		||||
	FnThisCpuPtr
 | 
			
		||||
	FnRedirectPeer
 | 
			
		||||
	FnTaskStorageGet
 | 
			
		||||
	FnTaskStorageDelete
 | 
			
		||||
	FnGetCurrentTaskBtf
 | 
			
		||||
	FnBprmOptsSet
 | 
			
		||||
	FnKtimeGetCoarseNs
 | 
			
		||||
	FnImaInodeHash
 | 
			
		||||
	FnSockFromFile
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Call emits a function call.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										56
									
								
								vendor/github.com/cilium/ebpf/asm/func_string.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										56
									
								
								vendor/github.com/cilium/ebpf/asm/func_string.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -119,11 +119,63 @@ func _() {
 | 
			
		||||
	_ = x[FnSkStorageDelete-108]
 | 
			
		||||
	_ = x[FnSendSignal-109]
 | 
			
		||||
	_ = x[FnTcpGenSyncookie-110]
 | 
			
		||||
	_ = x[FnSkbOutput-111]
 | 
			
		||||
	_ = x[FnProbeReadUser-112]
 | 
			
		||||
	_ = x[FnProbeReadKernel-113]
 | 
			
		||||
	_ = x[FnProbeReadUserStr-114]
 | 
			
		||||
	_ = x[FnProbeReadKernelStr-115]
 | 
			
		||||
	_ = x[FnTcpSendAck-116]
 | 
			
		||||
	_ = x[FnSendSignalThread-117]
 | 
			
		||||
	_ = x[FnJiffies64-118]
 | 
			
		||||
	_ = x[FnReadBranchRecords-119]
 | 
			
		||||
	_ = x[FnGetNsCurrentPidTgid-120]
 | 
			
		||||
	_ = x[FnXdpOutput-121]
 | 
			
		||||
	_ = x[FnGetNetnsCookie-122]
 | 
			
		||||
	_ = x[FnGetCurrentAncestorCgroupId-123]
 | 
			
		||||
	_ = x[FnSkAssign-124]
 | 
			
		||||
	_ = x[FnKtimeGetBootNs-125]
 | 
			
		||||
	_ = x[FnSeqPrintf-126]
 | 
			
		||||
	_ = x[FnSeqWrite-127]
 | 
			
		||||
	_ = x[FnSkCgroupId-128]
 | 
			
		||||
	_ = x[FnSkAncestorCgroupId-129]
 | 
			
		||||
	_ = x[FnRingbufOutput-130]
 | 
			
		||||
	_ = x[FnRingbufReserve-131]
 | 
			
		||||
	_ = x[FnRingbufSubmit-132]
 | 
			
		||||
	_ = x[FnRingbufDiscard-133]
 | 
			
		||||
	_ = x[FnRingbufQuery-134]
 | 
			
		||||
	_ = x[FnCsumLevel-135]
 | 
			
		||||
	_ = x[FnSkcToTcp6Sock-136]
 | 
			
		||||
	_ = x[FnSkcToTcpSock-137]
 | 
			
		||||
	_ = x[FnSkcToTcpTimewaitSock-138]
 | 
			
		||||
	_ = x[FnSkcToTcpRequestSock-139]
 | 
			
		||||
	_ = x[FnSkcToUdp6Sock-140]
 | 
			
		||||
	_ = x[FnGetTaskStack-141]
 | 
			
		||||
	_ = x[FnLoadHdrOpt-142]
 | 
			
		||||
	_ = x[FnStoreHdrOpt-143]
 | 
			
		||||
	_ = x[FnReserveHdrOpt-144]
 | 
			
		||||
	_ = x[FnInodeStorageGet-145]
 | 
			
		||||
	_ = x[FnInodeStorageDelete-146]
 | 
			
		||||
	_ = x[FnDPath-147]
 | 
			
		||||
	_ = x[FnCopyFromUser-148]
 | 
			
		||||
	_ = x[FnSnprintfBtf-149]
 | 
			
		||||
	_ = x[FnSeqPrintfBtf-150]
 | 
			
		||||
	_ = x[FnSkbCgroupClassid-151]
 | 
			
		||||
	_ = x[FnRedirectNeigh-152]
 | 
			
		||||
	_ = x[FnPerCpuPtr-153]
 | 
			
		||||
	_ = x[FnThisCpuPtr-154]
 | 
			
		||||
	_ = x[FnRedirectPeer-155]
 | 
			
		||||
	_ = x[FnTaskStorageGet-156]
 | 
			
		||||
	_ = x[FnTaskStorageDelete-157]
 | 
			
		||||
	_ = x[FnGetCurrentTaskBtf-158]
 | 
			
		||||
	_ = x[FnBprmOptsSet-159]
 | 
			
		||||
	_ = x[FnKtimeGetCoarseNs-160]
 | 
			
		||||
	_ = x[FnImaInodeHash-161]
 | 
			
		||||
	_ = x[FnSockFromFile-162]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const _BuiltinFunc_name = "FnUnspecFnMapLookupElemFnMapUpdateElemFnMapDeleteElemFnProbeReadFnKtimeGetNsFnTracePrintkFnGetPrandomU32FnGetSmpProcessorIdFnSkbStoreBytesFnL3CsumReplaceFnL4CsumReplaceFnTailCallFnCloneRedirectFnGetCurrentPidTgidFnGetCurrentUidGidFnGetCurrentCommFnGetCgroupClassidFnSkbVlanPushFnSkbVlanPopFnSkbGetTunnelKeyFnSkbSetTunnelKeyFnPerfEventReadFnRedirectFnGetRouteRealmFnPerfEventOutputFnSkbLoadBytesFnGetStackidFnCsumDiffFnSkbGetTunnelOptFnSkbSetTunnelOptFnSkbChangeProtoFnSkbChangeTypeFnSkbUnderCgroupFnGetHashRecalcFnGetCurrentTaskFnProbeWriteUserFnCurrentTaskUnderCgroupFnSkbChangeTailFnSkbPullDataFnCsumUpdateFnSetHashInvalidFnGetNumaNodeIdFnSkbChangeHeadFnXdpAdjustHeadFnProbeReadStrFnGetSocketCookieFnGetSocketUidFnSetHashFnSetsockoptFnSkbAdjustRoomFnRedirectMapFnSkRedirectMapFnSockMapUpdateFnXdpAdjustMetaFnPerfEventReadValueFnPerfProgReadValueFnGetsockoptFnOverrideReturnFnSockOpsCbFlagsSetFnMsgRedirectMapFnMsgApplyBytesFnMsgCorkBytesFnMsgPullDataFnBindFnXdpAdjustTailFnSkbGetXfrmStateFnGetStackFnSkbLoadBytesRelativeFnFibLookupFnSockHashUpdateFnMsgRedirectHashFnSkRedirectHashFnLwtPushEncapFnLwtSeg6StoreBytesFnLwtSeg6AdjustSrhFnLwtSeg6ActionFnRcRepeatFnRcKeydownFnSkbCgroupIdFnGetCurrentCgroupIdFnGetLocalStorageFnSkSelectReuseportFnSkbAncestorCgroupIdFnSkLookupTcpFnSkLookupUdpFnSkReleaseFnMapPushElemFnMapPopElemFnMapPeekElemFnMsgPushDataFnMsgPopDataFnRcPointerRelFnSpinLockFnSpinUnlockFnSkFullsockFnTcpSockFnSkbEcnSetCeFnGetListenerSockFnSkcLookupTcpFnTcpCheckSyncookieFnSysctlGetNameFnSysctlGetCurrentValueFnSysctlGetNewValueFnSysctlSetNewValueFnStrtolFnStrtoulFnSkStorageGetFnSkStorageDeleteFnSendSignalFnTcpGenSyncookie"
 | 
			
		||||
const _BuiltinFunc_name = "FnUnspecFnMapLookupElemFnMapUpdateElemFnMapDeleteElemFnProbeReadFnKtimeGetNsFnTracePrintkFnGetPrandomU32FnGetSmpProcessorIdFnSkbStoreBytesFnL3CsumReplaceFnL4CsumReplaceFnTailCallFnCloneRedirectFnGetCurrentPidTgidFnGetCurrentUidGidFnGetCurrentCommFnGetCgroupClassidFnSkbVlanPushFnSkbVlanPopFnSkbGetTunnelKeyFnSkbSetTunnelKeyFnPerfEventReadFnRedirectFnGetRouteRealmFnPerfEventOutputFnSkbLoadBytesFnGetStackidFnCsumDiffFnSkbGetTunnelOptFnSkbSetTunnelOptFnSkbChangeProtoFnSkbChangeTypeFnSkbUnderCgroupFnGetHashRecalcFnGetCurrentTaskFnProbeWriteUserFnCurrentTaskUnderCgroupFnSkbChangeTailFnSkbPullDataFnCsumUpdateFnSetHashInvalidFnGetNumaNodeIdFnSkbChangeHeadFnXdpAdjustHeadFnProbeReadStrFnGetSocketCookieFnGetSocketUidFnSetHashFnSetsockoptFnSkbAdjustRoomFnRedirectMapFnSkRedirectMapFnSockMapUpdateFnXdpAdjustMetaFnPerfEventReadValueFnPerfProgReadValueFnGetsockoptFnOverrideReturnFnSockOpsCbFlagsSetFnMsgRedirectMapFnMsgApplyBytesFnMsgCorkBytesFnMsgPullDataFnBindFnXdpAdjustTailFnSkbGetXfrmStateFnGetStackFnSkbLoadBytesRelativeFnFibLookupFnSockHashUpdateFnMsgRedirectHashFnSkRedirectHashFnLwtPushEncapFnLwtSeg6StoreBytesFnLwtSeg6AdjustSrhFnLwtSeg6ActionFnRcRepeatFnRcKeydownFnSkbCgroupIdFnGetCurrentCgroupIdFnGetLocalStorageFnSkSelectReuseportFnSkbAncestorCgroupIdFnSkLookupTcpFnSkLookupUdpFnSkReleaseFnMapPushElemFnMapPopElemFnMapPeekElemFnMsgPushDataFnMsgPopDataFnRcPointerRelFnSpinLockFnSpinUnlockFnSkFullsockFnTcpSockFnSkbEcnSetCeFnGetListenerSockFnSkcLookupTcpFnTcpCheckSyncookieFnSysctlGetNameFnSysctlGetCurrentValueFnSysctlGetNewValueFnSysctlSetNewValueFnStrtolFnStrtoulFnSkStorageGetFnSkStorageDeleteFnSendSignalFnTcpGenSyncookieFnSkbOutputFnProbeReadUserFnProbeReadKernelFnProbeReadUserStrFnProbeReadKernelStrFnTcpSendAckFnSendSignalThreadFnJiffies64FnReadBranchRecordsFnGetNsCurrentPidTgidFnXdpOutputFnGetNetnsCookieFnGetCurrentAncestorCgroupIdFnSkAssignFnKtimeGetBootNsFnSeqPrintfFnSeqWriteFnSkCgroupIdFnSkAncestorCgroupIdFnRingbufOutputFnRingbufReserveFnRingbufSubmitFnRingbufDiscardFnRingbufQueryFnCsumLevelFnSkcToTcp6SockFnSkcToTcpSockFnSkcToTcpTimewaitSockFnSkcToTcpRequestSockFnSkcToUdp6SockFnGetTaskStackFnLoadHdrOptFnStoreHdrOptFnReserveHdrOptFnInodeStorageGetFnInodeStorageDeleteFnDPathFnCopyFromUserFnSnprintfBtfFnSeqPrintfBtfFnSkbCgroupClassidFnRedirectNeighFnPerCpuPtrFnThisCpuPtrFnRedirectPeerFnTaskStorageGetFnTaskStorageDeleteFnGetCurrentTaskBtfFnBprmOptsSetFnKtimeGetCoarseNsFnImaInodeHashFnSockFromFile"
 | 
			
		||||
 | 
			
		||||
var _BuiltinFunc_index = [...]uint16{0, 8, 23, 38, 53, 64, 76, 89, 104, 123, 138, 153, 168, 178, 193, 212, 230, 246, 264, 277, 289, 306, 323, 338, 348, 363, 380, 394, 406, 416, 433, 450, 466, 481, 497, 512, 528, 544, 568, 583, 596, 608, 624, 639, 654, 669, 683, 700, 714, 723, 735, 750, 763, 778, 793, 808, 828, 847, 859, 875, 894, 910, 925, 939, 952, 958, 973, 990, 1000, 1022, 1033, 1049, 1066, 1082, 1096, 1115, 1133, 1148, 1158, 1169, 1182, 1202, 1219, 1238, 1259, 1272, 1285, 1296, 1309, 1321, 1334, 1347, 1359, 1373, 1383, 1395, 1407, 1416, 1429, 1446, 1460, 1479, 1494, 1517, 1536, 1555, 1563, 1572, 1586, 1603, 1615, 1632}
 | 
			
		||||
var _BuiltinFunc_index = [...]uint16{0, 8, 23, 38, 53, 64, 76, 89, 104, 123, 138, 153, 168, 178, 193, 212, 230, 246, 264, 277, 289, 306, 323, 338, 348, 363, 380, 394, 406, 416, 433, 450, 466, 481, 497, 512, 528, 544, 568, 583, 596, 608, 624, 639, 654, 669, 683, 700, 714, 723, 735, 750, 763, 778, 793, 808, 828, 847, 859, 875, 894, 910, 925, 939, 952, 958, 973, 990, 1000, 1022, 1033, 1049, 1066, 1082, 1096, 1115, 1133, 1148, 1158, 1169, 1182, 1202, 1219, 1238, 1259, 1272, 1285, 1296, 1309, 1321, 1334, 1347, 1359, 1373, 1383, 1395, 1407, 1416, 1429, 1446, 1460, 1479, 1494, 1517, 1536, 1555, 1563, 1572, 1586, 1603, 1615, 1632, 1643, 1658, 1675, 1693, 1713, 1725, 1743, 1754, 1773, 1794, 1805, 1821, 1849, 1859, 1875, 1886, 1896, 1908, 1928, 1943, 1959, 1974, 1990, 2004, 2015, 2030, 2044, 2066, 2087, 2102, 2116, 2128, 2141, 2156, 2173, 2193, 2200, 2214, 2227, 2241, 2259, 2274, 2285, 2297, 2311, 2327, 2346, 2365, 2378, 2396, 2410, 2424}
 | 
			
		||||
 | 
			
		||||
func (i BuiltinFunc) String() string {
 | 
			
		||||
	if i < 0 || i >= BuiltinFunc(len(_BuiltinFunc_index)-1) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								vendor/github.com/cilium/ebpf/elf_reader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/cilium/ebpf/elf_reader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -877,6 +877,9 @@ func getProgType(sectionName string) (ProgramType, AttachType, uint32, string) {
 | 
			
		||||
		"lirc_mode2":            {LircMode2, AttachLircMode2, 0},
 | 
			
		||||
		"flow_dissector":        {FlowDissector, AttachFlowDissector, 0},
 | 
			
		||||
		"iter/":                 {Tracing, AttachTraceIter, 0},
 | 
			
		||||
		"fentry/":               {Tracing, AttachTraceFEntry, 0},
 | 
			
		||||
		"fmod_ret/":             {Tracing, AttachModifyReturn, 0},
 | 
			
		||||
		"fexit/":                {Tracing, AttachTraceFExit, 0},
 | 
			
		||||
		"fentry.s/":             {Tracing, AttachTraceFEntry, unix.BPF_F_SLEEPABLE},
 | 
			
		||||
		"fmod_ret.s/":           {Tracing, AttachModifyReturn, unix.BPF_F_SLEEPABLE},
 | 
			
		||||
		"fexit.s/":              {Tracing, AttachTraceFExit, unix.BPF_F_SLEEPABLE},
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/cilium/ebpf/internal/btf/btf.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/cilium/ebpf/internal/btf/btf.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -377,7 +377,7 @@ func (s *Spec) marshal(opts marshalOpts) ([]byte, error) {
 | 
			
		||||
	for _, raw := range s.rawTypes {
 | 
			
		||||
		switch {
 | 
			
		||||
		case opts.StripFuncLinkage && raw.Kind() == kindFunc:
 | 
			
		||||
			raw.SetLinkage(linkageStatic)
 | 
			
		||||
			raw.SetLinkage(StaticFunc)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if err := raw.Marshal(&buf, opts.ByteOrder); err != nil {
 | 
			
		||||
@@ -779,7 +779,7 @@ var haveFuncLinkage = internal.FeatureTest("BTF func linkage", "5.6", func() err
 | 
			
		||||
	types.Func.SetKind(kindFunc)
 | 
			
		||||
	types.Func.SizeType = 1 // aka FuncProto
 | 
			
		||||
	types.Func.NameOff = 1
 | 
			
		||||
	types.Func.SetLinkage(linkageGlobal)
 | 
			
		||||
	types.Func.SetLinkage(GlobalFunc)
 | 
			
		||||
 | 
			
		||||
	btf := marshalBTF(&types, strings, internal.NativeEndian)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										27
									
								
								vendor/github.com/cilium/ebpf/internal/btf/btf_types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								vendor/github.com/cilium/ebpf/internal/btf/btf_types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -6,6 +6,8 @@ import (
 | 
			
		||||
	"io"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//go:generate stringer -linecomment -output=btf_types_string.go -type=FuncLinkage,VarLinkage
 | 
			
		||||
 | 
			
		||||
// btfKind describes a Type.
 | 
			
		||||
type btfKind uint8
 | 
			
		||||
 | 
			
		||||
@@ -31,14 +33,23 @@ const (
 | 
			
		||||
	kindDatasec
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// btfFuncLinkage describes BTF function linkage metadata.
 | 
			
		||||
type btfFuncLinkage uint8
 | 
			
		||||
// FuncLinkage describes BTF function linkage metadata.
 | 
			
		||||
type FuncLinkage int
 | 
			
		||||
 | 
			
		||||
// Equivalent of enum btf_func_linkage.
 | 
			
		||||
const (
 | 
			
		||||
	linkageStatic btfFuncLinkage = iota
 | 
			
		||||
	linkageGlobal
 | 
			
		||||
	// linkageExtern // Currently unused in libbpf.
 | 
			
		||||
	StaticFunc FuncLinkage = iota // static
 | 
			
		||||
	GlobalFunc                    // global
 | 
			
		||||
	ExternFunc                    // extern
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// VarLinkage describes BTF variable linkage metadata.
 | 
			
		||||
type VarLinkage int
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	StaticVar VarLinkage = iota // static
 | 
			
		||||
	GlobalVar                   // global
 | 
			
		||||
	ExternVar                   // extern
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
@@ -144,11 +155,11 @@ func (bt *btfType) KindFlag() bool {
 | 
			
		||||
	return bt.info(btfTypeKindFlagMask, btfTypeKindFlagShift) == 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (bt *btfType) Linkage() btfFuncLinkage {
 | 
			
		||||
	return btfFuncLinkage(bt.info(btfTypeVlenMask, btfTypeVlenShift))
 | 
			
		||||
func (bt *btfType) Linkage() FuncLinkage {
 | 
			
		||||
	return FuncLinkage(bt.info(btfTypeVlenMask, btfTypeVlenShift))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (bt *btfType) SetLinkage(linkage btfFuncLinkage) {
 | 
			
		||||
func (bt *btfType) SetLinkage(linkage FuncLinkage) {
 | 
			
		||||
	bt.setInfo(uint32(linkage), btfTypeVlenMask, btfTypeVlenShift)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										44
									
								
								vendor/github.com/cilium/ebpf/internal/btf/btf_types_string.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								vendor/github.com/cilium/ebpf/internal/btf/btf_types_string.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
// Code generated by "stringer -linecomment -output=btf_types_string.go -type=FuncLinkage,VarLinkage"; DO NOT EDIT.
 | 
			
		||||
 | 
			
		||||
package btf
 | 
			
		||||
 | 
			
		||||
import "strconv"
 | 
			
		||||
 | 
			
		||||
func _() {
 | 
			
		||||
	// An "invalid array index" compiler error signifies that the constant values have changed.
 | 
			
		||||
	// Re-run the stringer command to generate them again.
 | 
			
		||||
	var x [1]struct{}
 | 
			
		||||
	_ = x[StaticFunc-0]
 | 
			
		||||
	_ = x[GlobalFunc-1]
 | 
			
		||||
	_ = x[ExternFunc-2]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const _FuncLinkage_name = "staticglobalextern"
 | 
			
		||||
 | 
			
		||||
var _FuncLinkage_index = [...]uint8{0, 6, 12, 18}
 | 
			
		||||
 | 
			
		||||
func (i FuncLinkage) String() string {
 | 
			
		||||
	if i < 0 || i >= FuncLinkage(len(_FuncLinkage_index)-1) {
 | 
			
		||||
		return "FuncLinkage(" + strconv.FormatInt(int64(i), 10) + ")"
 | 
			
		||||
	}
 | 
			
		||||
	return _FuncLinkage_name[_FuncLinkage_index[i]:_FuncLinkage_index[i+1]]
 | 
			
		||||
}
 | 
			
		||||
func _() {
 | 
			
		||||
	// An "invalid array index" compiler error signifies that the constant values have changed.
 | 
			
		||||
	// Re-run the stringer command to generate them again.
 | 
			
		||||
	var x [1]struct{}
 | 
			
		||||
	_ = x[StaticVar-0]
 | 
			
		||||
	_ = x[GlobalVar-1]
 | 
			
		||||
	_ = x[ExternVar-2]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const _VarLinkage_name = "staticglobalextern"
 | 
			
		||||
 | 
			
		||||
var _VarLinkage_index = [...]uint8{0, 6, 12, 18}
 | 
			
		||||
 | 
			
		||||
func (i VarLinkage) String() string {
 | 
			
		||||
	if i < 0 || i >= VarLinkage(len(_VarLinkage_index)-1) {
 | 
			
		||||
		return "VarLinkage(" + strconv.FormatInt(int64(i), 10) + ")"
 | 
			
		||||
	}
 | 
			
		||||
	return _VarLinkage_name[_VarLinkage_index[i]:_VarLinkage_index[i+1]]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								vendor/github.com/cilium/ebpf/internal/btf/types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/github.com/cilium/ebpf/internal/btf/types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -380,11 +380,12 @@ func (r *Restrict) copy() Type {
 | 
			
		||||
type Func struct {
 | 
			
		||||
	TypeID
 | 
			
		||||
	Name
 | 
			
		||||
	Type Type
 | 
			
		||||
	Type    Type
 | 
			
		||||
	Linkage FuncLinkage
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (f *Func) String() string {
 | 
			
		||||
	return fmt.Sprintf("func#%d[%q proto=#%d]", f.TypeID, f.Name, f.Type.ID())
 | 
			
		||||
	return fmt.Sprintf("func#%d[%s %q proto=#%d]", f.TypeID, f.Linkage, f.Name, f.Type.ID())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (f *Func) walk(tdq *typeDeque) { tdq.push(&f.Type) }
 | 
			
		||||
@@ -433,12 +434,12 @@ type FuncParam struct {
 | 
			
		||||
type Var struct {
 | 
			
		||||
	TypeID
 | 
			
		||||
	Name
 | 
			
		||||
	Type Type
 | 
			
		||||
	Type    Type
 | 
			
		||||
	Linkage VarLinkage
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (v *Var) String() string {
 | 
			
		||||
	// TODO: Linkage
 | 
			
		||||
	return fmt.Sprintf("var#%d[%q]", v.TypeID, v.Name)
 | 
			
		||||
	return fmt.Sprintf("var#%d[%s %q]", v.TypeID, v.Linkage, v.Name)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (v *Var) walk(tdq *typeDeque) { tdq.push(&v.Type) }
 | 
			
		||||
@@ -803,7 +804,7 @@ func inflateRawTypes(rawTypes []rawType, rawStrings stringTable) (types []Type,
 | 
			
		||||
			typ = restrict
 | 
			
		||||
 | 
			
		||||
		case kindFunc:
 | 
			
		||||
			fn := &Func{id, name, nil}
 | 
			
		||||
			fn := &Func{id, name, nil, raw.Linkage()}
 | 
			
		||||
			fixup(raw.Type(), kindFuncProto, &fn.Type)
 | 
			
		||||
			typ = fn
 | 
			
		||||
 | 
			
		||||
@@ -828,7 +829,8 @@ func inflateRawTypes(rawTypes []rawType, rawStrings stringTable) (types []Type,
 | 
			
		||||
			typ = fp
 | 
			
		||||
 | 
			
		||||
		case kindVar:
 | 
			
		||||
			v := &Var{id, name, nil}
 | 
			
		||||
			variable := raw.data.(*btfVariable)
 | 
			
		||||
			v := &Var{id, name, nil, VarLinkage(variable.Linkage)}
 | 
			
		||||
			fixup(raw.Type(), kindUnknown, &v.Type)
 | 
			
		||||
			typ = v
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										67
									
								
								vendor/github.com/cilium/ebpf/internal/syscall.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										67
									
								
								vendor/github.com/cilium/ebpf/internal/syscall.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,6 +4,7 @@ import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
	"runtime"
 | 
			
		||||
	"syscall"
 | 
			
		||||
	"unsafe"
 | 
			
		||||
 | 
			
		||||
	"github.com/cilium/ebpf/internal/unix"
 | 
			
		||||
@@ -61,7 +62,7 @@ func BPF(cmd BPFCmd, attr unsafe.Pointer, size uintptr) (uintptr, error) {
 | 
			
		||||
 | 
			
		||||
	var err error
 | 
			
		||||
	if errNo != 0 {
 | 
			
		||||
		err = errNo
 | 
			
		||||
		err = wrappedErrno{errNo}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return r1, err
 | 
			
		||||
@@ -178,3 +179,67 @@ func BPFObjGetInfoByFD(fd *FD, info unsafe.Pointer, size uintptr) error {
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// BPFObjName is a null-terminated string made up of
 | 
			
		||||
// 'A-Za-z0-9_' characters.
 | 
			
		||||
type BPFObjName [unix.BPF_OBJ_NAME_LEN]byte
 | 
			
		||||
 | 
			
		||||
// NewBPFObjName truncates the result if it is too long.
 | 
			
		||||
func NewBPFObjName(name string) BPFObjName {
 | 
			
		||||
	var result BPFObjName
 | 
			
		||||
	copy(result[:unix.BPF_OBJ_NAME_LEN-1], name)
 | 
			
		||||
	return result
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type BPFMapCreateAttr struct {
 | 
			
		||||
	MapType        uint32
 | 
			
		||||
	KeySize        uint32
 | 
			
		||||
	ValueSize      uint32
 | 
			
		||||
	MaxEntries     uint32
 | 
			
		||||
	Flags          uint32
 | 
			
		||||
	InnerMapFd     uint32     // since 4.12 56f668dfe00d
 | 
			
		||||
	NumaNode       uint32     // since 4.14 96eabe7a40aa
 | 
			
		||||
	MapName        BPFObjName // since 4.15 ad5b177bd73f
 | 
			
		||||
	MapIfIndex     uint32
 | 
			
		||||
	BTFFd          uint32
 | 
			
		||||
	BTFKeyTypeID   uint32
 | 
			
		||||
	BTFValueTypeID uint32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func BPFMapCreate(attr *BPFMapCreateAttr) (*FD, error) {
 | 
			
		||||
	fd, err := BPF(BPF_MAP_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return NewFD(uint32(fd)), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// wrappedErrno wraps syscall.Errno to prevent direct comparisons with
 | 
			
		||||
// syscall.E* or unix.E* constants.
 | 
			
		||||
//
 | 
			
		||||
// You should never export an error of this type.
 | 
			
		||||
type wrappedErrno struct {
 | 
			
		||||
	syscall.Errno
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (we wrappedErrno) Unwrap() error {
 | 
			
		||||
	return we.Errno
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type syscallError struct {
 | 
			
		||||
	error
 | 
			
		||||
	errno syscall.Errno
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SyscallError(err error, errno syscall.Errno) error {
 | 
			
		||||
	return &syscallError{err, errno}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (se *syscallError) Is(target error) bool {
 | 
			
		||||
	return target == se.error
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (se *syscallError) Unwrap() error {
 | 
			
		||||
	return se.errno
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/cilium/ebpf/internal/unix/types_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/cilium/ebpf/internal/unix/types_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -31,6 +31,8 @@ const (
 | 
			
		||||
	BPF_F_RDONLY_PROG        = linux.BPF_F_RDONLY_PROG
 | 
			
		||||
	BPF_F_WRONLY_PROG        = linux.BPF_F_WRONLY_PROG
 | 
			
		||||
	BPF_F_SLEEPABLE          = linux.BPF_F_SLEEPABLE
 | 
			
		||||
	BPF_F_MMAPABLE           = linux.BPF_F_MMAPABLE
 | 
			
		||||
	BPF_F_INNER_MAP          = linux.BPF_F_INNER_MAP
 | 
			
		||||
	BPF_OBJ_NAME_LEN         = linux.BPF_OBJ_NAME_LEN
 | 
			
		||||
	BPF_TAG_SIZE             = linux.BPF_TAG_SIZE
 | 
			
		||||
	SYS_BPF                  = linux.SYS_BPF
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/cilium/ebpf/internal/unix/types_other.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/cilium/ebpf/internal/unix/types_other.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -31,6 +31,8 @@ const (
 | 
			
		||||
	BPF_F_RDONLY_PROG        = 0
 | 
			
		||||
	BPF_F_WRONLY_PROG        = 0
 | 
			
		||||
	BPF_F_SLEEPABLE          = 0
 | 
			
		||||
	BPF_F_MMAPABLE           = 0
 | 
			
		||||
	BPF_F_INNER_MAP          = 0
 | 
			
		||||
	BPF_OBJ_NAME_LEN         = 0x10
 | 
			
		||||
	BPF_TAG_SIZE             = 0x8
 | 
			
		||||
	SYS_BPF                  = 321
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										43
									
								
								vendor/github.com/cilium/ebpf/link/iter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										43
									
								
								vendor/github.com/cilium/ebpf/link/iter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -3,8 +3,10 @@ package link
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io"
 | 
			
		||||
	"unsafe"
 | 
			
		||||
 | 
			
		||||
	"github.com/cilium/ebpf"
 | 
			
		||||
	"github.com/cilium/ebpf/internal"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type IterOptions struct {
 | 
			
		||||
@@ -15,19 +17,45 @@ type IterOptions struct {
 | 
			
		||||
	// AttachTo requires the kernel to include BTF of itself,
 | 
			
		||||
	// and it to be compiled with a recent pahole (>= 1.16).
 | 
			
		||||
	Program *ebpf.Program
 | 
			
		||||
 | 
			
		||||
	// Map specifies the target map for bpf_map_elem and sockmap iterators.
 | 
			
		||||
	// It may be nil.
 | 
			
		||||
	Map *ebpf.Map
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// AttachIter attaches a BPF seq_file iterator.
 | 
			
		||||
func AttachIter(opts IterOptions) (*Iter, error) {
 | 
			
		||||
	link, err := AttachRawLink(RawLinkOptions{
 | 
			
		||||
		Program: opts.Program,
 | 
			
		||||
		Attach:  ebpf.AttachTraceIter,
 | 
			
		||||
	})
 | 
			
		||||
	if err := haveBPFLink(); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	progFd := opts.Program.FD()
 | 
			
		||||
	if progFd < 0 {
 | 
			
		||||
		return nil, fmt.Errorf("invalid program: %s", internal.ErrClosedFd)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var info bpfIterLinkInfoMap
 | 
			
		||||
	if opts.Map != nil {
 | 
			
		||||
		mapFd := opts.Map.FD()
 | 
			
		||||
		if mapFd < 0 {
 | 
			
		||||
			return nil, fmt.Errorf("invalid map: %w", internal.ErrClosedFd)
 | 
			
		||||
		}
 | 
			
		||||
		info.map_fd = uint32(mapFd)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	attr := bpfLinkCreateIterAttr{
 | 
			
		||||
		prog_fd:       uint32(progFd),
 | 
			
		||||
		attach_type:   ebpf.AttachTraceIter,
 | 
			
		||||
		iter_info:     internal.NewPointer(unsafe.Pointer(&info)),
 | 
			
		||||
		iter_info_len: uint32(unsafe.Sizeof(info)),
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	fd, err := bpfLinkCreateIter(&attr)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, fmt.Errorf("can't link iterator: %w", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return &Iter{*link}, err
 | 
			
		||||
	return &Iter{RawLink{fd, ""}}, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// LoadPinnedIter loads a pinned iterator from a bpffs.
 | 
			
		||||
@@ -65,3 +93,8 @@ func (it *Iter) Open() (io.ReadCloser, error) {
 | 
			
		||||
 | 
			
		||||
	return fd.File("bpf_iter"), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// union bpf_iter_link_info.map
 | 
			
		||||
type bpfIterLinkInfoMap struct {
 | 
			
		||||
	map_fd uint32
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								vendor/github.com/cilium/ebpf/link/syscalls.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/github.com/cilium/ebpf/link/syscalls.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -102,6 +102,23 @@ func bpfLinkCreate(attr *bpfLinkCreateAttr) (*internal.FD, error) {
 | 
			
		||||
	return internal.NewFD(uint32(ptr)), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type bpfLinkCreateIterAttr struct {
 | 
			
		||||
	prog_fd       uint32
 | 
			
		||||
	target_fd     uint32
 | 
			
		||||
	attach_type   ebpf.AttachType
 | 
			
		||||
	flags         uint32
 | 
			
		||||
	iter_info     internal.Pointer
 | 
			
		||||
	iter_info_len uint32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func bpfLinkCreateIter(attr *bpfLinkCreateIterAttr) (*internal.FD, error) {
 | 
			
		||||
	ptr, err := internal.BPF(internal.BPF_LINK_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return internal.NewFD(uint32(ptr)), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type bpfLinkUpdateAttr struct {
 | 
			
		||||
	linkFd    uint32
 | 
			
		||||
	newProgFd uint32
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										66
									
								
								vendor/github.com/cilium/ebpf/link/uprobe.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										66
									
								
								vendor/github.com/cilium/ebpf/link/uprobe.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -35,6 +35,14 @@ type Executable struct {
 | 
			
		||||
	symbols map[string]elf.Symbol
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// UprobeOptions defines additional parameters that will be used
 | 
			
		||||
// when loading Uprobes.
 | 
			
		||||
type UprobeOptions struct {
 | 
			
		||||
	// Symbol offset. Must be provided in case of external symbols (shared libs).
 | 
			
		||||
	// If set, overrides the offset eventually parsed from the executable.
 | 
			
		||||
	Offset uint64
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// To open a new Executable, use:
 | 
			
		||||
//
 | 
			
		||||
//	OpenExecutable("/bin/bash")
 | 
			
		||||
@@ -78,6 +86,10 @@ func (ex *Executable) addSymbols(f func() ([]elf.Symbol, error)) error {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	for _, s := range syms {
 | 
			
		||||
		if elf.ST_TYPE(s.Info) != elf.STT_FUNC {
 | 
			
		||||
			// Symbol not associated with a function or other executable code.
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
		ex.symbols[s.Name] = s
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
@@ -95,13 +107,18 @@ func (ex *Executable) symbol(symbol string) (*elf.Symbol, error) {
 | 
			
		||||
// For example, /bin/bash::main():
 | 
			
		||||
//
 | 
			
		||||
//  ex, _ = OpenExecutable("/bin/bash")
 | 
			
		||||
//  ex.Uprobe("main", prog)
 | 
			
		||||
//  ex.Uprobe("main", prog, nil)
 | 
			
		||||
//
 | 
			
		||||
// When using symbols which belongs to shared libraries,
 | 
			
		||||
// an offset must be provided via options:
 | 
			
		||||
//
 | 
			
		||||
//  ex.Uprobe("main", prog, &UprobeOptions{Offset: 0x123})
 | 
			
		||||
//
 | 
			
		||||
// The resulting Link must be Closed during program shutdown to avoid leaking
 | 
			
		||||
// system resources. Functions provided by shared libraries can currently not
 | 
			
		||||
// be traced and will result in an ErrNotSupported.
 | 
			
		||||
func (ex *Executable) Uprobe(symbol string, prog *ebpf.Program) (Link, error) {
 | 
			
		||||
	u, err := ex.uprobe(symbol, prog, false)
 | 
			
		||||
func (ex *Executable) Uprobe(symbol string, prog *ebpf.Program, opts *UprobeOptions) (Link, error) {
 | 
			
		||||
	u, err := ex.uprobe(symbol, prog, opts, false)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -119,13 +136,18 @@ func (ex *Executable) Uprobe(symbol string, prog *ebpf.Program) (Link, error) {
 | 
			
		||||
// before the given symbol exits. For example, /bin/bash::main():
 | 
			
		||||
//
 | 
			
		||||
//  ex, _ = OpenExecutable("/bin/bash")
 | 
			
		||||
//  ex.Uretprobe("main", prog)
 | 
			
		||||
//  ex.Uretprobe("main", prog, nil)
 | 
			
		||||
//
 | 
			
		||||
// When using symbols which belongs to shared libraries,
 | 
			
		||||
// an offset must be provided via options:
 | 
			
		||||
//
 | 
			
		||||
//  ex.Uretprobe("main", prog, &UprobeOptions{Offset: 0x123})
 | 
			
		||||
//
 | 
			
		||||
// The resulting Link must be Closed during program shutdown to avoid leaking
 | 
			
		||||
// system resources. Functions provided by shared libraries can currently not
 | 
			
		||||
// be traced and will result in an ErrNotSupported.
 | 
			
		||||
func (ex *Executable) Uretprobe(symbol string, prog *ebpf.Program) (Link, error) {
 | 
			
		||||
	u, err := ex.uprobe(symbol, prog, true)
 | 
			
		||||
func (ex *Executable) Uretprobe(symbol string, prog *ebpf.Program, opts *UprobeOptions) (Link, error) {
 | 
			
		||||
	u, err := ex.uprobe(symbol, prog, opts, true)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
@@ -141,7 +163,7 @@ func (ex *Executable) Uretprobe(symbol string, prog *ebpf.Program) (Link, error)
 | 
			
		||||
 | 
			
		||||
// uprobe opens a perf event for the given binary/symbol and attaches prog to it.
 | 
			
		||||
// If ret is true, create a uretprobe.
 | 
			
		||||
func (ex *Executable) uprobe(symbol string, prog *ebpf.Program, ret bool) (*perfEvent, error) {
 | 
			
		||||
func (ex *Executable) uprobe(symbol string, prog *ebpf.Program, opts *UprobeOptions, ret bool) (*perfEvent, error) {
 | 
			
		||||
	if prog == nil {
 | 
			
		||||
		return nil, fmt.Errorf("prog cannot be nil: %w", errInvalidInput)
 | 
			
		||||
	}
 | 
			
		||||
@@ -149,20 +171,28 @@ func (ex *Executable) uprobe(symbol string, prog *ebpf.Program, ret bool) (*perf
 | 
			
		||||
		return nil, fmt.Errorf("eBPF program type %s is not Kprobe: %w", prog.Type(), errInvalidInput)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	sym, err := ex.symbol(symbol)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, fmt.Errorf("symbol '%s' not found in '%s': %w", symbol, ex.path, err)
 | 
			
		||||
	}
 | 
			
		||||
	var offset uint64
 | 
			
		||||
	if opts != nil && opts.Offset != 0 {
 | 
			
		||||
		offset = opts.Offset
 | 
			
		||||
	} else {
 | 
			
		||||
		sym, err := ex.symbol(symbol)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, fmt.Errorf("symbol '%s' not found: %w", symbol, err)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	// Symbols with location 0 from section undef are shared library calls and
 | 
			
		||||
	// are relocated before the binary is executed. Dynamic linking is not
 | 
			
		||||
	// implemented by the library, so mark this as unsupported for now.
 | 
			
		||||
	if sym.Section == elf.SHN_UNDEF && sym.Value == 0 {
 | 
			
		||||
		return nil, fmt.Errorf("cannot resolve %s library call '%s': %w", ex.path, symbol, ErrNotSupported)
 | 
			
		||||
		// Symbols with location 0 from section undef are shared library calls and
 | 
			
		||||
		// are relocated before the binary is executed. Dynamic linking is not
 | 
			
		||||
		// implemented by the library, so mark this as unsupported for now.
 | 
			
		||||
		if sym.Section == elf.SHN_UNDEF && sym.Value == 0 {
 | 
			
		||||
			return nil, fmt.Errorf("cannot resolve %s library call '%s', "+
 | 
			
		||||
				"consider providing the offset via options: %w", ex.path, symbol, ErrNotSupported)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		offset = sym.Value
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Use uprobe PMU if the kernel has it available.
 | 
			
		||||
	tp, err := pmuUprobe(sym.Name, ex.path, sym.Value, ret)
 | 
			
		||||
	tp, err := pmuUprobe(symbol, ex.path, offset, ret)
 | 
			
		||||
	if err == nil {
 | 
			
		||||
		return tp, nil
 | 
			
		||||
	}
 | 
			
		||||
@@ -171,7 +201,7 @@ func (ex *Executable) uprobe(symbol string, prog *ebpf.Program, ret bool) (*perf
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Use tracefs if uprobe PMU is missing.
 | 
			
		||||
	tp, err = tracefsUprobe(uprobeSanitizedSymbol(sym.Name), ex.path, sym.Value, ret)
 | 
			
		||||
	tp, err = tracefsUprobe(uprobeSanitizedSymbol(symbol), ex.path, offset, ret)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, fmt.Errorf("creating trace event '%s:%s' in tracefs: %w", ex.path, symbol, err)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										36
									
								
								vendor/github.com/cilium/ebpf/map.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								vendor/github.com/cilium/ebpf/map.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -316,26 +316,36 @@ func createMap(spec *MapSpec, inner *internal.FD, opts MapOptions, handles *hand
 | 
			
		||||
			return nil, fmt.Errorf("map create: %w", err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if spec.Flags&unix.BPF_F_MMAPABLE > 0 {
 | 
			
		||||
		if err := haveMmapableMaps(); err != nil {
 | 
			
		||||
			return nil, fmt.Errorf("map create: %w", err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if spec.Flags&unix.BPF_F_INNER_MAP > 0 {
 | 
			
		||||
		if err := haveInnerMaps(); err != nil {
 | 
			
		||||
			return nil, fmt.Errorf("map create: %w", err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	attr := bpfMapCreateAttr{
 | 
			
		||||
		mapType:    spec.Type,
 | 
			
		||||
		keySize:    spec.KeySize,
 | 
			
		||||
		valueSize:  spec.ValueSize,
 | 
			
		||||
		maxEntries: spec.MaxEntries,
 | 
			
		||||
		flags:      spec.Flags,
 | 
			
		||||
		numaNode:   spec.NumaNode,
 | 
			
		||||
	attr := internal.BPFMapCreateAttr{
 | 
			
		||||
		MapType:    uint32(spec.Type),
 | 
			
		||||
		KeySize:    spec.KeySize,
 | 
			
		||||
		ValueSize:  spec.ValueSize,
 | 
			
		||||
		MaxEntries: spec.MaxEntries,
 | 
			
		||||
		Flags:      spec.Flags,
 | 
			
		||||
		NumaNode:   spec.NumaNode,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if inner != nil {
 | 
			
		||||
		var err error
 | 
			
		||||
		attr.innerMapFd, err = inner.Value()
 | 
			
		||||
		attr.InnerMapFd, err = inner.Value()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, fmt.Errorf("map create: %w", err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if haveObjName() == nil {
 | 
			
		||||
		attr.mapName = newBPFObjName(spec.Name)
 | 
			
		||||
		attr.MapName = internal.NewBPFObjName(spec.Name)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var btfDisabled bool
 | 
			
		||||
@@ -347,13 +357,13 @@ func createMap(spec *MapSpec, inner *internal.FD, opts MapOptions, handles *hand
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if handle != nil {
 | 
			
		||||
			attr.btfFd = uint32(handle.FD())
 | 
			
		||||
			attr.btfKeyTypeID = btf.MapKey(spec.BTF).ID()
 | 
			
		||||
			attr.btfValueTypeID = btf.MapValue(spec.BTF).ID()
 | 
			
		||||
			attr.BTFFd = uint32(handle.FD())
 | 
			
		||||
			attr.BTFKeyTypeID = uint32(btf.MapKey(spec.BTF).ID())
 | 
			
		||||
			attr.BTFValueTypeID = uint32(btf.MapValue(spec.BTF).ID())
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	fd, err := bpfMapCreate(&attr)
 | 
			
		||||
	fd, err := internal.BPFMapCreate(&attr)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if errors.Is(err, unix.EPERM) {
 | 
			
		||||
			return nil, fmt.Errorf("map create: RLIMIT_MEMLOCK may be too low: %w", err)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/cilium/ebpf/prog.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/cilium/ebpf/prog.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -175,7 +175,7 @@ func newProgramWithOptions(spec *ProgramSpec, opts ProgramOptions, handles *hand
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if haveObjName() == nil {
 | 
			
		||||
		attr.progName = newBPFObjName(spec.Name)
 | 
			
		||||
		attr.progName = internal.NewBPFObjName(spec.Name)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var err error
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										181
									
								
								vendor/github.com/cilium/ebpf/syscalls.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										181
									
								
								vendor/github.com/cilium/ebpf/syscalls.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -3,6 +3,7 @@ package ebpf
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"unsafe"
 | 
			
		||||
 | 
			
		||||
	"github.com/cilium/ebpf/internal"
 | 
			
		||||
@@ -10,19 +11,10 @@ import (
 | 
			
		||||
	"github.com/cilium/ebpf/internal/unix"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Generic errors returned by BPF syscalls.
 | 
			
		||||
var ErrNotExist = errors.New("requested object does not exist")
 | 
			
		||||
 | 
			
		||||
// bpfObjName is a null-terminated string made up of
 | 
			
		||||
// 'A-Za-z0-9_' characters.
 | 
			
		||||
type bpfObjName [unix.BPF_OBJ_NAME_LEN]byte
 | 
			
		||||
 | 
			
		||||
// newBPFObjName truncates the result if it is too long.
 | 
			
		||||
func newBPFObjName(name string) bpfObjName {
 | 
			
		||||
	var result bpfObjName
 | 
			
		||||
	copy(result[:unix.BPF_OBJ_NAME_LEN-1], name)
 | 
			
		||||
	return result
 | 
			
		||||
}
 | 
			
		||||
// ErrNotExist is returned when loading a non-existing map or program.
 | 
			
		||||
//
 | 
			
		||||
// Deprecated: use os.ErrNotExist instead.
 | 
			
		||||
var ErrNotExist = os.ErrNotExist
 | 
			
		||||
 | 
			
		||||
// invalidBPFObjNameChar returns true if char may not appear in
 | 
			
		||||
// a BPF object name.
 | 
			
		||||
@@ -45,21 +37,6 @@ func invalidBPFObjNameChar(char rune) bool {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type bpfMapCreateAttr struct {
 | 
			
		||||
	mapType        MapType
 | 
			
		||||
	keySize        uint32
 | 
			
		||||
	valueSize      uint32
 | 
			
		||||
	maxEntries     uint32
 | 
			
		||||
	flags          uint32
 | 
			
		||||
	innerMapFd     uint32     // since 4.12 56f668dfe00d
 | 
			
		||||
	numaNode       uint32     // since 4.14 96eabe7a40aa
 | 
			
		||||
	mapName        bpfObjName // since 4.15 ad5b177bd73f
 | 
			
		||||
	mapIfIndex     uint32
 | 
			
		||||
	btfFd          uint32
 | 
			
		||||
	btfKeyTypeID   btf.TypeID
 | 
			
		||||
	btfValueTypeID btf.TypeID
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type bpfMapOpAttr struct {
 | 
			
		||||
	mapFd   uint32
 | 
			
		||||
	padding uint32
 | 
			
		||||
@@ -86,10 +63,10 @@ type bpfMapInfo struct {
 | 
			
		||||
	value_size                uint32
 | 
			
		||||
	max_entries               uint32
 | 
			
		||||
	map_flags                 uint32
 | 
			
		||||
	name                      bpfObjName // since 4.15 ad5b177bd73f
 | 
			
		||||
	ifindex                   uint32     // since 4.16 52775b33bb50
 | 
			
		||||
	btf_vmlinux_value_type_id uint32     // since 5.6  85d33df357b6
 | 
			
		||||
	netns_dev                 uint64     // since 4.16 52775b33bb50
 | 
			
		||||
	name                      internal.BPFObjName // since 4.15 ad5b177bd73f
 | 
			
		||||
	ifindex                   uint32              // since 4.16 52775b33bb50
 | 
			
		||||
	btf_vmlinux_value_type_id uint32              // since 5.6  85d33df357b6
 | 
			
		||||
	netns_dev                 uint64              // since 4.16 52775b33bb50
 | 
			
		||||
	netns_ino                 uint64
 | 
			
		||||
	btf_id                    uint32 // since 4.18 78958fca7ead
 | 
			
		||||
	btf_key_type_id           uint32 // since 4.18 9b2cf328b2ec
 | 
			
		||||
@@ -104,11 +81,11 @@ type bpfProgLoadAttr struct {
 | 
			
		||||
	logLevel           uint32
 | 
			
		||||
	logSize            uint32
 | 
			
		||||
	logBuf             internal.Pointer
 | 
			
		||||
	kernelVersion      uint32     // since 4.1  2541517c32be
 | 
			
		||||
	progFlags          uint32     // since 4.11 e07b98d9bffe
 | 
			
		||||
	progName           bpfObjName // since 4.15 067cae47771c
 | 
			
		||||
	progIfIndex        uint32     // since 4.15 1f6f4cb7ba21
 | 
			
		||||
	expectedAttachType AttachType // since 4.17 5e43f899b03a
 | 
			
		||||
	kernelVersion      uint32              // since 4.1  2541517c32be
 | 
			
		||||
	progFlags          uint32              // since 4.11 e07b98d9bffe
 | 
			
		||||
	progName           internal.BPFObjName // since 4.15 067cae47771c
 | 
			
		||||
	progIfIndex        uint32              // since 4.15 1f6f4cb7ba21
 | 
			
		||||
	expectedAttachType AttachType          // since 4.17 5e43f899b03a
 | 
			
		||||
	progBTFFd          uint32
 | 
			
		||||
	funcInfoRecSize    uint32
 | 
			
		||||
	funcInfo           internal.Pointer
 | 
			
		||||
@@ -132,7 +109,7 @@ type bpfProgInfo struct {
 | 
			
		||||
	created_by_uid           uint32
 | 
			
		||||
	nr_map_ids               uint32
 | 
			
		||||
	map_ids                  internal.Pointer
 | 
			
		||||
	name                     bpfObjName // since 4.15 067cae47771c
 | 
			
		||||
	name                     internal.BPFObjName // since 4.15 067cae47771c
 | 
			
		||||
	ifindex                  uint32
 | 
			
		||||
	gpl_compatible           uint32
 | 
			
		||||
	netns_dev                uint64
 | 
			
		||||
@@ -188,7 +165,7 @@ func bpfProgLoad(attr *bpfProgLoadAttr) (*internal.FD, error) {
 | 
			
		||||
		fd, err := internal.BPF(internal.BPF_PROG_LOAD, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
 | 
			
		||||
		// As of ~4.20 the verifier can be interrupted by a signal,
 | 
			
		||||
		// and returns EAGAIN in that case.
 | 
			
		||||
		if err == unix.EAGAIN {
 | 
			
		||||
		if errors.Is(err, unix.EAGAIN) {
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
@@ -205,23 +182,14 @@ func bpfProgTestRun(attr *bpfProgTestRunAttr) error {
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func bpfMapCreate(attr *bpfMapCreateAttr) (*internal.FD, error) {
 | 
			
		||||
	fd, err := internal.BPF(internal.BPF_MAP_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return internal.NewFD(uint32(fd)), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var haveNestedMaps = internal.FeatureTest("nested maps", "4.12", func() error {
 | 
			
		||||
	_, err := bpfMapCreate(&bpfMapCreateAttr{
 | 
			
		||||
		mapType:    ArrayOfMaps,
 | 
			
		||||
		keySize:    4,
 | 
			
		||||
		valueSize:  4,
 | 
			
		||||
		maxEntries: 1,
 | 
			
		||||
	_, err := internal.BPFMapCreate(&internal.BPFMapCreateAttr{
 | 
			
		||||
		MapType:    uint32(ArrayOfMaps),
 | 
			
		||||
		KeySize:    4,
 | 
			
		||||
		ValueSize:  4,
 | 
			
		||||
		MaxEntries: 1,
 | 
			
		||||
		// Invalid file descriptor.
 | 
			
		||||
		innerMapFd: ^uint32(0),
 | 
			
		||||
		InnerMapFd: ^uint32(0),
 | 
			
		||||
	})
 | 
			
		||||
	if errors.Is(err, unix.EINVAL) {
 | 
			
		||||
		return internal.ErrNotSupported
 | 
			
		||||
@@ -235,12 +203,44 @@ var haveNestedMaps = internal.FeatureTest("nested maps", "4.12", func() error {
 | 
			
		||||
var haveMapMutabilityModifiers = internal.FeatureTest("read- and write-only maps", "5.2", func() error {
 | 
			
		||||
	// This checks BPF_F_RDONLY_PROG and BPF_F_WRONLY_PROG. Since
 | 
			
		||||
	// BPF_MAP_FREEZE appeared in 5.2 as well we don't do a separate check.
 | 
			
		||||
	m, err := bpfMapCreate(&bpfMapCreateAttr{
 | 
			
		||||
		mapType:    Array,
 | 
			
		||||
		keySize:    4,
 | 
			
		||||
		valueSize:  4,
 | 
			
		||||
		maxEntries: 1,
 | 
			
		||||
		flags:      unix.BPF_F_RDONLY_PROG,
 | 
			
		||||
	m, err := internal.BPFMapCreate(&internal.BPFMapCreateAttr{
 | 
			
		||||
		MapType:    uint32(Array),
 | 
			
		||||
		KeySize:    4,
 | 
			
		||||
		ValueSize:  4,
 | 
			
		||||
		MaxEntries: 1,
 | 
			
		||||
		Flags:      unix.BPF_F_RDONLY_PROG,
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return internal.ErrNotSupported
 | 
			
		||||
	}
 | 
			
		||||
	_ = m.Close()
 | 
			
		||||
	return nil
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
var haveMmapableMaps = internal.FeatureTest("mmapable maps", "5.5", func() error {
 | 
			
		||||
	// This checks BPF_F_MMAPABLE, which appeared in 5.5 for array maps.
 | 
			
		||||
	m, err := internal.BPFMapCreate(&internal.BPFMapCreateAttr{
 | 
			
		||||
		MapType:    uint32(Array),
 | 
			
		||||
		KeySize:    4,
 | 
			
		||||
		ValueSize:  4,
 | 
			
		||||
		MaxEntries: 1,
 | 
			
		||||
		Flags:      unix.BPF_F_MMAPABLE,
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return internal.ErrNotSupported
 | 
			
		||||
	}
 | 
			
		||||
	_ = m.Close()
 | 
			
		||||
	return nil
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
var haveInnerMaps = internal.FeatureTest("inner maps", "5.10", func() error {
 | 
			
		||||
	// This checks BPF_F_INNER_MAP, which appeared in 5.10.
 | 
			
		||||
	m, err := internal.BPFMapCreate(&internal.BPFMapCreateAttr{
 | 
			
		||||
		MapType:    uint32(Array),
 | 
			
		||||
		KeySize:    4,
 | 
			
		||||
		ValueSize:  4,
 | 
			
		||||
		MaxEntries: 1,
 | 
			
		||||
		Flags:      unix.BPF_F_INNER_MAP,
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return internal.ErrNotSupported
 | 
			
		||||
@@ -329,7 +329,7 @@ func objGetNextID(cmd internal.BPFCmd, start uint32) (uint32, error) {
 | 
			
		||||
		startID: start,
 | 
			
		||||
	}
 | 
			
		||||
	_, err := internal.BPF(cmd, unsafe.Pointer(&attr), unsafe.Sizeof(attr))
 | 
			
		||||
	return attr.nextID, wrapObjError(err)
 | 
			
		||||
	return attr.nextID, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func bpfMapBatch(cmd internal.BPFCmd, m *internal.FD, inBatch, outBatch, keys, values internal.Pointer, count uint32, opts *BatchOptions) (uint32, error) {
 | 
			
		||||
@@ -355,32 +355,21 @@ func bpfMapBatch(cmd internal.BPFCmd, m *internal.FD, inBatch, outBatch, keys, v
 | 
			
		||||
	return attr.count, wrapMapError(err)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func wrapObjError(err error) error {
 | 
			
		||||
	if err == nil {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
	if errors.Is(err, unix.ENOENT) {
 | 
			
		||||
		return fmt.Errorf("%w", ErrNotExist)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return errors.New(err.Error())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func wrapMapError(err error) error {
 | 
			
		||||
	if err == nil {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if errors.Is(err, unix.ENOENT) {
 | 
			
		||||
		return ErrKeyNotExist
 | 
			
		||||
		return internal.SyscallError(ErrKeyNotExist, unix.ENOENT)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if errors.Is(err, unix.EEXIST) {
 | 
			
		||||
		return ErrKeyExist
 | 
			
		||||
		return internal.SyscallError(ErrKeyExist, unix.EEXIST)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if errors.Is(err, unix.ENOTSUPP) {
 | 
			
		||||
		return ErrNotSupported
 | 
			
		||||
		return internal.SyscallError(ErrNotSupported, unix.ENOTSUPP)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return err
 | 
			
		||||
@@ -417,15 +406,15 @@ func bpfGetMapInfoByFD(fd *internal.FD) (*bpfMapInfo, error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var haveObjName = internal.FeatureTest("object names", "4.15", func() error {
 | 
			
		||||
	attr := bpfMapCreateAttr{
 | 
			
		||||
		mapType:    Array,
 | 
			
		||||
		keySize:    4,
 | 
			
		||||
		valueSize:  4,
 | 
			
		||||
		maxEntries: 1,
 | 
			
		||||
		mapName:    newBPFObjName("feature_test"),
 | 
			
		||||
	attr := internal.BPFMapCreateAttr{
 | 
			
		||||
		MapType:    uint32(Array),
 | 
			
		||||
		KeySize:    4,
 | 
			
		||||
		ValueSize:  4,
 | 
			
		||||
		MaxEntries: 1,
 | 
			
		||||
		MapName:    internal.NewBPFObjName("feature_test"),
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	fd, err := bpfMapCreate(&attr)
 | 
			
		||||
	fd, err := internal.BPFMapCreate(&attr)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return internal.ErrNotSupported
 | 
			
		||||
	}
 | 
			
		||||
@@ -439,15 +428,15 @@ var objNameAllowsDot = internal.FeatureTest("dot in object names", "5.2", func()
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	attr := bpfMapCreateAttr{
 | 
			
		||||
		mapType:    Array,
 | 
			
		||||
		keySize:    4,
 | 
			
		||||
		valueSize:  4,
 | 
			
		||||
		maxEntries: 1,
 | 
			
		||||
		mapName:    newBPFObjName(".test"),
 | 
			
		||||
	attr := internal.BPFMapCreateAttr{
 | 
			
		||||
		MapType:    uint32(Array),
 | 
			
		||||
		KeySize:    4,
 | 
			
		||||
		ValueSize:  4,
 | 
			
		||||
		MaxEntries: 1,
 | 
			
		||||
		MapName:    internal.NewBPFObjName(".test"),
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	fd, err := bpfMapCreate(&attr)
 | 
			
		||||
	fd, err := internal.BPFMapCreate(&attr)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return internal.ErrNotSupported
 | 
			
		||||
	}
 | 
			
		||||
@@ -458,14 +447,14 @@ var objNameAllowsDot = internal.FeatureTest("dot in object names", "5.2", func()
 | 
			
		||||
 | 
			
		||||
var haveBatchAPI = internal.FeatureTest("map batch api", "5.6", func() error {
 | 
			
		||||
	var maxEntries uint32 = 2
 | 
			
		||||
	attr := bpfMapCreateAttr{
 | 
			
		||||
		mapType:    Hash,
 | 
			
		||||
		keySize:    4,
 | 
			
		||||
		valueSize:  4,
 | 
			
		||||
		maxEntries: maxEntries,
 | 
			
		||||
	attr := internal.BPFMapCreateAttr{
 | 
			
		||||
		MapType:    uint32(Hash),
 | 
			
		||||
		KeySize:    4,
 | 
			
		||||
		ValueSize:  4,
 | 
			
		||||
		MaxEntries: maxEntries,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	fd, err := bpfMapCreate(&attr)
 | 
			
		||||
	fd, err := internal.BPFMapCreate(&attr)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return internal.ErrNotSupported
 | 
			
		||||
	}
 | 
			
		||||
@@ -487,5 +476,5 @@ func bpfObjGetFDByID(cmd internal.BPFCmd, id uint32) (*internal.FD, error) {
 | 
			
		||||
		id: id,
 | 
			
		||||
	}
 | 
			
		||||
	ptr, err := internal.BPF(cmd, unsafe.Pointer(&attr), unsafe.Sizeof(attr))
 | 
			
		||||
	return internal.NewFD(uint32(ptr)), wrapObjError(err)
 | 
			
		||||
	return internal.NewFD(uint32(ptr)), err
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/cilium/ebpf/types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/cilium/ebpf/types.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -85,6 +85,10 @@ const (
 | 
			
		||||
	SkStorage
 | 
			
		||||
	// DevMapHash - Hash-based indexing scheme for references to network devices.
 | 
			
		||||
	DevMapHash
 | 
			
		||||
	StructOpts
 | 
			
		||||
	RingBuf
 | 
			
		||||
	InodeStorage
 | 
			
		||||
	TaskStorage
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// hasPerCPUValue returns true if the Map stores a value per CPU.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/github.com/cilium/ebpf/types_string.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/cilium/ebpf/types_string.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -34,11 +34,15 @@ func _() {
 | 
			
		||||
	_ = x[Stack-23]
 | 
			
		||||
	_ = x[SkStorage-24]
 | 
			
		||||
	_ = x[DevMapHash-25]
 | 
			
		||||
	_ = x[StructOpts-26]
 | 
			
		||||
	_ = x[RingBuf-27]
 | 
			
		||||
	_ = x[InodeStorage-28]
 | 
			
		||||
	_ = x[TaskStorage-29]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const _MapType_name = "UnspecifiedMapHashArrayProgramArrayPerfEventArrayPerCPUHashPerCPUArrayStackTraceCGroupArrayLRUHashLRUCPUHashLPMTrieArrayOfMapsHashOfMapsDevMapSockMapCPUMapXSKMapSockHashCGroupStorageReusePortSockArrayPerCPUCGroupStorageQueueStackSkStorageDevMapHash"
 | 
			
		||||
const _MapType_name = "UnspecifiedMapHashArrayProgramArrayPerfEventArrayPerCPUHashPerCPUArrayStackTraceCGroupArrayLRUHashLRUCPUHashLPMTrieArrayOfMapsHashOfMapsDevMapSockMapCPUMapXSKMapSockHashCGroupStorageReusePortSockArrayPerCPUCGroupStorageQueueStackSkStorageDevMapHashStructOptsRingBufInodeStorageTaskStorage"
 | 
			
		||||
 | 
			
		||||
var _MapType_index = [...]uint8{0, 14, 18, 23, 35, 49, 59, 70, 80, 91, 98, 108, 115, 126, 136, 142, 149, 155, 161, 169, 182, 200, 219, 224, 229, 238, 248}
 | 
			
		||||
var _MapType_index = [...]uint16{0, 14, 18, 23, 35, 49, 59, 70, 80, 91, 98, 108, 115, 126, 136, 142, 149, 155, 161, 169, 182, 200, 219, 224, 229, 238, 248, 258, 265, 277, 288}
 | 
			
		||||
 | 
			
		||||
func (i MapType) String() string {
 | 
			
		||||
	if i >= MapType(len(_MapType_index)-1) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user