コード例 #1
0
def usereid_blocks(blocks, starts, start_block):
    print()
    print('USEREID BLOCKS')

    found_blocks = []

    map = cachemgr['m_UEIdObjectCache']['m_map']

    for node in std_map_nodes(map):
        fb = tcstats.bisect_block(int(str(node.address), 16), starts,
                                  start_block)
        found_blocks.append(fb)

        addr = int(
            str(node['first']['strExternId']['_M_dataplus']['_M_p'].cast(
                vopo)), 16)
        fb = tcstats.bisect_block(addr, starts, start_block)
        found_blocks.append(fb)

        addr = int(
            str(node['second']['strSignature']['_M_dataplus']['_M_p'].cast(
                vopo)), 16)
        fb = tcstats.bisect_block(addr, starts, start_block)
        found_blocks.append(fb)

    return found_blocks
コード例 #2
0
def store_blocks(blocks, starts, start_block):
    found_blocks = []

    map = cachemgr['m_StoresCache']['m_map']

    buckets_ = unordered_map_buckets_(map)
    fb = tcstats.bisect_block(int(str(buckets_), 16), starts, start_block)
    found_blocks.append(fb)

    for node, value in unordered_map_nodevals(map):
        fb = tcstats.bisect_block(int(str(node), 16), starts, start_block)
        found_blocks.append(fb)

    return found_blocks
コード例 #3
0
def _quota_blocks(map, blocks, starts, start_block):
    found_blocks = []

    buckets_ = unordered_map_buckets_(map)
    if int(str(buckets_.cast(vopo)), 16) == 0:
        return found_blocks

    fb = tcstats.bisect_block(int(str(buckets_), 16), starts, start_block)
    found_blocks.append(fb)

    for node, value in unordered_map_nodevals(map):
        fb = tcstats.bisect_block(int(str(node), 16), starts, start_block)
        found_blocks.append(fb)

    return found_blocks
コード例 #4
0
def obj_blocks(blocks, starts, start_block):
    print()
    print('OBJECTS CACHE')

    map = cachemgr['m_ObjectsCache']['m_map']

    found_blocks = []

    buckets_ = unordered_map_buckets_(map)
    fb = tcstats.bisect_block(int(str(buckets_), 16), starts, start_block)
    found_blocks.append(fb)

    for node, value in unordered_map_nodevals(map):
        fb = tcstats.bisect_block(int(str(node), 16), starts, start_block)
        found_blocks.append(fb)

    return found_blocks
コード例 #5
0
def index2_blocks(blocks, starts, start_block):
    print()
    print('INDEX2 CACHE')

    found_blocks = []

    map = cachemgr['m_ObjectToPropCache']['m_map']

    for node in std_map_nodes(map):
        fb = tcstats.bisect_block(int(str(node.address), 16), starts,
                                  start_block)
        found_blocks.append(fb)

        addr = int(str(node['second']['lpData'].cast(vopo)), 16)
        fb = tcstats.bisect_block(addr, starts, start_block)
        found_blocks.append(fb)

    return found_blocks
コード例 #6
0
def cell_blocks(blocks, starts, start_block):
    print()
    print('CELL CACHE')

    map = cachemgr['m_CellCache']['m_map']

    found_blocks = []

    buckets_ = unordered_map_buckets_(map)
    fb = tcstats.bisect_block(int(str(buckets_), 16), starts, start_block)
    found_blocks.append(fb)

    for node, value in unordered_map_nodevals(map):
        fb = tcstats.bisect_block(int(str(node), 16), starts, start_block)
        found_blocks.append(fb)
        found_blocks.extend(
            _cell_stdmap_blocks(value['second']['mapPropVals'], starts,
                                start_block))

    return found_blocks
コード例 #7
0
def index1_blocks(blocks, starts, start_block):
    print()
    print('INDEX1 CACHE')

    map = cachemgr['m_PropToObjectCache']['m_map']

    found_blocks = []

    buckets_ = unordered_map_buckets_(map)
    fb = tcstats.bisect_block(int(str(buckets_), 16), starts, start_block)
    found_blocks.append(fb)

    for node, value in unordered_map_nodevals(map):
        fb = tcstats.bisect_block(int(str(node), 16), starts, start_block)
        found_blocks.append(fb)

        addr = value['first']['lpData'].cast(vopo)
        fb = tcstats.bisect_block(int(str(addr), 16), starts, start_block)
        found_blocks.append(fb)

    return found_blocks
コード例 #8
0
def userid_blocks(blocks, starts, start_block):
    print()
    print('USEROBJECT CACHE')

    map = cachemgr['m_UserObjectCache']['m_map']

    found_blocks = []

    buckets_ = unordered_map_buckets_(map)
    fb = tcstats.bisect_block(int(str(buckets_), 16), starts, start_block)
    found_blocks.append(fb)

    for node, value in unordered_map_nodevals(map):
        fb = tcstats.bisect_block(int(str(node), 16), starts, start_block)
        found_blocks.append(fb)

        for field in ('strExternId', 'strSignature'):
            addr = value['second'][field]['_M_dataplus']['_M_p'].cast(vopo)
            fb = tcstats.bisect_block(int(str(addr), 16), starts, start_block)
            found_blocks.append(fb)

    return found_blocks
コード例 #9
0
def _cell_stdmap_blocks(map, starts, start_block):
    global COUNT
    found_blocks = []

    for node in std_map_nodes(map):
        addr = int(str(node.address), 16)
        fb = tcstats.bisect_block(addr, starts, start_block)
        found_blocks.append(fb)

        COUNT += 1
        union = int(node['second']['__union'])
        if union in (1, 2, 3, 4, 5):
            pass
        elif union in (6, 7, 8):  # lpszA, hilo, bin
            addr = int(str(node['second']['Value']['bin']), 16)
            fb = tcstats.bisect_block(addr, starts, start_block)
            found_blocks.append(fb)
        else:
            print('FOUT', union)
            fout

    return found_blocks