inspektor-gadget
1// Code generated by bpf2go; DO NOT EDIT.
2//go:build 386 || amd64 || amd64p32 || arm || arm64 || loong64 || mips64le || mips64p32le || mipsle || ppc64le || riscv64
3
4package tracer5
6import (7"bytes"8_ "embed"9"fmt"10"io"11
12"github.com/cilium/ebpf"13)
14
15type dnsEventT struct {16Netns uint3217_ [4]byte18Timestamp uint6419MountNsId uint6420Pid uint3221Tid uint3222Uid uint3223Gid uint3224Task [16]uint825SaddrV6 [16]uint826DaddrV6 [16]uint827Af uint1628Sport uint1629Dport uint1630Proto uint831_ [1]byte32Id uint1633Qtype uint1634Qr uint835PktType uint836Rcode uint837_ [1]byte38LatencyNs uint6439Name [255]uint840_ [1]byte41Ancount uint1642Anaddrcount uint1643Anaddr [8][16]uint844_ [4]byte45}
46
47type dnsQueryKeyT struct {48PidTgid uint6449Id uint1650}
51
52type dnsSocketsKey struct {53Netns uint3254Family uint1655Proto uint1656Port uint1657_ [2]byte58}
59
60type dnsSocketsValue struct {61Mntns uint6462PidTgid uint6463UidGid uint6464Task [16]int865Sock uint6466DeletionTimestamp uint6467Ipv6only int868_ [7]byte69}
70
71// loadDns returns the embedded CollectionSpec for dns.
72func loadDns() (*ebpf.CollectionSpec, error) {73reader := bytes.NewReader(_DnsBytes)74spec, err := ebpf.LoadCollectionSpecFromReader(reader)75if err != nil {76return nil, fmt.Errorf("can't load dns: %w", err)77}78
79return spec, err80}
81
82// loadDnsObjects loads dns and converts it into a struct.
83//
84// The following types are suitable as obj argument:
85//
86// *dnsObjects
87// *dnsPrograms
88// *dnsMaps
89//
90// See ebpf.CollectionSpec.LoadAndAssign documentation for details.
91func loadDnsObjects(obj interface{}, opts *ebpf.CollectionOptions) error {92spec, err := loadDns()93if err != nil {94return err95}96
97return spec.LoadAndAssign(obj, opts)98}
99
100// dnsSpecs contains maps and programs before they are loaded into the kernel.
101//
102// It can be passed ebpf.CollectionSpec.Assign.
103type dnsSpecs struct {104dnsProgramSpecs
105dnsMapSpecs
106}
107
108// dnsSpecs contains programs before they are loaded into the kernel.
109//
110// It can be passed ebpf.CollectionSpec.Assign.
111type dnsProgramSpecs struct {112IgTraceDns *ebpf.ProgramSpec `ebpf:"ig_trace_dns"`113}
114
115// dnsMapSpecs contains maps before they are loaded into the kernel.
116//
117// It can be passed ebpf.CollectionSpec.Assign.
118type dnsMapSpecs struct {119Events *ebpf.MapSpec `ebpf:"events"`120GadgetSockets *ebpf.MapSpec `ebpf:"gadget_sockets"`121QueryMap *ebpf.MapSpec `ebpf:"query_map"`122TmpEvent *ebpf.MapSpec `ebpf:"tmp_event"`123}
124
125// dnsObjects contains all objects after they have been loaded into the kernel.
126//
127// It can be passed to loadDnsObjects or ebpf.CollectionSpec.LoadAndAssign.
128type dnsObjects struct {129dnsPrograms
130dnsMaps
131}
132
133func (o *dnsObjects) Close() error {134return _DnsClose(135&o.dnsPrograms,136&o.dnsMaps,137)138}
139
140// dnsMaps contains all maps after they have been loaded into the kernel.
141//
142// It can be passed to loadDnsObjects or ebpf.CollectionSpec.LoadAndAssign.
143type dnsMaps struct {144Events *ebpf.Map `ebpf:"events"`145GadgetSockets *ebpf.Map `ebpf:"gadget_sockets"`146QueryMap *ebpf.Map `ebpf:"query_map"`147TmpEvent *ebpf.Map `ebpf:"tmp_event"`148}
149
150func (m *dnsMaps) Close() error {151return _DnsClose(152m.Events,153m.GadgetSockets,154m.QueryMap,155m.TmpEvent,156)157}
158
159// dnsPrograms contains all programs after they have been loaded into the kernel.
160//
161// It can be passed to loadDnsObjects or ebpf.CollectionSpec.LoadAndAssign.
162type dnsPrograms struct {163IgTraceDns *ebpf.Program `ebpf:"ig_trace_dns"`164}
165
166func (p *dnsPrograms) Close() error {167return _DnsClose(168p.IgTraceDns,169)170}
171
172func _DnsClose(closers ...io.Closer) error {173for _, closer := range closers {174if err := closer.Close(); err != nil {175return err176}177}178return nil179}
180
181// Do not access this directly.
182//
183//go:embed dns_bpfel.o
184var _DnsBytes []byte185