inspektor-gadget
168 строк · 4.6 Кб
1// Code generated by bpf2go; DO NOT EDIT.
2//go:build arm64
3
4package socketenricher
5
6import (
7"bytes"
8_ "embed"
9"fmt"
10"io"
11
12"github.com/cilium/ebpf"
13)
14
15type socketenricherSocketsKey struct {
16Netns uint32
17Family uint16
18Proto uint16
19Port uint16
20_ [2]byte
21}
22
23type socketenricherSocketsValue struct {
24Mntns uint64
25PidTgid uint64
26UidGid uint64
27Task [16]int8
28Sock uint64
29DeletionTimestamp uint64
30Ipv6only int8
31_ [7]byte
32}
33
34// loadSocketenricher returns the embedded CollectionSpec for socketenricher.
35func loadSocketenricher() (*ebpf.CollectionSpec, error) {
36reader := bytes.NewReader(_SocketenricherBytes)
37spec, err := ebpf.LoadCollectionSpecFromReader(reader)
38if err != nil {
39return nil, fmt.Errorf("can't load socketenricher: %w", err)
40}
41
42return spec, err
43}
44
45// loadSocketenricherObjects loads socketenricher and converts it into a struct.
46//
47// The following types are suitable as obj argument:
48//
49// *socketenricherObjects
50// *socketenricherPrograms
51// *socketenricherMaps
52//
53// See ebpf.CollectionSpec.LoadAndAssign documentation for details.
54func loadSocketenricherObjects(obj interface{}, opts *ebpf.CollectionOptions) error {
55spec, err := loadSocketenricher()
56if err != nil {
57return err
58}
59
60return spec.LoadAndAssign(obj, opts)
61}
62
63// socketenricherSpecs contains maps and programs before they are loaded into the kernel.
64//
65// It can be passed ebpf.CollectionSpec.Assign.
66type socketenricherSpecs struct {
67socketenricherProgramSpecs
68socketenricherMapSpecs
69}
70
71// socketenricherSpecs contains programs before they are loaded into the kernel.
72//
73// It can be passed ebpf.CollectionSpec.Assign.
74type socketenricherProgramSpecs struct {
75IgBindIpv4E *ebpf.ProgramSpec `ebpf:"ig_bind_ipv4_e"`
76IgBindIpv4X *ebpf.ProgramSpec `ebpf:"ig_bind_ipv4_x"`
77IgBindIpv6E *ebpf.ProgramSpec `ebpf:"ig_bind_ipv6_e"`
78IgBindIpv6X *ebpf.ProgramSpec `ebpf:"ig_bind_ipv6_x"`
79IgFreeIpv4E *ebpf.ProgramSpec `ebpf:"ig_free_ipv4_e"`
80IgFreeIpv6E *ebpf.ProgramSpec `ebpf:"ig_free_ipv6_e"`
81IgTcpCoE *ebpf.ProgramSpec `ebpf:"ig_tcp_co_e"`
82IgTcpCoX *ebpf.ProgramSpec `ebpf:"ig_tcp_co_x"`
83IgUdp6Sendmsg *ebpf.ProgramSpec `ebpf:"ig_udp6_sendmsg"`
84IgUdpSendmsg *ebpf.ProgramSpec `ebpf:"ig_udp_sendmsg"`
85}
86
87// socketenricherMapSpecs contains maps before they are loaded into the kernel.
88//
89// It can be passed ebpf.CollectionSpec.Assign.
90type socketenricherMapSpecs struct {
91GadgetSockets *ebpf.MapSpec `ebpf:"gadget_sockets"`
92Start *ebpf.MapSpec `ebpf:"start"`
93}
94
95// socketenricherObjects contains all objects after they have been loaded into the kernel.
96//
97// It can be passed to loadSocketenricherObjects or ebpf.CollectionSpec.LoadAndAssign.
98type socketenricherObjects struct {
99socketenricherPrograms
100socketenricherMaps
101}
102
103func (o *socketenricherObjects) Close() error {
104return _SocketenricherClose(
105&o.socketenricherPrograms,
106&o.socketenricherMaps,
107)
108}
109
110// socketenricherMaps contains all maps after they have been loaded into the kernel.
111//
112// It can be passed to loadSocketenricherObjects or ebpf.CollectionSpec.LoadAndAssign.
113type socketenricherMaps struct {
114GadgetSockets *ebpf.Map `ebpf:"gadget_sockets"`
115Start *ebpf.Map `ebpf:"start"`
116}
117
118func (m *socketenricherMaps) Close() error {
119return _SocketenricherClose(
120m.GadgetSockets,
121m.Start,
122)
123}
124
125// socketenricherPrograms contains all programs after they have been loaded into the kernel.
126//
127// It can be passed to loadSocketenricherObjects or ebpf.CollectionSpec.LoadAndAssign.
128type socketenricherPrograms struct {
129IgBindIpv4E *ebpf.Program `ebpf:"ig_bind_ipv4_e"`
130IgBindIpv4X *ebpf.Program `ebpf:"ig_bind_ipv4_x"`
131IgBindIpv6E *ebpf.Program `ebpf:"ig_bind_ipv6_e"`
132IgBindIpv6X *ebpf.Program `ebpf:"ig_bind_ipv6_x"`
133IgFreeIpv4E *ebpf.Program `ebpf:"ig_free_ipv4_e"`
134IgFreeIpv6E *ebpf.Program `ebpf:"ig_free_ipv6_e"`
135IgTcpCoE *ebpf.Program `ebpf:"ig_tcp_co_e"`
136IgTcpCoX *ebpf.Program `ebpf:"ig_tcp_co_x"`
137IgUdp6Sendmsg *ebpf.Program `ebpf:"ig_udp6_sendmsg"`
138IgUdpSendmsg *ebpf.Program `ebpf:"ig_udp_sendmsg"`
139}
140
141func (p *socketenricherPrograms) Close() error {
142return _SocketenricherClose(
143p.IgBindIpv4E,
144p.IgBindIpv4X,
145p.IgBindIpv6E,
146p.IgBindIpv6X,
147p.IgFreeIpv4E,
148p.IgFreeIpv6E,
149p.IgTcpCoE,
150p.IgTcpCoX,
151p.IgUdp6Sendmsg,
152p.IgUdpSendmsg,
153)
154}
155
156func _SocketenricherClose(closers ...io.Closer) error {
157for _, closer := range closers {
158if err := closer.Close(); err != nil {
159return err
160}
161}
162return nil
163}
164
165// Do not access this directly.
166//
167//go:embed socketenricher_bpfel_arm64.o
168var _SocketenricherBytes []byte
169