Lines Matching refs:name
141 #define pan_pack(dst, T, name) \\
142 for (struct PREFIX1(T) name = { PREFIX2(T, header) }, \\
145 ({ PREFIX2(T, pack)((uint32_t *) (dst), &name); \\
148 #define pan_unpack(src, T, name) \\
149 struct PREFIX1(T) name; \\
150 PREFIX2(T, unpack)((uint8_t *)(src), &name)
164 #define pan_section_pack(dst, A, S, name) \\
165 for (PREFIX4(A, SECTION, S, TYPE) name = { PREFIX4(A, SECTION, S, header) }, \\
168 ({ PREFIX4(A, SECTION, S, pack) (pan_section_ptr(dst, A, S), &name); \\
171 #define pan_section_unpack(src, A, S, name) \\
172 PREFIX4(A, SECTION, S, TYPE) name; \\
173 PREFIX4(A, SECTION, S, unpack)(pan_section_ptr(src, A, S), &name)
222 def to_alphanum(name):
246 name = name.replace(i, j)
248 return name
250 def safe_name(name):
251 name = to_alphanum(name)
252 if not name[0].isalpha():
253 name = '_' + name
255 return name
257 def prefixed_upper_name(prefix, name):
259 name = prefix + "_" + name
260 return safe_name(name).upper()
262 def enum_name(name):
263 return "{}_{}".format(global_prefix, safe_name(name)).lower()
297 def __init__(self, parser, name, attrs):
300 self.name = name
306 def __init__(self, name):
307 self.name = name
325 assert("name" in attrs)
326 section = self.Section(safe_name(attrs["name"]).lower())
327 section.human_name = attrs["name"]
337 if "name" in attrs:
338 self.name = safe_name(attrs["name"]).lower()
339 self.human_name = attrs["name"]
351 print("#error Field {} has bool type but more than one bit of size".format(self.name));
392 print(" %-36s %s%s;" % (type, self.name, dim))
395 name = prefixed_upper_name(self.prefix, value.name)
396 print("#define %-40s %d" % (name, value.value))
452 field_path = '{}{}'.format(path, field.name)
466 field_path = '{}{}'.format(path, field.name)
499 print(" assert((values->{} & {}) == 0);".format(field.name, mask))
501 print(" assert(values->{} >= {});".format(field.name, field.modifier[1]))
503 print(" assert(util_is_power_of_two_nonzero(values->{}));".format(field.name))
520 name = field.name
625 s = "/* unhandled field %s, type %s */\n" % (field.name, field.type)
647 name, val = field.human_name, 'values->{}'.format(field.name)
652 print(" {}_print(fp, &values->{}, indent + 2);".format(pack_name, field.name))
654 # TODO resolve to name
655 print(' fprintf(fp, "%*s{}: 0x%" PRIx64 "\\n", indent, "", {});'.format(name, val))
657 print(' fprintf(fp, "%*s{}: %s\\n", indent, "", {}_as_str({}));'.format(name, enum_name(field.type), val))
659 print(' fprintf(fp, "%*s{}: %d\\n", indent, "", {});'.format(name, val))
661 print(' fprintf(fp, "%*s{}: %s\\n", indent, "", {} ? "true" : "false");'.format(name, val))
663 print(' fprintf(fp, "%*s{}: %f\\n", indent, "", {});'.format(name, val))
665 print(' fprintf(fp, "%*s{}: 0x%" PRIx64 "\\n", indent, "", {});'.format(name, val))
667 print(' fprintf(fp, "%*s{}: 0x%x\\n", indent, "", {});'.format(name, val))
669 print(' fprintf(fp, "%*s{}: 0x%X (%f)\\n", indent, "", {}, uif({}));'.format(name, val, val))
673 print(' fprintf(fp, "%*s{}: %u\\n", indent, "", {});'.format(name, val))
677 self.name = attrs["name"]
693 def gen_prefix(self, name):
694 return '{}_{}'.format(global_prefix.upper(), name)
696 def start_element(self, name, attrs):
697 if name == "panxml":
705 elif name == "struct":
706 name = attrs["name"]
708 object_name = self.gen_prefix(safe_name(name.upper()))
711 self.group = Group(self, None, 0, 1, name)
715 self.structs[attrs["name"]] = self.group
716 elif name == "field":
719 elif name == "enum":
721 self.enum = safe_name(attrs["name"])
722 self.enums.add(attrs["name"])
727 elif name == "value":
729 elif name == "aggregate":
730 aggregate_name = self.gen_prefix(safe_name(attrs["name"].upper()))
732 self.aggregates[attrs['name']] = self.aggregate
733 elif name == "section":
737 def end_element(self, name):
738 if name == "struct":
742 elif name == "field":
744 elif name == "enum":
747 elif name == "aggregate":
750 elif name == "panxml":
755 def emit_header(self, name):
761 default_fields.append(" .{} = {}".format(field.name, field.default))
763 default_fields.append(" .{} = {{ {}_header }}".format(field.name, self.gen_prefix(safe_name(field.type.upper()))))
765 print('#define %-40s\\' % (name + '_header'))
772 def emit_template_struct(self, name, group):
773 print("struct %s {" % name)
779 print("struct %s_packed {" % aggregate.name.lower())
782 print('#define {}_LENGTH {}'.format(aggregate.name.upper(), aggregate.size))
784 print('#define {}_ALIGN {}'.format(aggregate.name.upper(), aggregate.align))
786 print('#define {}_SECTION_{}_TYPE struct {}'.format(aggregate.name.upper(), section.name.upper(), section.type_name))
787 print('#define {}_SECTION_{}_header {}_header'.format(aggregate.name.upper(), section.name.upper(), section.type_name))
788 print('#define {}_SECTION_{}_pack {}_pack'.format(aggregate.name.upper(), section.name.upper(), section.type_name))
789 print('#define {}_SECTION_{}_unpack {}_unpack'.format(aggregate.name.upper(), section.name.upper(), section.type_name))
790 print('#define {}_SECTION_{}_print {}_print'.format(aggregate.name.upper(), section.name.upper(), section.type_name))
791 print('#define {}_SECTION_{}_OFFSET {}'.format(aggregate.name.upper(), section.name.upper(), section.offset))
794 def emit_pack_function(self, name, group):
796 (name, ' ' * (len(name) + 6), name))
805 print('#define {} {}'.format (name + "_LENGTH", self.group.length))
807 print('#define {} {}'.format (name + "_ALIGN", self.group.align))
808 print('struct {}_packed {{ uint32_t opaque[{}]; }};'.format(name.lower(), self.group.length // 4))
810 def emit_unpack_function(self, name, group):
813 (name.upper(), ' ' * (len(name) + 8), name))
819 def emit_print_function(self, name, group):
821 print("{}_print(FILE *fp, const struct {} * values, unsigned indent)\n{{".format(name.upper(), name))
828 name = self.struct
831 self.emit_header(name)
837 def enum_prefix(self, name):
846 name = '{}_{}'.format(prefix, value.name)
847 name = safe_name(name).upper()
848 print(' % -36s = %6d,' % (name, value.value))
855 name = '{}_{}'.format(prefix, value.name)
856 name = safe_name(name).upper()
857 print(' case {}: return "{}";'.format(name, value.name))