Lines Matching refs:self
25 def __init__(self, line='<line not provided>', reader=None): argument
27 BaseException.__init__(self,
31 BaseException.__init__(self, 'Error parsing line: %s' % line)
41 def __init__(self, proto='', desc='', ret=''): argument
42 self.proto = proto
43 self.desc = desc
44 self.ret = ret
46 def to_dict(self): argument
48 'proto': self.proto,
49 'desc': self.desc,
50 'ret': self.ret
61 def __init__(self, proto='', desc='', ret='', attrs=[]): argument
63 self.attrs = attrs
64 self.enum_val = None
66 def proto_break_down(self): argument
75 capture = proto_re.match(self.proto)
92 def to_dict(self): argument
94 d["attrs"] = self.attrs
95 d.update(self.proto_break_down())
112 def __init__(self, filename): argument
113 self.reader = open(filename, 'r')
114 self.line = ''
115 self.helpers = []
116 self.commands = []
117 self.desc_unique_helpers = set()
118 self.define_unique_helpers = []
119 self.helper_enum_vals = {}
120 self.helper_enum_pos = {}
121 self.desc_syscalls = []
122 self.enum_syscalls = []
124 def parse_element(self): argument
125 proto = self.parse_symbol()
126 desc = self.parse_desc(proto)
127 ret = self.parse_ret(proto)
130 def parse_helper(self): argument
131 proto = self.parse_proto()
132 desc = self.parse_desc(proto)
133 ret = self.parse_ret(proto)
134 attrs = self.parse_attrs(proto)
137 def parse_symbol(self): argument
139 capture = p.match(self.line)
143 end = end_re.match(self.line)
146 self.line = self.reader.readline()
149 def parse_proto(self): argument
158 capture = p.match(self.line)
161 self.line = self.reader.readline()
164 def parse_desc(self, proto): argument
166 capture = p.match(self.line)
174 self.line = self.reader.readline()
175 if self.line == ' *\n':
179 capture = p.match(self.line)
190 def parse_ret(self, proto): argument
192 capture = p.match(self.line)
200 self.line = self.reader.readline()
201 if self.line == ' *\n':
205 capture = p.match(self.line)
216 def parse_attrs(self, proto): argument
218 capture = p.match(self.line)
222 self.line = self.reader.readline()
224 capture = p.match(self.line)
231 self.line = self.reader.readline()
232 if self.line != ' *\n':
235 self.line = self.reader.readline()
238 def seek_to(self, target, help_message, discard_lines = 1): argument
239 self.reader.seek(0)
240 offset = self.reader.read().find(target)
243 self.reader.seek(offset)
244 self.reader.readline()
246 self.reader.readline()
247 self.line = self.reader.readline()
249 def parse_desc_syscall(self): argument
250 self.seek_to('* DOC: eBPF Syscall Commands',
254 command = self.parse_element()
255 self.commands.append(command)
256 self.desc_syscalls.append(command.proto)
261 def parse_enum_syscall(self): argument
262 self.seek_to('enum bpf_cmd {',
273 capture = assign_p.match(self.line)
276 self.line = self.reader.readline()
278 capture = bpf_p.match(self.line)
280 bpf_cmd_str += self.line
283 self.line = self.reader.readline()
285 self.enum_syscalls = re.findall(r'(BPF\w+)+', bpf_cmd_str)
287 def parse_desc_helpers(self): argument
288 self.seek_to(helpersDocStart,
292 helper = self.parse_helper()
293 self.helpers.append(helper)
295 self.desc_unique_helpers.add(proto['name'])
299 def parse_define_helpers(self): argument
306 self.seek_to('#define ___BPF_FUNC_MAPPER(FN, ctx...)',
313 capture = p.match(self.line)
315 fn_defines_str += self.line
317 self.helper_enum_vals[helper_name] = int(capture.group(2))
318 self.helper_enum_pos[helper_name] = i
322 self.line = self.reader.readline()
324 self.define_unique_helpers = re.findall(r'FN\(\w+, \d+, ##ctx\)', fn_defines_str)
326 def validate_helpers(self): argument
331 for helper in self.helpers:
335 enum_val = self.helper_enum_vals[name]
336 enum_pos = self.helper_enum_pos[name]
359 def run(self): argument
360 self.parse_desc_syscall()
361 self.parse_enum_syscall()
362 self.parse_desc_helpers()
363 self.parse_define_helpers()
364 self.validate_helpers()
365 self.reader.close()
375 def __init__(self, parser): argument
376 self.parser = parser
377 self.elements = []
379 def print_header(self): argument
382 def print_footer(self): argument
385 def print_one(self, helper): argument
388 def print_all(self): argument
389 self.print_header()
390 for elem in self.elements:
391 self.print_one(elem)
392 self.print_footer()
394 def elem_number_check(self, desc_unique_elem, define_unique_elem, type, instance): argument
421 def __init__(self, parser): argument
422 self.parser = parser
424 def print_license(self): argument
438 def print_elem(self, elem): argument
453 def get_kernel_version(self): argument
467 def get_last_doc_update(self, delimiter): argument
485 def __init__(self, parser): argument
486 self.elements = parser.helpers
487 …self.elem_number_check(parser.desc_unique_helpers, parser.define_unique_helpers, 'helper', '___BPF…
489 def print_header(self): argument
533 kernelVersion = self.get_kernel_version()
534 lastUpdate = self.get_last_doc_update(helpersDocStart)
536 PrinterRST.print_license(self)
541 def print_footer(self): argument
627 def print_proto(self, helper): argument
653 def print_one(self, helper): argument
654 self.print_proto(helper)
655 self.print_elem(helper)
666 def __init__(self, parser): argument
667 self.elements = parser.commands
668 self.elem_number_check(parser.desc_syscalls, parser.enum_syscalls, 'syscall', 'bpf_cmd')
670 def print_header(self): argument
684 PrinterRST.print_license(self)
687 def print_one(self, command): argument
689 self.print_elem(command)
698 def __init__(self, parser): argument
699 self.elements = parser.helpers
700 …self.elem_number_check(parser.desc_unique_helpers, parser.define_unique_helpers, 'helper', '___BPF…
824 def print_header(self): argument
831 for fwd in self.type_fwds:
836 for helper in self.elements:
850 def print_footer(self): argument
854 def map_type(self, t): argument
855 if t in self.known_types:
857 if t in self.mapped_types:
858 return self.mapped_types[t]
865 def print_one(self, helper): argument
868 if proto['name'] in self.seen_helpers:
870 self.seen_helpers.add(proto['name'])
891 print('%s %s(* const %s)(' % (self.map_type(proto['ret_type']),
897 if proto['name'] in self.overloaded_helpers and i == 0:
900 one_arg = '{}{}'.format(comma, self.map_type(t))
920 def __init__(self, parser): argument
921 self.elements = parser.helpers
922 self.elem_number_check(
929 def print_all(self): argument
930 helper_dicts = [helper.to_dict() for helper in self.elements]
941 def __init__(self, parser): argument
942 self.elements = parser.commands
943 self.elem_number_check(parser.desc_syscalls, parser.enum_syscalls, 'syscall', 'bpf_cmd')
945 def print_all(self): argument
946 syscall_dicts = [syscall.to_dict() for syscall in self.elements]