1*1b46b959SChen Xised 's/|/ /g' | awk --bignum ' 2*1b46b959SChen Xi 3*1b46b959SChen Xifunc chnstr(chn) { 4*1b46b959SChen Xi split("A B C D E", channels, " "); 5*1b46b959SChen Xi return channels[chn + 1] 6*1b46b959SChen Xi} 7*1b46b959SChen Xi 8*1b46b959SChen Xifunc opstr(chn, op) { 9*1b46b959SChen Xi 10*1b46b959SChen Xi a_op[1] = "PutFullData" 11*1b46b959SChen Xi a_op[2] = "PutPartialData" 12*1b46b959SChen Xi a_op[3] = "ArithmeticData" 13*1b46b959SChen Xi a_op[4] = "LogicalData" 14*1b46b959SChen Xi a_op[5] = "Get" 15*1b46b959SChen Xi a_op[6] = "Hint" 16*1b46b959SChen Xi a_op[7] = "AcquireBlock" 17*1b46b959SChen Xi a_op[8] = "AcquirePerm" 18*1b46b959SChen Xi 19*1b46b959SChen Xi b_op[1] = "PutFullData" 20*1b46b959SChen Xi b_op[2] = "PutPartialData" 21*1b46b959SChen Xi b_op[3] = "ArithmeticData" 22*1b46b959SChen Xi b_op[4] = "LogicalData" 23*1b46b959SChen Xi b_op[5] = "Get" 24*1b46b959SChen Xi b_op[6] = "Hint" 25*1b46b959SChen Xi b_op[7] = "Probe" 26*1b46b959SChen Xi 27*1b46b959SChen Xi c_op[1] = "AccessAck" 28*1b46b959SChen Xi c_op[2] = "AccessAckData" 29*1b46b959SChen Xi c_op[3] = "HintAck" 30*1b46b959SChen Xi c_op[4] = "Invalid Opcode" 31*1b46b959SChen Xi c_op[5] = "ProbeAck" 32*1b46b959SChen Xi c_op[6] = "ProbeAckData" 33*1b46b959SChen Xi c_op[7] = "Release" 34*1b46b959SChen Xi c_op[8] = "ReleaseData" 35*1b46b959SChen Xi 36*1b46b959SChen Xi d_op[1] = "AccessAck" 37*1b46b959SChen Xi d_op[2] = "AccessAckData" 38*1b46b959SChen Xi d_op[3] = "HintAck" 39*1b46b959SChen Xi d_op[4] = "Invalid Opcode" 40*1b46b959SChen Xi d_op[5] = "Grant" 41*1b46b959SChen Xi d_op[6] = "GrantData" 42*1b46b959SChen Xi d_op[7] = "ReleaseAck" 43*1b46b959SChen Xi 44*1b46b959SChen Xi ret = "Unknown OP" 45*1b46b959SChen Xi switch(chn) { 46*1b46b959SChen Xi case 0: 47*1b46b959SChen Xi ret = a_op[op+1] 48*1b46b959SChen Xi break; 49*1b46b959SChen Xi case 1: 50*1b46b959SChen Xi ret = b_op[op+1] 51*1b46b959SChen Xi break; 52*1b46b959SChen Xi case 2: 53*1b46b959SChen Xi ret = c_op[op+1] 54*1b46b959SChen Xi break; 55*1b46b959SChen Xi case 3: 56*1b46b959SChen Xi ret = d_op[op+1] 57*1b46b959SChen Xi break; 58*1b46b959SChen Xi case 4: 59*1b46b959SChen Xi ret = "GrantAck" 60*1b46b959SChen Xi break; 61*1b46b959SChen Xi } 62*1b46b959SChen Xi return ret 63*1b46b959SChen Xi} 64*1b46b959SChen Xi 65*1b46b959SChen Xifunc paramstr(chn, param) { 66*1b46b959SChen Xi 67*1b46b959SChen Xi split("Grow NtoB_Grow NtoT_Grow BtoT", grow, "_") 68*1b46b959SChen Xi split("Cap toT_Cap toB_Cap toN", cap, "_") 69*1b46b959SChen Xi split("Shrink TtoB_Shrink TtoN_Shrink BtoN_Report TotT_Report BtoB_Report NtoN", report, "_") 70*1b46b959SChen Xi 71*1b46b959SChen Xi ret = "Reserved" 72*1b46b959SChen Xi switch(chn){ 73*1b46b959SChen Xi case 0: 74*1b46b959SChen Xi ret = grow[param+1] 75*1b46b959SChen Xi break; 76*1b46b959SChen Xi case 1: 77*1b46b959SChen Xi ret = cap[param+1] 78*1b46b959SChen Xi break; 79*1b46b959SChen Xi case 2: 80*1b46b959SChen Xi ret = report[param+1] 81*1b46b959SChen Xi break; 82*1b46b959SChen Xi case 3: 83*1b46b959SChen Xi ret = cap[param+1] 84*1b46b959SChen Xi break; 85*1b46b959SChen Xi } 86*1b46b959SChen Xi return ret 87*1b46b959SChen Xi} 88*1b46b959SChen Xi 89*1b46b959SChen Xi{ 90*1b46b959SChen Xi echo = $2; 91*1b46b959SChen Xi user = $3; 92*1b46b959SChen Xi data_1 = $4; 93*1b46b959SChen Xi data_2 = $5; 94*1b46b959SChen Xi data_3 = $6; 95*1b46b959SChen Xi data_4 = $7; 96*1b46b959SChen Xi sink = $9; 97*1b46b959SChen Xi source = $10; 98*1b46b959SChen Xi 99*1b46b959SChen Xi $1 = $14; # timestamp 100*1b46b959SChen Xi $2 = $NF; # name 101*1b46b959SChen Xi $3 = chnstr($13) # channel 102*1b46b959SChen Xi $NF = ""; # remove log id 103*1b46b959SChen Xi $6 = sink; 104*1b46b959SChen Xi $7 = source; 105*1b46b959SChen Xi $5 = paramstr($13, $11) # param 106*1b46b959SChen Xi $4 = opstr($13, $12) # opcode 107*1b46b959SChen Xi 108*1b46b959SChen Xi $8 = sprintf("%lx", $8) # address 109*1b46b959SChen Xi $9 = sprintf("%016lx", data_1) 110*1b46b959SChen Xi $10 = sprintf("%016lx", data_2) 111*1b46b959SChen Xi $11 = sprintf("%016lx", data_3) 112*1b46b959SChen Xi $12 = sprintf("%016lx", data_4) 113*1b46b959SChen Xi 114*1b46b959SChen Xi $13 = sprintf("user: %lx", user); 115*1b46b959SChen Xi $14 = sprintf("echo: %lx", echo); 116*1b46b959SChen Xi} 117*1b46b959SChen Xi 118*1b46b959SChen Xi1 # print every line 119*1b46b959SChen Xi' 120