Ejemplo n.º 1
0
static void PrintSpans (const cc65_spaninfo* S)
/* Output a list of spans */
{
    unsigned I;
    const cc65_spandata* D;

    /* Segments */
    for (I = 0, D = S->data; I < S->count; ++I, ++D) {
        PrintId (D->span_id, 7);
        PrintAddr (D->span_start, 8);
        PrintAddr (D->span_end, 9);
        PrintId (D->segment_id, 7);
        PrintId (D->type_id, 6);
        PrintNumber (D->line_count, 6, 7);
        PrintNumber (D->scope_count, 7, 0);
        NewLine ();
    }
}
Ejemplo n.º 2
0
/*--------------------------------------------------------------------*/
void DumpPacket(char *buffer, int len)
{	struct ip_packet *ip=(void*)buffer;

	printf("-------------------------------------------------\n");
	dump(buffer, len);
	PrintAddr("Destination EtherID=", ip->hw_header.dst_eth, eETH_ADDR);
	PrintAddr(", Source EtherID=", ip->hw_header.src_eth, eETH_ADDR);
	printf("\nIPv%d: header-len=%d, type=%d, packet-size=%d, ID=%d\n",
		ip->version, ip->header_len*4, ip->serve_type,
		ntohs(ip->packet_len), ntohs(ip->ID));
	printf("frag=%c, more=%c, offset=%d, TTL=%d, protocol=%s\n",
		(ip->dont_frag? 'N': 'Y'),
		(ip->more_frags? 'N': 'Y'),
		ip->frag_offset,
		ip->time_to_live, GetProtocol(ip->protocol));
	printf("checksum=%d, ", ntohs(ip->hdr_chksum));
	PrintAddr("source=", ip->IPv4_src, eIP_ADDR);
	PrintAddr(", destination=", ip->IPv4_dst, eIP_ADDR);
	printf("\n");
	fflush(stdout);
}
Ejemplo n.º 3
0
void MainWidget::PrintMacAddr(const QString &arg) const
{
  bool ok=false;
  uint64_t mac;

  mac=arg.toULongLong(&ok,16);
  if(ok) {
    if((mac&0xFFFFFFFF0000ull)==0x01005e000000ull) {    // Stereo
      if((mac&0x00000000FF00ull)==0xFF00) {
	PrintSpecialChannel(mac&0xFF);
      }
      else {
	PrintAddr(mac&0xFFFF,MainWidget::Stereo);
      }
    }
    if((mac&0xFFFFFFFF0000ull)==0x01005e010000ull) {    // Backfeed
      PrintAddr(mac&0xFFFF,MainWidget::Backfeed);
    }
    if((mac&0xFFFFFFFF0000ull)==0x01005e040000ull) {   // Surround
      PrintAddr(mac&0x7FFF,MainWidget::Surround);
    }
  }
}
Ejemplo n.º 4
0
static void PrintSegments (const cc65_segmentinfo* S)
/* Output a list of segments */
{
    unsigned I;
    const cc65_segmentdata* D;

    /* Segments */
    for (I = 0, D = S->data; I < S->count; ++I, ++D) {
        PrintId (D->segment_id, 8);
        Print ("%-16s", D->segment_name);
        PrintAddr (D->segment_start, 9);
        PrintSize (D->segment_size, 7);
        Print ("%-16s", D->output_name? D->output_name : "");
        PrintSize (D->output_offs, 6);
        NewLine ();
    }
}
Ejemplo n.º 5
0
void MainWidget::PrintAddr(const QString &arg) const
{
  //
  // Address ranges taken from "Intro to LiveWire v2.1.1", pp 113-114
  //
  unsigned src;
  bool ok;
  QStringList f0;
  unsigned octets[4];
  uint32_t addr;

  //
  // Are we a stream ID?
  //
  if(arg.length()==8) {
    addr=arg.toUInt(&ok,16);
    if(ok) {
      if((addr&0xffff0000)==0xefc00000) {
	if((addr&0x0000ff00)==0xff00) {
	  PrintSpecialChannel(addr&0xff);
	}
	else {
	  PrintAddr(addr&0xffff,MainWidget::Stereo);
	}
      }
      if((addr&0xffff0000)==0xefc40000) {
	PrintAddr(addr&0xffff,MainWidget::Backfeed);
      }
      if((addr&0xffff0000)==0xefc10000) {
	PrintAddr(addr&0x7fff,MainWidget::Surround);
      }
    }
  }

  //
  // Are we a MAC address?
  //
  if(arg.length()==12) {
    PrintMacAddr(arg);
  }
  f0=arg.split(":");
  if(f0.size()==6) {
    PrintMacAddr(f0.join(""));
  }
  f0=arg.split("-");
  if(f0.size()==6) {
    PrintMacAddr(f0.join(""));
  }

  //
  // Are we a source number?
  //
  src=arg.toUInt(&ok);
  if((ok)&&(src>0)&&(src<32768)) {
    PrintAddr(src);
  }

  //
  // Are we an IP address?
  //
  f0=arg.split(".");
  if(f0.size()==4) {
    for(int i=0;i<4;i++) {
      octets[i]=f0[i].toUInt(&ok);
      if((!ok)||(octets[i]>255)) {
	fprintf(stderr,"lwaddr: invalid argument\n");
	exit(256);
      }
    }
    if(octets[0]==239) {
      if((octets[1]==192)&&(octets[2]<128)) {
	PrintAddr(256*octets[2]+octets[3],MainWidget::Stereo);
      }
      if((octets[1]==193)&&(octets[2]<128)) {
	PrintAddr(256*octets[2]+octets[3],MainWidget::Backfeed);
      }
      if((octets[1]==196)&&(octets[2]>=128)) {
	PrintAddr(256*(octets[2]-128)+octets[3],MainWidget::Surround);
      }
      if((octets[1]==192)&&(octets[2]=255)) {
	PrintSpecialChannel(octets[3]);
      }
    }
  }

  fprintf(stderr,"lwaddr: invalid argument\n");
  exit(256);
}
Ejemplo n.º 6
0
MainWidget::MainWidget(QWidget *parent)
  : QMainWindow(parent)
{
  lw_port=0;
  bool ok=false;

  //
  // Process Arguments
  //
  lw_colorize=true;
  lw_mode=SetMode();
  CmdSwitch *cmd=new CmdSwitch(qApp->argc(),qApp->argv(),"lwmon",LWMON_USAGE);
  if(cmd->keys()==0) {
    fprintf(stderr,"%s\n",LWMON_USAGE);
    exit(256);
  }
  for(unsigned i=0;i<cmd->keys()-1;i++) {
    if(cmd->key(i)=="--color") {
      if((cmd->value(i).toLower()=="off")||
	 (cmd->value(i).toLower()=="no")||
	 (cmd->value(i).toLower()=="false")) {
	lw_colorize=false;
	cmd->setProcessed(i,true);
      }
      if((cmd->value(i).toLower()=="on")||
	 (cmd->value(i).toLower()=="yes")||
	 (cmd->value(i).toLower()=="true")) {
	lw_colorize=true;
	cmd->setProcessed(i,true);
      }
      if(!cmd->processed(i)) {
	fprintf(stderr,"lwmon: invalid argument to --color switch\n");
	exit(256);
      }
    }
    if(cmd->key(i)=="--mode") {
      if(cmd->value(i).toLower()=="lwcp") {
	lw_mode=MainWidget::Lwcp;
	cmd->setProcessed(i,true);
      }
      if(cmd->value(i).toLower()=="lwrp") {
	lw_mode=MainWidget::Lwrp;
	cmd->setProcessed(i,true);
      }
      if(cmd->value(i).toLower()=="lwaddr") {
	lw_mode=MainWidget::Lwaddr;
	cmd->setProcessed(i,true);
      }
      if(!cmd->processed(i)) {
	fprintf(stderr,"lwmon: invalid \"--mode\" argument");
	exit(256);
      }
    }
    if(cmd->key(i)=="--port") {
      lw_port=cmd->value(i).toUInt(&ok);
      if(!ok) {
	fprintf(stderr,"lwmon: invalid port argument\n");
	exit(256);
      }
      cmd->setProcessed(i,true);
    }
    if(!cmd->processed(i)) {
      fprintf(stderr,"lwmon: invalid argument \"%s\"\n",
	      (const char *)cmd->key(i).toUtf8());
      exit(256);
    }
  }

  //
  // Set Mode Defaults
  //
  switch(lw_mode) {
  case MainWidget::Lwcp:
    if(lw_port==0) {
      lw_port=LWMON_LWCP_DEFAULT_PORT;
    }
    setWindowTitle(tr("LWCP Monitor"));
    if(CheckSettingsDirectory()) {
      lw_history_path=lw_settings_dir->path()+"/"+LWMON_LWCP_HISTORY_FILE;
    }
    break;

  case MainWidget::Lwrp:
    if(lw_port==0) {
      lw_port=LWMON_LWRP_DEFAULT_PORT;
    }
    setWindowTitle(tr("LWRP Monitor"));
    if(CheckSettingsDirectory()) {
      lw_history_path=lw_settings_dir->path()+"/"+LWMON_LWRP_HISTORY_FILE;
    }
    break;

  case MainWidget::Lwaddr:
    PrintAddr(cmd->key(cmd->keys()-1));
    break;
  }

  //
  // Process Connection Arguments
  //
  lw_hostname=cmd->key(cmd->keys()-1);

  //
  // UI Elements
  //
  lw_text=new QTextEdit(this);
  lw_text->setReadOnly(true);
  lw_text->setFocusPolicy(Qt::NoFocus);

  lw_edit=new LineEdit(this);
  connect(lw_edit,SIGNAL(returnPressed()),this,SLOT(editReturnPressedData()));
  lw_edit->loadHistory(lw_history_path);

  lw_status_frame_widget=new QLabel(this);
  lw_status_frame_widget->setFrameStyle(QFrame::Box|QFrame::Raised);
  lw_status_widget=new StatusWidget(this);
  lw_status_widget->setStatus(StatusWidget::Connecting);

  lw_button=new QPushButton(tr("&Clear"),this);
  lw_button->setFocusPolicy(Qt::NoFocus);
  connect(lw_button,SIGNAL(clicked()),lw_text,SLOT(clear()));

  //
  // Socket
  //
  lw_tcp_socket=new QTcpSocket(this);
  connect(lw_tcp_socket,SIGNAL(connected()),this,SLOT(tcpConnectedData()));
  connect(lw_tcp_socket,SIGNAL(disconnected()),
	  this,SLOT(tcpDisconnectedData()));
  connect(lw_tcp_socket,SIGNAL(readyRead()),this,SLOT(tcpReadyReadData()));
  connect(lw_tcp_socket,SIGNAL(error(QAbstractSocket::SocketError)),
	  this,SLOT(tcpErrorData(QAbstractSocket::SocketError)));
  lw_tcp_socket->connectToHost(lw_hostname,lw_port);

  setMinimumSize(sizeHint());
}