github.com/inspektor-gadget/inspektor-gadget@v0.28.1/pkg/gadgets/trace/fsslower/tracer/fsslower_arm64_bpfel.go (about) 1 // Code generated by bpf2go; DO NOT EDIT. 2 //go:build arm64 3 4 package tracer 5 6 import ( 7 "bytes" 8 _ "embed" 9 "fmt" 10 "io" 11 12 "github.com/cilium/ebpf" 13 ) 14 15 type fsslowerEvent struct { 16 DeltaUs uint64 17 EndNs uint64 18 Offset int64 19 Size uint64 20 MntnsId uint64 21 Timestamp uint64 22 Pid uint32 23 Op uint32 24 File [32]uint8 25 Task [16]uint8 26 } 27 28 // loadFsslower returns the embedded CollectionSpec for fsslower. 29 func loadFsslower() (*ebpf.CollectionSpec, error) { 30 reader := bytes.NewReader(_FsslowerBytes) 31 spec, err := ebpf.LoadCollectionSpecFromReader(reader) 32 if err != nil { 33 return nil, fmt.Errorf("can't load fsslower: %w", err) 34 } 35 36 return spec, err 37 } 38 39 // loadFsslowerObjects loads fsslower and converts it into a struct. 40 // 41 // The following types are suitable as obj argument: 42 // 43 // *fsslowerObjects 44 // *fsslowerPrograms 45 // *fsslowerMaps 46 // 47 // See ebpf.CollectionSpec.LoadAndAssign documentation for details. 48 func loadFsslowerObjects(obj interface{}, opts *ebpf.CollectionOptions) error { 49 spec, err := loadFsslower() 50 if err != nil { 51 return err 52 } 53 54 return spec.LoadAndAssign(obj, opts) 55 } 56 57 // fsslowerSpecs contains maps and programs before they are loaded into the kernel. 58 // 59 // It can be passed ebpf.CollectionSpec.Assign. 60 type fsslowerSpecs struct { 61 fsslowerProgramSpecs 62 fsslowerMapSpecs 63 } 64 65 // fsslowerSpecs contains programs before they are loaded into the kernel. 66 // 67 // It can be passed ebpf.CollectionSpec.Assign. 68 type fsslowerProgramSpecs struct { 69 IgFsslOpenE *ebpf.ProgramSpec `ebpf:"ig_fssl_open_e"` 70 IgFsslOpenX *ebpf.ProgramSpec `ebpf:"ig_fssl_open_x"` 71 IgFsslReadE *ebpf.ProgramSpec `ebpf:"ig_fssl_read_e"` 72 IgFsslReadX *ebpf.ProgramSpec `ebpf:"ig_fssl_read_x"` 73 IgFsslStatfsE *ebpf.ProgramSpec `ebpf:"ig_fssl_statfs_e"` 74 IgFsslStatfsX *ebpf.ProgramSpec `ebpf:"ig_fssl_statfs_x"` 75 IgFsslSyncE *ebpf.ProgramSpec `ebpf:"ig_fssl_sync_e"` 76 IgFsslSyncX *ebpf.ProgramSpec `ebpf:"ig_fssl_sync_x"` 77 IgFsslWrE *ebpf.ProgramSpec `ebpf:"ig_fssl_wr_e"` 78 IgFsslWrX *ebpf.ProgramSpec `ebpf:"ig_fssl_wr_x"` 79 } 80 81 // fsslowerMapSpecs contains maps before they are loaded into the kernel. 82 // 83 // It can be passed ebpf.CollectionSpec.Assign. 84 type fsslowerMapSpecs struct { 85 Events *ebpf.MapSpec `ebpf:"events"` 86 GadgetMntnsFilterMap *ebpf.MapSpec `ebpf:"gadget_mntns_filter_map"` 87 Starts *ebpf.MapSpec `ebpf:"starts"` 88 } 89 90 // fsslowerObjects contains all objects after they have been loaded into the kernel. 91 // 92 // It can be passed to loadFsslowerObjects or ebpf.CollectionSpec.LoadAndAssign. 93 type fsslowerObjects struct { 94 fsslowerPrograms 95 fsslowerMaps 96 } 97 98 func (o *fsslowerObjects) Close() error { 99 return _FsslowerClose( 100 &o.fsslowerPrograms, 101 &o.fsslowerMaps, 102 ) 103 } 104 105 // fsslowerMaps contains all maps after they have been loaded into the kernel. 106 // 107 // It can be passed to loadFsslowerObjects or ebpf.CollectionSpec.LoadAndAssign. 108 type fsslowerMaps struct { 109 Events *ebpf.Map `ebpf:"events"` 110 GadgetMntnsFilterMap *ebpf.Map `ebpf:"gadget_mntns_filter_map"` 111 Starts *ebpf.Map `ebpf:"starts"` 112 } 113 114 func (m *fsslowerMaps) Close() error { 115 return _FsslowerClose( 116 m.Events, 117 m.GadgetMntnsFilterMap, 118 m.Starts, 119 ) 120 } 121 122 // fsslowerPrograms contains all programs after they have been loaded into the kernel. 123 // 124 // It can be passed to loadFsslowerObjects or ebpf.CollectionSpec.LoadAndAssign. 125 type fsslowerPrograms struct { 126 IgFsslOpenE *ebpf.Program `ebpf:"ig_fssl_open_e"` 127 IgFsslOpenX *ebpf.Program `ebpf:"ig_fssl_open_x"` 128 IgFsslReadE *ebpf.Program `ebpf:"ig_fssl_read_e"` 129 IgFsslReadX *ebpf.Program `ebpf:"ig_fssl_read_x"` 130 IgFsslStatfsE *ebpf.Program `ebpf:"ig_fssl_statfs_e"` 131 IgFsslStatfsX *ebpf.Program `ebpf:"ig_fssl_statfs_x"` 132 IgFsslSyncE *ebpf.Program `ebpf:"ig_fssl_sync_e"` 133 IgFsslSyncX *ebpf.Program `ebpf:"ig_fssl_sync_x"` 134 IgFsslWrE *ebpf.Program `ebpf:"ig_fssl_wr_e"` 135 IgFsslWrX *ebpf.Program `ebpf:"ig_fssl_wr_x"` 136 } 137 138 func (p *fsslowerPrograms) Close() error { 139 return _FsslowerClose( 140 p.IgFsslOpenE, 141 p.IgFsslOpenX, 142 p.IgFsslReadE, 143 p.IgFsslReadX, 144 p.IgFsslStatfsE, 145 p.IgFsslStatfsX, 146 p.IgFsslSyncE, 147 p.IgFsslSyncX, 148 p.IgFsslWrE, 149 p.IgFsslWrX, 150 ) 151 } 152 153 func _FsslowerClose(closers ...io.Closer) error { 154 for _, closer := range closers { 155 if err := closer.Close(); err != nil { 156 return err 157 } 158 } 159 return nil 160 } 161 162 // Do not access this directly. 163 // 164 //go:embed fsslower_arm64_bpfel.o 165 var _FsslowerBytes []byte