Exemplo n.º 1
0
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)])
Exemplo n.º 2
0
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)])
Exemplo n.º 3
0
  # 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()
Exemplo n.º 4
0
    # 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