class Object

Public Instance Methods

access(duh) click to toggle source
# File lib/rggen/duh/extractor/type.rb, line 117
def access(duh)
  if duh.key?('access')
    duh['access']
  elsif duh.layer == :register_block
    'read-write'
  else
    access(duh.parent)
  end
end
find_type(duh) click to toggle source
# File lib/rggen/duh/extractor/type.rb, line 8
def find_type(duh)
  type_map.find { |_, properties| match_properties?(duh, properties) }&.first
end
match_properties?(duh, properties) click to toggle source
# File lib/rggen/duh/extractor/type.rb, line 113
def match_properties?(duh, properties)
  properties.all? { |name, value| __send__(name, duh) == value }
end
modified_write_value(duh) click to toggle source
# File lib/rggen/duh/extractor/type.rb, line 127
def modified_write_value(duh)
  duh.fetch('modifiedWriteValue', 'default')
end
read_action(duh) click to toggle source
# File lib/rggen/duh/extractor/type.rb, line 131
def read_action(duh)
  duh.fetch('readAction', 'default')
end
reserved(duh) click to toggle source
# File lib/rggen/duh/extractor/type.rb, line 135
def reserved(duh)
  duh.fetch('reserved', false)
end
type_map() click to toggle source
# File lib/rggen/duh/extractor/type.rb, line 12
def type_map
  @type_map ||= {
    rw: {
      access: 'read-write', modified_write_value: 'default',
      read_action: 'default', reserved: false
    },
    ro: {
      access: 'read-only', read_action: 'default', reserved: false
    },
    wo: {
      access: 'write-only', modified_write_value: 'default', reserved: false
    },
    wrc: {
      access: 'read-write', modified_write_value: 'default',
      read_action: 'clear', reserved: false
    },
    wrs: {
      access: 'read-write', modified_write_value: 'default',
      read_action: 'set', reserved: false
    },
    rc: {
      access: 'read-only', read_action: 'clear', reserved: false
    },
    w0c: {
      access: 'read-write', modified_write_value: 'zeroToClear',
      read_action: 'default', reserved: false
    },
    w1c: {
      access: 'read-write', modified_write_value: 'oneToClear',
      read_action: 'default', reserved: false
    },
    wc: {
      access: 'read-write', modified_write_value: 'clear',
      read_action: 'default', reserved: false
    },
    woc: {
      access: 'write-only', modified_write_value: 'clear', reserved: false
    },
    rs: {
      access: 'read-only', read_action: 'set', reserved: false
    },
    w0s: {
      access: 'read-write', modified_write_value: 'zeroToSet',
      read_action: 'default', reserved: false
    },
    w1s: {
      access: 'read-write', modified_write_value: 'oneToSet',
      read_action: 'default', reserved: false
    },
    ws: {
      access: 'read-write', modified_write_value: 'set',
      read_action: 'default', reserved: false
    },
    wos: {
      access: 'write-only', modified_write_value: 'set', reserved: false
    },
    w0t: {
      access: 'read-write', modified_write_value: 'zeroToToggle',
      read_action: 'default', reserved: false
    },
    w1t: {
      access: 'read-write', modified_write_value: 'oneToToggle',
      read_action: 'default', reserved: false
    },
    w0crs: {
      access: 'read-write', modified_write_value: 'zeroToClear',
      read_action: 'set', reserved: false
    },
    w1crs: {
      access: 'read-write', modified_write_value: 'oneToClear',
      read_action: 'set', reserved: false
    },
    wcrs: {
      access: 'read-write', modified_write_value: 'clear',
      read_action: 'set', reserved: false
    },
    w0src: {
      access: 'read-write', modified_write_value: 'zeroToSet',
      read_action: 'clear', reserved: false
    },
    w1src: {
      access: 'read-write', modified_write_value: 'oneToSet',
      read_action: 'clear', reserved: false
    },
    wsrc: {
      access: 'read-write', modified_write_value: 'set',
      read_action: 'clear', reserved: false
    },
    w1: {
      access: 'read-writeOnce', modified_write_value: 'default',
      read_action: 'default', reserved: false
    },
    wo1: {
      access: 'writeOnce', modified_write_value: 'default', reserved: false
    },
    reserved: {
      reserved: true
    }
  }.freeze
end