⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tr.net.h

📁 ml-rsim 多处理器模拟器 支持类bsd操作系统
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (c) 2002 The Board of Trustees of the University of Illinois and *                    William Marsh Rice University * Copyright (c) 2002 The University of Utah * Copyright (c) 2002 The University of Notre Dame du Lac * * All rights reserved. * * Based on RSIM 1.0, developed by: *   Professor Sarita Adve's RSIM research group *   University of Illinois at Urbana-Champaign and     William Marsh Rice University *   http://www.cs.uiuc.edu/rsim and http://www.ece.rice.edu/~rsim/dist.html * ML-RSIM/URSIM extensions by: *   The Impulse Research Group, University of Utah *   http://www.cs.utah.edu/impulse *   Lambert Schaelicke, University of Utah and University of Notre Dame du Lac *   http://www.cse.nd.edu/~lambert *   Mike Parker, University of Utah *   http://www.cs.utah.edu/~map * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal with the Software without restriction, including without * limitation the rights to use, copy, modify, merge, publish, distribute, * sublicense, and/or sell copies of the Software, and to permit persons to * whom the Software is furnished to do so, subject to the following * conditions: * * 1. Redistributions of source code must retain the above copyright notice, *    this list of conditions and the following disclaimers.  * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimers in the *    documentation and/or other materials provided with the distribution. * 3. Neither the names of Professor Sarita Adve's RSIM research group, *    the University of Illinois at Urbana-Champaign, William Marsh Rice *    University, nor the names of its contributors may be used to endorse *    or promote products derived from this Software without specific prior *    written permission.  * 4. Neither the names of the ML-RSIM project, the URSIM project, the *    Impulse research group, the University of Utah, the University of *    Notre Dame du Lac, nor the names of its contributors may be used to *    endorse or promote products derived from this software without specific *    prior written permission.  * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS WITH THE SOFTWARE.  *//* * tr.net.h : Network activity tracing */#ifndef __TR_NET_H__#define __TR_NET_H__#ifdef DEBUG_TRACE/* * BUFFER tracing statements */#define TRACE_BUFFER_new  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,"    Creating network buffer ");  \      YS__SendPrbPkt("Buffer",YS__prbpkt); \      sprintf(YS__prbpkt,"(id = %d, size = %d)\n", id, sz); \      YS__SendPrbPkt("Buffer",YS__prbpkt); \   }/* * MUX tracing statements */#define TRACE_MUX_new  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,"    Creating network mux (id = %d, %d inputs)\n",  \              id, fanin);  \      YS__SendPrbPkt("Mux",YS__prbpkt); \   }/* * DEMUX tracing statements */#define TRACE_DEMUX_new  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,"    Creating network demux %d\n", id);  \      YS__SendPrbPkt("Demux",YS__prbpkt); \      }/* * PORT tracing statements  */#define TRACE_IPORT_new  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,"    Creating input port %d\n", id);  \      YS__SendPrbPkt("IPort",YS__prbpkt); \   }#define TRACE_IPORT_send1 \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt, \              "    Attempting to send packet %d through network port %d\n", \              pkt->data.seqno, port->id);  \      YS__SendPrbPkt("IPort",YS__prbpkt); \      sprintf(YS__prbpkt,\              "    - Source module = %d, Destination module = %d\n", \              src,dest); \      YS__SendPrbPkt("IPort",YS__prbpkt); \   }#define TRACE_IPORT_send2 \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,"    - Port full, send fails\n"); \      YS__SendPrbPkt("IPort",YS__prbpkt); \   }#define TRACE_IPORT_send3 \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,"    - Port ready, packet queued in port\n"); \      YS__SendPrbPkt("IPort",YS__prbpkt); \   }#define TRACE_OPORT_new  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,"    Creating output port %d\n", id);  \      YS__SendPrbPkt("Oport",YS__prbpkt); \   }#define TRACE_OPORT_available  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,"    Checking for packet at port %d\n", port->id);  \      YS__SendPrbPkt("Oport",YS__prbpkt); \      if (retval) \         sprintf(YS__prbpkt,"    - Packet waiting\n"); \      else \         sprintf(YS__prbpkt,"    - No packets waiting\n"); \      YS__SendPrbPkt("OPort",YS__prbpkt); \   }#define TRACE_OPORT_receive1  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,"    Attempting to receive a packet from port %d\n", \              port->id);  \      YS__SendPrbPkt("OPort",YS__prbpkt); \   }#define TRACE_OPORT_receive2  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,"    - Packet %d received\n", pkt->data.seqno); \      YS__SendPrbPkt("OPort",YS__prbpkt); \   }#define TRACE_OPORT_receive3  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,"    - No packets available\n"); \      YS__SendPrbPkt("OPort",YS__prbpkt); \   }/* * NETWORK tracing statements */#define TRACE_NETWORK_connectbuf  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      if (dest->type == BUFFERTYPE) \         sprintf(YS__prbpkt,"    Connecting buffer %d to buffer %d\n", \                 source->id, dest->id);  \      if (dest->type == MUXTYPE) \         sprintf(YS__prbpkt,"    Connecting buffer %d to mux %d\n", \                 source->id, dest->id);  \      if (dest->type == DEMUXTYPE) \         sprintf(YS__prbpkt,"    Connecting buffer %d to demux %d\n", \                 source->id, dest->id);  \      if (dest->type == DUPLEXMODTYPE) \         sprintf(YS__prbpkt,"    Connecting buffer %d to duplexmod %d\n", \                 source->id, dest->id);  \      if (dest->type == OPORTTYPE) \         sprintf(YS__prbpkt,"    Connecting buffer %d to output port %d\n", \                 source->id, dest->id);  \      YS__SendPrbPkt("Connection",YS__prbpkt); \   }#define TRACE_NETWORK_connectmux  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      if (dest->type == BUFFERTYPE) \         sprintf(YS__prbpkt,"    Connecting mux %d to buffer %d\n", \                 source->id, dest->id);  \      if (dest->type == MUXTYPE) \         sprintf(YS__prbpkt,"    Connecting mux %d to mux %d\n", \                 source->id, dest->id);  \      if (dest->type == DEMUXTYPE) \         sprintf(YS__prbpkt,"    Connecting mux %d to demux %d\n", \                 source->id, dest->id);  \      if (dest->type == DUPLEXMODTYPE) \         sprintf(YS__prbpkt,"    Connecting mux  %d to duplexmod %d\n", \                 source->id, dest->id);  \      if (dest->type == OPORTTYPE) \         sprintf(YS__prbpkt,"    Connecting mux %d to output port %d\n", \                 source->id, dest->id);  \      YS__SendPrbPkt("Connection",YS__prbpkt); \   }#define TRACE_NETWORK_connectiport  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      if (dest->type == BUFFERTYPE) \         sprintf(YS__prbpkt,"    Connecting input port %d to buffer %d\n", \                 source->id, dest->id);  \      if (dest->type == MUXTYPE) \         sprintf(YS__prbpkt,"    Connecting input port %d to mux %d\n", \                 source->id, dest->id);  \      if (dest->type == DEMUXTYPE) \         sprintf(YS__prbpkt,"    Connecting input port %d to demux %d\n", \                 source->id, dest->id);  \      if (dest->type == DUPLEXMODTYPE) \         sprintf(YS__prbpkt,"    Connecting input port %d to duplexmod %d\n", \                 source->id, dest->id);  \      if (dest->type == OPORTTYPE) \        sprintf(YS__prbpkt,"    Connecting input port %d to output port %d\n",\                 source->id, dest->id);  \      YS__SendPrbPkt("Connection",YS__prbpkt); \   }#define TRACE_NETWORK_connectdemux  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      if (dest->type == BUFFERTYPE) \         sprintf(YS__prbpkt, \                 "    Connecting output %d of demux %d to buffer %d\n", \                 src_index,source->id, dest->id);  \      if (dest->type == MUXTYPE) \         sprintf(YS__prbpkt, \               "    Connecting output %d of demux %d to input %d of mux %d\n",\               src_index, source->id, dest_index, dest->id);  \      if (dest->type == DEMUXTYPE) \         sprintf(YS__prbpkt, \                 "    Connecting output %d of demux %d to demux %d\n", \                 src_index,source->id, dest->id);  \      if (dest->type == DUPLEXMODTYPE) \         sprintf(YS__prbpkt, \                 "    Connecting output %d of demux %d to duplexmod %d\n", \                 src_index,source->id, dest->id);  \      if (dest->type == OPORTTYPE) \         sprintf(YS__prbpkt, \                 "    Connecting output %d of demux %d to output port %d\n",\                 src_index,source->id, dest->id);  \      YS__SendPrbPkt("Connection",YS__prbpkt); \   }/* * PACKET tracing statements */#define TRACE_PACKET_new  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,"    Creating packet %d of size %d\n", seqno, sz); \      YS__SendPrbPkt("Packet",YS__prbpkt); \   }#define TRACE_PACKET_show  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,"    - "); \      YS__SendPrbPkt("Packet",YS__prbpkt); \      YS__PacketStatus(pkt); \   }/* * HEAD EVENT tracing statements */#define TRACE_HEAD_chkwft  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,\              "    Head of packet %d waits in module %d for its tail\n", \              pkt->data.seqno, pkt->module->id);  \      YS__SendPrbPkt(YS__ActEvnt->name,YS__prbpkt); \   }#define TRACE_HEAD_nextmod  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,\              "    Head of packet %d determining its next module\n", \              pkt->data.seqno);  \      YS__SendPrbPkt(YS__ActEvnt->name,YS__prbpkt); \   }#define TRACE_HEAD_nextbuf  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,\              "    - Head's next module is buffer %d\n",buf->id);  \      YS__SendPrbPkt(YS__ActEvnt->name,YS__prbpkt); \   }#define TRACE_HEAD_spaceavail  \   if (TraceLevel >= MAXDBLEVEL-2)  { \      sprintf(YS__prbpkt,\

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -