Interface AddressFactory

    • Method Detail

      • getAddress

        Address getAddress​(java.lang.String addrString)
        Create an address from String. Attempts to use the "default" address space first. Otherwise loops through each addressSpace, returning the first valid address that any addressSpace creates from the string. Returns an Address if the string is valid, otherwise null.
      • getAllAddresses

        Address[] getAllAddresses​(java.lang.String addrString)
        Generates all reasonable addresses that can be interpreted from the given string. Each Address Space is given a change to parse the string and all the valid results are return in the array.
        Parameters:
        addrString - the address string to parse.
        Returns:
        Address[] The list of addresses generated from the string.
      • getAllAddresses

        Address[] getAllAddresses​(java.lang.String addrString,
                                  boolean caseSensitive)
        Generates all reasonable addresses that can be interpreted from the given string. Each Address Space is given a change to parse the string and all the valid results are return in the array.
        Parameters:
        addrString - the address string to parse.
        caseSensitive - determines if addressSpace names must be case sensitive to match.
        Returns:
        Address[] The list of addresses generated from the string.
      • getDefaultAddressSpace

        AddressSpace getDefaultAddressSpace()
        Returns the default AddressSpace
      • getAddressSpaces

        AddressSpace[] getAddressSpaces()
        Get the array of all "physical" AddressSpaces.
      • getAllAddressSpaces

        AddressSpace[] getAllAddressSpaces()
        Returns an array of all address spaces, including analysis spaces.
        Returns:
        an array of all the address spaces.
      • getAddressSpace

        AddressSpace getAddressSpace​(java.lang.String name)
        Returns the space with the given name or null if no space exists with that name.
      • getAddressSpace

        AddressSpace getAddressSpace​(int spaceID)
        Returns the space with the given spaceID or null if none exists
      • getNumAddressSpaces

        int getNumAddressSpaces()
        Returns the number of physical AddressSpaces.
      • isValidAddress

        boolean isValidAddress​(Address addr)
        Tests if the given address is valid for at least one of the Address Spaces in this factory
        Parameters:
        addr - The address to test
        Returns:
        boolean true if the address valid, false otherwise
      • equals

        boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
        See Also:
        Object.equals(Object)
      • getIndex

        long getIndex​(Address addr)
        Returns the index (old encoding) for the given address.
        Parameters:
        addr - the address to encode.
      • getPhysicalSpace

        AddressSpace getPhysicalSpace​(AddressSpace space)
        Gets the physical address space associated with the given address space. If the given space is physical, then it will be returned.
        Parameters:
        space - the addressSpace for which the physical space is requested.
        Returns:
        the physical address space associated with the given address space.
      • getPhysicalSpaces

        AddressSpace[] getPhysicalSpaces()
        Returns an array of all the physical address spaces.
        Returns:
        an array of all the physical address spaces.
      • getAddress

        Address getAddress​(int spaceID,
                           long offset)
        Get an address using the addressSpace with the given id and having the given offset.
        Parameters:
        spaceID - the id of the address space to use to create the new address.
        offset - the offset of the new address to be created.
        Returns:
        the new address.
      • getConstantSpace

        AddressSpace getConstantSpace()
        Returns the "constant" address space.
      • getUniqueSpace

        AddressSpace getUniqueSpace()
        Returns the "unique" address space.
      • getStackSpace

        AddressSpace getStackSpace()
        Returns the "stack" address space.
      • getRegisterSpace

        AddressSpace getRegisterSpace()
        Returns the "register" address space.
      • getConstantAddress

        Address getConstantAddress​(long offset)
        Returns an address in "constant" space with the given offset.
        Parameters:
        offset - the offset in "constant" space for the new address.
        Returns:
        a new address in the "constant" space with the given offset.
      • getAddressSet

        AddressSet getAddressSet​(Address min,
                                 Address max)
        Computes an address set from a start and end address that may span address spaces. Although in general, it is not meaningful to compare addresses from multiple spaces, but since there is an absolute ordering of address spaces it can be useful for iterating over all addresses in a program with multiple address spaces.
        Parameters:
        min - the start address
        max - the end address.
        Returns:
        an addressSet containing ranges that don't span address spaces.
      • getAddressSet

        AddressSet getAddressSet()
        Returns an addressSet containing all possible "real" addresses for this address factory.
      • oldGetAddressFromLong

        Address oldGetAddressFromLong​(long value)
        Returns the address using the old encoding format.
        Parameters:
        value - to decode into an address.
      • hasMultipleMemorySpaces

        boolean hasMultipleMemorySpaces()
        Returns true if there is more than one memory address space