111077SCurtis.Dunham@arm.com# http://stackoverflow.com/questions/15069127/python-configparser-module-\
211077SCurtis.Dunham@arm.com# rename-a-section
311077SCurtis.Dunham@arm.comdef rename_section(cp, section_from, section_to):
411077SCurtis.Dunham@arm.com    items = cp.items(section_from)
511077SCurtis.Dunham@arm.com    cp.add_section(section_to)
611077SCurtis.Dunham@arm.com    for item in items:
711077SCurtis.Dunham@arm.com        cp.set(section_to, item[0], item[1])
811077SCurtis.Dunham@arm.com    cp.remove_section(section_from)
911077SCurtis.Dunham@arm.com
1011077SCurtis.Dunham@arm.com# Checkpoint version F renames an internal member of Process class.
1111077SCurtis.Dunham@arm.comdef upgrader(cpt):
1211077SCurtis.Dunham@arm.com    import re
1311077SCurtis.Dunham@arm.com    for sec in cpt.sections():
1411077SCurtis.Dunham@arm.com        fdm = 'FdMap'
1511077SCurtis.Dunham@arm.com        fde = 'FDEntry'
1611077SCurtis.Dunham@arm.com        if re.match('.*\.%s.*' % fdm, sec):
1711077SCurtis.Dunham@arm.com            rename = re.sub(fdm, fde, sec)
1811077SCurtis.Dunham@arm.com            split = re.split(fde, rename)
1911077SCurtis.Dunham@arm.com
2011077SCurtis.Dunham@arm.com            # rename the section and add the 'mode' field
2111077SCurtis.Dunham@arm.com            rename_section(cpt, sec, rename)
2211077SCurtis.Dunham@arm.com            cpt.set(rename, 'mode', "0") # no proper value to set :(
2311077SCurtis.Dunham@arm.com
2411077SCurtis.Dunham@arm.com            # add in entries 257 to 1023
2511077SCurtis.Dunham@arm.com            if split[1] == "0":
2611077SCurtis.Dunham@arm.com                for x in range(257, 1024):
2711077SCurtis.Dunham@arm.com                    seq = (split[0], fde, "%s" % x)
2811077SCurtis.Dunham@arm.com                    section = "".join(seq)
2911077SCurtis.Dunham@arm.com                    cpt.add_section(section)
3011077SCurtis.Dunham@arm.com                    cpt.set(section, 'fd', '-1')
3111077SCurtis.Dunham@arm.com
3211077SCurtis.Dunham@arm.comlegacy_version = 15
33