Lines Matching full:helper
15 helpersDocStart = 'Start of BPF helper function descriptions:'
46 class Helper(APIElement): class
48 An object representing the description of an eBPF helper function.
49 @proto: function prototype of the helper function
50 @desc: textual description of the helper function
51 @ret: description of the return value of the helper function
59 Break down helper function protocol into smaller chunks: return type,
87 list of eBPF helper functions. All the helpers that can be retrieved are
88 stored as Helper object, in the self.helpers() array.
114 return Helper(proto=proto, desc=desc, ret=ret)
246 'Could not find start of eBPF helper descriptions list')
249 helper = self.parse_helper()
250 self.helpers.append(helper)
251 proto = helper.proto_break_down()
264 'Could not find start of eBPF helper definition list')
288 for helper in self.helpers:
289 proto = helper.proto_break_down()
295 raise Exception("Helper %s is missing from enum bpf_func_id" % name)
299 … raise Exception("Helper %s has multiple descriptions which are not grouped together" % name)
305 …raise Exception("Helper %s (ID %d) comment order (#%d) must be aligned with its position (#%d) in …
307 raise Exception("Helper %s has duplicated value %d" % (name, enum_val))
313 helper.enum_val = enum_val
329 Helper objects, and implement a way to print them in the desired fashion.
342 def print_one(self, helper): argument
364 # Function description is parsed until no helper is found (which can be due to
365 # misformatting). Hence, only print the first missing/misformatted helper/enum.
440 @parser: A HeaderParser with Helper objects to print to standard output
444 …self.elem_number_check(parser.desc_unique_helpers, parser.define_unique_helpers, 'helper', '___BPF…
452 list of eBPF helper functions
477 Due to eBPF conventions, a helper can not have more than five arguments.
479 Internally, eBPF programs call directly into the compiled helper functions
515 as "Dual BSD/GPL", may be used). Some helper functions are only accessible to
530 This manual page is an effort to document the existing eBPF helper functions.
532 program or map types are added, along with new helper functions. Some helpers
535 check by yourself what helper functions exist in your kernel, or what types of
540 of all helper functions, as well as many other BPF definitions including most
542 * *net/core/filter.c* contains the definition of most network-related helper
547 of eBPF maps are used with a given helper function.
550 * The bpftool utility can be used to probe the availability of helper functions
556 Compatibility between helper functions and program types can generally be found
557 in the files where helper functions are defined. Look for the **struct
564 Compatibility between helper functions and map types can be found in the
567 Helper functions that invalidate the checks on **data** and **data_end**
584 def print_proto(self, helper): argument
589 proto = helper.proto_break_down()
610 def print_one(self, helper): argument
611 self.print_proto(helper)
612 self.print_elem(helper)
653 @parser: A HeaderParser with Helper objects to print to standard output
657 …self.elem_number_check(parser.desc_unique_helpers, parser.define_unique_helpers, 'helper', '___BPF…
807 def print_one(self, helper): argument
808 proto = helper.proto_break_down()
817 if (helper.desc):
820 for line in re.sub('\n$', '', helper.desc, count=1).split('\n'):
823 if (helper.ret):
826 for line in helper.ret.rstrip().split('\n'):
849 print(') = (void *) %d;' % helper.enum_val)