MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PackedSignal.cpp
1 /*
2  Copyright (C) 2003, 2005-2007 MySQL AB
3  All rights reserved. Use is subject to license terms.
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; version 2 of the License.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18 
19 #include <signaldata/PackedSignal.hpp>
20 #include <signaldata/LqhKey.hpp>
21 #include <debugger/DebuggerNames.hpp>
22 
23 bool
24 printPACKED_SIGNAL(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo){
25  fprintf(output, "Signal data: ");
26  Uint32 i = 0;
27  while (i < len)
28  fprintf(output, "H\'%.8x ", theData[i++]);
29  fprintf(output,"\n");
30  fprintf(output, "--------- Begin Packed Signals --------\n");
31  // Print each signal separately
32  for (i = 0; i < len;) {
33  switch (PackedSignal::getSignalType(theData[i])) {
34  case ZCOMMIT: {
35  Uint32 signalLength = 5;
36  fprintf(output, "--------------- Signal ----------------\n");
37  fprintf(output, "r.bn: %u \"%s\", length: %u \"COMMIT\"\n",
38  receiverBlockNo, getBlockName(receiverBlockNo,""), signalLength);
39  fprintf(output, "Signal data: ");
40  for(Uint32 j = 0; j < signalLength; j++)
41  fprintf(output, "H\'%.8x ", theData[i++]);
42  fprintf(output,"\n");
43  break;
44  }
45  case ZCOMPLETE: {
46  Uint32 signalLength = 3;
47  fprintf(output, "--------------- Signal ----------------\n");
48  fprintf(output, "r.bn: %u \"%s\", length: %u \"COMPLETE\"\n",
49  receiverBlockNo, getBlockName(receiverBlockNo,""), signalLength);
50  fprintf(output, "Signal data: ");
51  for(Uint32 j = 0; j < signalLength; j++)
52  fprintf(output, "H\'%.8x ", theData[i++]);
53  fprintf(output,"\n");
54  break;
55  }
56  case ZCOMMITTED: {
57  Uint32 signalLength = 3;
58  fprintf(output, "--------------- Signal ----------------\n");
59  fprintf(output, "r.bn: %u \"%s\", length: %u \"COMMITTED\"\n",
60  receiverBlockNo, getBlockName(receiverBlockNo,""), signalLength);
61  fprintf(output, "Signal data: ");
62  for(Uint32 j = 0; j < signalLength; j++)
63  fprintf(output, "H\'%.8x ", theData[i++]);
64  fprintf(output,"\n");
65  break;
66  }
67  case ZCOMPLETED: {
68  Uint32 signalLength = 3;
69  fprintf(output, "--------------- Signal ----------------\n");
70  fprintf(output, "r.bn: %u \"%s\", length: %u \"COMPLETED\"\n",
71  receiverBlockNo, getBlockName(receiverBlockNo,""), signalLength);
72  fprintf(output, "Signal data: ");
73  for(Uint32 j = 0; j < signalLength; j++)
74  fprintf(output, "H\'%.8x ", theData[i++]);
75  fprintf(output,"\n");
76  break;
77  }
78  case ZLQHKEYCONF: {
79  Uint32 signalLength = LqhKeyConf::SignalLength;
80 
81  fprintf(output, "--------------- Signal ----------------\n");
82  fprintf(output, "r.bn: %u \"%s\", length: %u \"LQHKEYCONF\"\n",
83  receiverBlockNo, getBlockName(receiverBlockNo,""), signalLength);
84  printLQHKEYCONF(output, theData + i, signalLength, receiverBlockNo);
85  i += signalLength;
86  break;
87  }
88  case ZREMOVE_MARKER: {
89  Uint32 signalLength = 2;
90  fprintf(output, "--------------- Signal ----------------\n");
91  fprintf(output, "r.bn: %u \"%s\", length: %u \"REMOVE_MARKER\"\n",
92  receiverBlockNo, getBlockName(receiverBlockNo,""), signalLength);
93  fprintf(output, "Signal data: ");
94  i++; // Skip first word!
95  for(Uint32 j = 0; j < signalLength; j++)
96  fprintf(output, "H\'%.8x ", theData[i++]);
97  fprintf(output,"\n");
98  break;
99  }
100  case ZFIRE_TRIG_REQ: {
101  Uint32 signalLength = 3;
102 
103  fprintf(output, "--------------- Signal ----------------\n");
104  fprintf(output, "r.bn: %u \"%s\", length: %u \"FIRE_TRIG_REQ\"\n",
105  receiverBlockNo, getBlockName(receiverBlockNo,""), signalLength);
106  i += signalLength;
107  break;
108  }
109  case ZFIRE_TRIG_CONF: {
110  Uint32 signalLength = 4;
111 
112  fprintf(output, "--------------- Signal ----------------\n");
113  fprintf(output, "r.bn: %u \"%s\", length: %u \"FIRE_TRIG_CONF\"\n",
114  receiverBlockNo, getBlockName(receiverBlockNo,""), signalLength);
115  i += signalLength;
116  break;
117  }
118  default:
119  fprintf(output, "Unknown signal type\n");
120  i = len; // terminate printing
121  break;
122  }
123  }//for
124  fprintf(output, "--------- End Packed Signals ----------\n");
125  return true;
126 }