def METHOD_NAME(self):
    '''
    Retrieve a set of memory maps defined by this hex file.
    Memory maps are returned as a list of
    ( va, perms, fname, bytes ) tuples.
    '''
    # Get all the binary parts....
    baseaddr = 0
    memparts = []
    for fname, chunk in self:
        ctype = int( chunk.recordtype, 16 )
        if ctype == IHEX_REC_DATA:
            addr = chunk.getAddress() + baseaddr
            memparts.append( (addr, chunk.getData()) )
            continue
        if ctype == IHEX_REC_EXSEG:
            baseaddr = int( chunk.data, 16 ) << 4
            continue
        if ctype == IHEX_REC_EXLINADDR:
            baseaddr = int( chunk.data, 16 ) << 16
            continue
        if ctype == IHEX_REC_STARTSEG:
            continue
        if ctype == IHEX_REC_EOF:
            break
        raise Exception('Unhandled IHEX chunk: %s' % chunk.recordtype)
    memparts.sort()
    maps = []
    for addr, bytes in memparts:
        # is this the next contiguous chunk?
        if maps and addr == ( maps[-1][0] + len(maps[-1][3]) ):
            maps[-1][3] += bytes
        else:
            maps.append( [ addr, e_const.MM_RWX, '', bytes ] )
    return maps