def reg_base_address_for_domain(options)
if @reg_base_address
if @reg_base_address.is_a?(Hash)
if options[:domain]
if options[:domain].is_a?(Hash)
domains = options[:domain].keys
else
domains = [options[:domain]].flatten
end
bases = domains.map do |d|
@reg_base_address.with_indifferent_access[d]
end.compact
if bases.empty?
@reg_base_address[:default] || 0
else
if bases.size > 1
fail 'Multiple base addresses found, specify the domain you want, e.g. reg.address(domain: :ahb)'
else
bases.first
end
end
else
@reg_base_address[:default] || 0
end
else
@reg_base_address
end
else
0
end
end