def forkat(forknum, clnum, pending): global program print "forkat",forknum,clnum,pending REGSIZE = program.tregs[1] dat = [] for p in pending: daddr = fhex(p['daddr']) ddata = fhex(p['ddata']) if len(p['ddata']) > 4: # ugly hack dsize = REGSIZE else: dsize = 1 flags = qira_log.IS_VALID | qira_log.IS_WRITE if daddr >= 0x1000: flags |= qira_log.IS_MEM flags |= dsize*8 dat.append((daddr, ddata, clnum-1, flags)) next_run_id = qira_socat.get_next_run_id() if len(dat) > 0: qira_log.write_log(qira_config.TRACE_FILE_BASE+str(next_run_id)+"_mods", dat) if args.server: qira_socat.start_bindserver(program, qira_config.FORK_PORT, forknum, clnum) else: if os.fork() == 0: program.execqira(["-qirachild", "%d %d %d" % (forknum, clnum, next_run_id)])
# this is wrong data = conc(x.data) & 0xFFFFFFFFFFFFFFFF flags = qira_log.IS_VALID if x.type == "mem": flags |= qira_log.IS_MEM if x.action == "write": flags |= qira_log.IS_WRITE le = (address, data, clnum, flags) print le log.append(le) # write the qira log qira_log.write_log(qira_log.LOGDIR + "0", log) #pg.step(until=lambda lpg: len(lpg.active) > 1) """ pg.active pg.step() pg.active pg.step() pg.active pg.active[0].backtrace p._sim_procedures [ hex(x) for x in p._sim_procedures.keys() ] pg.step() pg.active pg.step()
# this is wrong data = conc(x.data) & 0xFFFFFFFFFFFFFFFF flags = qira_log.IS_VALID if x.type == "mem": flags |= qira_log.IS_MEM if x.action == "write": flags |= qira_log.IS_WRITE le = (address, data, clnum, flags) print le log.append(le) # write the qira log qira_log.write_log(qira_log.LOGDIR + "0", log) #pg.step(until=lambda lpg: len(lpg.active) > 1) """ pg.active pg.step() pg.active pg.step() pg.active pg.active[0].backtrace p._sim_procedures [ hex(x) for x in p._sim_procedures.keys() ] pg.step() pg.active pg.step() pg.active