Lines Matching refs:field

398     def overlaps(self, field):
399 return self != field and max(self.start, field.start) <= min(self.end, field.end)
414 calculated = max(field.end // 8 for field in self.fields) + 1 if len(self.fields) > 0 else 0
432 for field in self.fields:
433 if field.exact is not None:
436 field.emit_template_struct(dim)
444 def __init__(self, field, path, start, end):
445 self.field = field
451 for field in fields:
452 field_path = '{}{}'.format(path, field.name)
453 field_offset = offset + field.start
455 if field.type in self.parser.structs:
456 sub_struct = self.parser.structs[field.type]
461 end = offset + field.end
462 all_fields.append(self.FieldRef(field, field_path, start, end))
465 for field in fields:
466 field_path = '{}{}'.format(path, field.name)
467 start = offset + field.start
469 if field.type in self.parser.structs:
470 sub_fields = self.parser.structs[field.type].fields
474 end = offset + field.end
475 contributor = self.FieldRef(field, field_path, start, end)
490 for field in self.fields:
491 if field.modifier is None:
494 assert(field.exact is None)
496 if field.modifier[0] == "shr":
497 shift = field.modifier[1]
499 print(" assert((values->{} & {}) == 0);".format(field.name, mask))
500 elif field.modifier[0] == "minus":
501 print(" assert(values->{} >= {});".format(field.name, field.modifier[1]))
502 elif field.modifier[0] == "log2":
503 print(" assert(util_is_power_of_two_nonzero(values->{}));".format(field.name))
519 field = contributor.field
520 name = field.name
527 value = str(field.exact) if field.exact is not None else "values->{}".format(contributor.path)
528 if field.modifier is not None:
529 if field.modifier[0] == "shr":
530 value = "{} >> {}".format(value, field.modifier[1])
531 elif field.modifier[0] == "minus":
532 value = "{} - {}".format(value, field.modifier[1])
533 elif field.modifier[0] == "align":
534 value = "ALIGN_POT({}, {})".format(value, field.modifier[1])
535 elif field.modifier[0] == "log2":
538 if field.type in ["uint", "hex", "uint/float", "address", "Pixel Format"]:
541 elif field.type == "padded":
544 elif field.type in self.parser.enums:
547 elif field.type == "int":
550 elif field.type == "bool":
553 elif field.type == "float":
557 s = "#error unhandled field {}, type {}".format(contributor.path, field.type)
572 # Given a field (start, end) contained in word `index`, generate the 32-bit
598 TMPL = ' if (((const uint32_t *) cl)[{}] & {}) fprintf(stderr, "XXX: Invalid field of {} unpacked at word {}\\n");'
604 field = fieldref.field
612 if field.type in set(["uint", "hex", "uint/float", "address", "Pixel Format"]):
614 elif field.type in self.parser.enums:
615 convert = "(enum %s)__gen_unpack_uint" % enum_name(field.type)
616 elif field.type == "int":
618 elif field.type == "padded":
620 elif field.type == "bool":
622 elif field.type == "float":
625 s = "/* unhandled field %s, type %s */\n" % (field.name, field.type)
629 if field.modifier:
630 if field.modifier[0] == "minus":
631 suffix = " + {}".format(field.modifier[1])
632 elif field.modifier[0] == "shr":
633 suffix = " << {}".format(field.modifier[1])
634 if field.modifier[0] == "log2":
640 if field.modifier and field.modifier[0] == "align":
641 mask = hex(field.modifier[1] - 1)
645 for field in self.fields:
647 name, val = field.human_name, 'values->{}'.format(field.name)
649 if field.type in self.parser.structs:
650 pack_name = self.parser.gen_prefix(safe_name(field.type)).upper()
651 print(' fprintf(fp, "%*s{}:\\n", indent, "");'.format(field.human_name))
652 print(" {}_print(fp, &values->{}, indent + 2);".format(pack_name, field.name))
653 elif field.type == "address":
656 elif field.type in self.parser.enums:
657 print(' fprintf(fp, "%*s{}: %s\\n", indent, "", {}_as_str({}));'.format(name, enum_name(field.type), val))
658 elif field.type == "int":
660 elif field.type == "bool":
662 elif field.type == "float":
664 elif field.type in ["uint", "hex"] and (field.end - field.start) >= 32:
666 elif field.type == "hex":
668 elif field.type == "uint/float":
670 elif field.type == "Pixel Format":
716 elif name == "field":
742 elif name == "field":
757 for field in self.group.fields:
758 if not type(field) is Field:
760 if field.default is not None:
761 default_fields.append(" .{} = {}".format(field.name, field.default))
762 elif field.type in self.structs:
763 default_fields.append(" .{} = {{ {}_header }}".format(field.name, self.gen_prefix(safe_name(field.type.upper()))))