Lines Matching refs:field

282     def overlaps(self, field):
283 return self != field and max(self.start, field.start) <= min(self.end, field.end)
298 calculated = max(field.end // 8 for field in self.fields) + 1 if len(self.fields) > 0 else 0
316 for field in self.fields:
317 if field.exact is not None:
320 field.emit_template_struct(dim)
328 def __init__(self, field, path, start, end):
329 self.field = field
335 for field in fields:
336 field_path = '{}{}'.format(path, field.name)
337 field_offset = offset + field.start
339 if field.type in self.parser.structs:
340 sub_struct = self.parser.structs[field.type]
345 end = offset + field.end
346 all_fields.append(self.FieldRef(field, field_path, start, end))
349 for field in fields:
350 field_path = '{}{}'.format(path, field.name)
351 start = offset + field.start
353 if field.type in self.parser.structs:
354 sub_fields = self.parser.structs[field.type].fields
358 end = offset + field.end
359 contributor = self.FieldRef(field, field_path, start, end)
374 for field in self.fields:
375 if field.modifier is None:
378 assert(field.exact is None)
380 if field.modifier[0] == "shr":
381 shift = field.modifier[1]
383 print(" assert((values->{} & {}) == 0);".format(field.name, mask))
384 elif field.modifier[0] == "minus":
385 print(" assert(values->{} >= {});".format(field.name, field.modifier[1]))
386 elif field.modifier[0] == "log2":
387 print(" assert(util_is_power_of_two_nonzero(values->{}));".format(field.name))
403 field = contributor.field
404 name = field.name
411 value = str(field.exact) if field.exact is not None else "values->{}".format(contributor.path)
412 if field.modifier is not None:
413 if field.modifier[0] == "shr":
414 value = "{} >> {}".format(value, field.modifier[1])
415 elif field.modifier[0] == "minus":
416 value = "{} - {}".format(value, field.modifier[1])
417 elif field.modifier[0] == "align":
418 value = "ALIGN_POT({}, {})".format(value, field.modifier[1])
419 elif field.modifier[0] == "log2":
422 if field.type in ["uint", "hex", "Pixel Format", "address"]:
425 elif field.type in self.parser.enums:
428 elif field.type == "int":
431 elif field.type == "bool":
434 elif field.type == "float":
438 s = "#error unhandled field {}, type {}".format(contributor.path, field.type)
453 # Given a field (start, end) contained in word `index`, generate the 32-bit
479 TMPL = ' if (((const uint32_t *) cl)[{}] & {}) fprintf(fp, "XXX: Unknown field of {} unpacked at word {}: got %X, bad mask %X\\n", ((const uint32_t *) cl)[{}], ((const uint32_t *) cl)[{}] & {});'
485 field = fieldref.field
493 if field.type in set(["uint", "uint/float", "address", "Pixel Format", "hex"]) | self.parser.enums:
495 elif field.type == "int":
497 elif field.type == "bool":
499 elif field.type == "float":
502 s = "/* unhandled field %s, type %s */\n" % (field.name, field.type)
506 if field.modifier:
507 if field.modifier[0] == "minus":
508 suffix = " + {}".format(field.modifier[1])
509 elif field.modifier[0] == "shr":
510 suffix = " << {}".format(field.modifier[1])
511 if field.modifier[0] == "log2":
517 if field.modifier and field.modifier[0] == "align":
518 mask = hex(field.modifier[1] - 1)
522 for field in self.fields:
524 name, val = field.human_name, 'values->{}'.format(field.name)
526 if field.type in self.parser.structs:
527 pack_name = self.parser.gen_prefix(safe_name(field.type)).upper()
528 print(' fprintf(fp, "%*s{}:\\n", indent, "");'.format(field.human_name))
529 print(" {}_print(fp, &values->{}, indent + 2);".format(pack_name, field.name))
530 elif field.type == "address":
533 elif field.type in self.parser.enums:
534 print(' if ({}_as_str({}))'.format(enum_name(field.type), val))
535 print(' fprintf(fp, "%*s{}: %s\\n", indent, "", {}_as_str({}));'.format(name, enum_name(field.type), val))
538 elif field.type == "int":
540 elif field.type == "bool":
542 elif field.type == "float":
544 elif field.type in ["uint", "hex"] and (field.end - field.start) >= 32:
546 elif field.type == "hex":
548 elif field.type in "Pixel Format":
550 elif field.type == "uint/float":
588 elif name == "field":
607 elif name == "field":
617 for field in self.group.fields:
618 if not type(field) is Field:
620 if field.default is not None:
621 default_fields.append(" .{} = {}".format(field.name, field.default))
622 elif field.type in self.structs:
623 default_fields.append(" .{} = {{ {}_header }}".format(field.name, self.gen_prefix(safe_name(field.type.upper()))))