Lines Matching refs:name
141 def merge_scope(name):
143 Wrap a merge handling function in a "scope" whose name will be added when
149 raise MergeError('{name}: {e}'.format(**locals()))
160 the merge strategy is a callable which will receive the name of
246 if other.name != regmap.name:
273 other.name, regmap.name))
300 field.name, field.enum_ref))
306 regmap.name, regmap.type_ref))
322 ':{0}:{1}'.format(entry.name, entry.value)
326 def add_enum(self, name, enum):
327 if name in self.__enums:
328 raise RegisterDatabaseError('Duplicate enum ' + name)
329 self.__enums[name] = enum
358 Given a list of enum names, merge them all into one with a new name and
365 [(name, self.__enums[name]) for name in names],
369 for name in names:
370 del self.__enums[name]
380 def add_register_type(self, name, regtype):
382 raise RegisterDatabaseError('Duplicate register type ' + name)
383 self.__register_types[name] = regtype
386 def register_type(self, name):
388 return self.__register_types[name]
408 with merge_scope('Register types {0}'.format(', '.join(name for name, _ in regtypes))):
419 new name and update all references.
425 [(name, self.__register_types[name]) for name in names],
429 for name in names:
430 del self.__register_types[name]
457 def enum(self, name):
459 Return the enum of the given name, if any.
462 return self.__enums.get(name, None)
466 Yields all (name, enum) pairs.
469 for name, enum in self.__enums.items():
470 yield (name, enum)
483 Yields all (name, register_type) pairs.
486 for name, regtype in self.__register_types.items():
487 yield (name, regtype)
489 def register_mappings_by_name(self, name):
491 Return a list of register mappings with the given name.
499 if self.__register_mappings[middle].name < name:
501 elif name < self.__register_mappings[middle].name:
509 # We now have begin <= mid < end with begin.name <= name, mid.name == name, name < end.name
514 if self.__register_mappings[mid].name < name:
522 if self.__register_mappings[mid].name == name:
547 given name. Recursively merges register types and enums when appropriate.
564 if regmap.name != other.name:
570 'Attempting to merge chips with incompatible addresses of {0}'.format(regmap.name))
587 fields_merge[field.name].add(field.enum_ref)
661 if regmap_accum and regmap.name != regmap_accum.name:
824 for name in reg['names']:
826 name=name,
841 for name, enum in regdb.enums():
842 buckets[RegisterDatabase.enum_key(enum)].append(name)
850 Find register types with the exact same fields (identified by name and
859 for name, regtype in regdb.register_types():
862 field.name, field.bits[0], field.bits[1],
866 buckets[key].append((name, regtype.fields))
875 for name, fields in bucket