OpenCores
URL https://opencores.org/ocsvn/w11/w11/trunk

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.61/] [tools/] [src/] [librlinktpp/] [RtclRlinkConnect.cpp] - Diff between revs 19 and 22

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 19 Rev 22
Line 1... Line 1...
// $Id: RtclRlinkConnect.cpp 495 2013-03-06 17:13:48Z mueller $
// $Id: RtclRlinkConnect.cpp 521 2013-05-20 22:16:45Z mueller $
//
//
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
// Copyright 2011-2013 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
//
//
// This program is free software; you may redistribute and/or modify it under
// This program is free software; you may redistribute and/or modify it under
// the terms of the GNU General Public License as published by the Free
// the terms of the GNU General Public License as published by the Free
Line 25... Line 25...
// 2011-02-11   360   0.1    First draft
// 2011-02-11   360   0.1    First draft
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
 
 
/*!
/*!
  \file
  \file
  \version $Id: RtclRlinkConnect.cpp 495 2013-03-06 17:13:48Z mueller $
  \version $Id: RtclRlinkConnect.cpp 521 2013-05-20 22:16:45Z mueller $
  \brief   Implemenation of class RtclRlinkConnect.
  \brief   Implemenation of class RtclRlinkConnect.
 */
 */
 
 
#include <ctype.h>
#include <ctype.h>
 
 
Line 301... Line 301...
      }
      }
      if(!Rtcl::SetVar(interp, vardata[icmd], pres)) return kERR;
      if(!Rtcl::SetVar(interp, vardata[icmd], pres)) return kERR;
    }
    }
 
 
    if (icmd<varstat.size() && !varstat[icmd].empty()) {
    if (icmd<varstat.size() && !varstat[icmd].empty()) {
      RtclOPtr pres = Tcl_NewIntObj((int)cmd.Status());
      RtclOPtr pres(Tcl_NewIntObj((int)cmd.Status()));
      if (!Rtcl::SetVar(interp, varstat[icmd], pres)) return kERR;
      if (!Rtcl::SetVar(interp, varstat[icmd], pres)) return kERR;
    }
    }
  }
  }
 
 
  if (!varprint.empty()) {
  if (!varprint.empty()) {
    ostringstream sos;
    ostringstream sos;
    const RlinkConnect::LogOpts& logopts = Obj().GetLogOpts();
    const RlinkConnect::LogOpts& logopts = Obj().GetLogOpts();
    clist.Print(sos, Obj().Context(), &Obj().AddrMap(), logopts.baseaddr,
    clist.Print(sos, Obj().Context(), &Obj().AddrMap(), logopts.baseaddr,
                logopts.basedata, logopts.basestat);
                logopts.basedata, logopts.basestat);
    RtclOPtr pobj = Rtcl::NewLinesObj(sos);
    RtclOPtr pobj(Rtcl::NewLinesObj(sos));
    if (!Rtcl::SetVarOrResult(args.Interp(), varprint, pobj)) return kERR;
    if (!Rtcl::SetVarOrResult(args.Interp(), varprint, pobj)) return kERR;
  }
  }
 
 
  if (!vardump.empty()) {
  if (!vardump.empty()) {
    ostringstream sos;
    ostringstream sos;
    clist.Dump(sos, 0);
    clist.Dump(sos, 0);
    RtclOPtr pobj = Rtcl::NewLinesObj(sos);
    RtclOPtr pobj(Rtcl::NewLinesObj(sos));
    if (!Rtcl::SetVarOrResult(args.Interp(), vardump, pobj)) return kERR;
    if (!Rtcl::SetVarOrResult(args.Interp(), vardump, pobj)) return kERR;
  }
  }
 
 
  if (!varlist.empty()) {
  if (!varlist.empty()) {
    RtclOPtr prlist = Tcl_NewListObj(0, NULL);
    RtclOPtr prlist(Tcl_NewListObj(0, NULL));
    for (size_t icmd=0; icmd<clist.Size(); icmd++) {
    for (size_t icmd=0; icmd<clist.Size(); icmd++) {
      RlinkCommand& cmd(clist[icmd]);
      RlinkCommand& cmd(clist[icmd]);
 
 
      RtclOPtr pres = Tcl_NewListObj(0, NULL);
      RtclOPtr pres(Tcl_NewListObj(0, NULL));
      Tcl_ListObjAppendElement(NULL, pres, fCmdnameObj[cmd.Command()]);
      Tcl_ListObjAppendElement(NULL, pres, fCmdnameObj[cmd.Command()]);
      Tcl_ListObjAppendElement(NULL, pres, Tcl_NewIntObj((int)cmd.Request()));
      Tcl_ListObjAppendElement(NULL, pres, Tcl_NewIntObj((int)cmd.Request()));
      Tcl_ListObjAppendElement(NULL, pres, Tcl_NewIntObj((int)cmd.Flags()));
      Tcl_ListObjAppendElement(NULL, pres, Tcl_NewIntObj((int)cmd.Flags()));
      Tcl_ListObjAppendElement(NULL, pres, Tcl_NewIntObj((int)cmd.Status()));
      Tcl_ListObjAppendElement(NULL, pres, Tcl_NewIntObj((int)cmd.Status()));
 
 
Line 443... Line 443...
      } else {
      } else {
        return args.Quit(string("-E: no mapping defined for '") + name + "'");
        return args.Quit(string("-E: no mapping defined for '") + name + "'");
      }
      }
 
 
    } else {                                // amap
    } else {                                // amap
      RtclOPtr plist = Tcl_NewListObj(0, NULL);
      RtclOPtr plist(Tcl_NewListObj(0, NULL));
      const RlinkAddrMap::amap_t amap = addrmap.Amap();
      const RlinkAddrMap::amap_t amap = addrmap.Amap();
      for (RlinkAddrMap::amap_cit_t it=amap.begin(); it!=amap.end(); it++) {
      for (RlinkAddrMap::amap_cit_t it=amap.begin(); it!=amap.end(); it++) {
        Tcl_Obj* tpair[2];
        Tcl_Obj* tpair[2];
        tpair[0] = Tcl_NewIntObj(it->first);
        tpair[0] = Tcl_NewIntObj(it->first);
        tpair[1] = Tcl_NewStringObj((it->second).c_str(),(it->second).length());
        tpair[1] = Tcl_NewStringObj((it->second).c_str(),(it->second).length());

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.