[Panicsel-developers] About panicsel util's output format.
Brought to you by:
arcress
|
From: Guo, M. <mi...@in...> - 2003-02-24 09:00:47
|
Hi, Andy
I found some outputs of your panicsel tools are hard to understand because there are few explanation and indicators in the outputs,
I would like to revise the output format and make it more readable, How do you think about of it?
Here I add the function that can list all the sensors to your sensor.c file, and I would like to add some more function to your util and do more contribution,
How about your opinions?
Thanks
Guo Min
-----------------------------------------------------------------------------------------------------------------
--- sensor_bk.c 2003-02-24 19:30:42.000000000 +0800
+++ sensor.c 2003-02-24 22:20:59.000000000 +0800
@@ -51,6 +51,7 @@
char progname[] = "sensor";
char progver[] = "1.4";
char fdebug = 0;
+int flist = 0;
char tmpstr[20]; /* temp string */
/* sensor_dstatus
@@ -584,6 +585,9 @@
val = decodeValue(sens[0],sdr01);
if (sdr01->sens_base <= NUNITS) j = sdr01->sens_base;
else j = 0;
+ if (flist)
+ printf("Full sensor:%s nums:%02x\n",idstr,sdr01->sens_num);
+ else
printf("SDR Full %02x %02x %02x sensor: %02x %02x %s = %02x %s %.2f %s\n",
sdr01->recid, sdr01->rectype, sdr01->reclen,
sdr01->sens_ownid, sdr01->sens_num, idstr,
@@ -603,6 +607,9 @@
/* if rc != 0, leave sens values zero */
i = bitnum(sens[2]);
if (fdebug) printf("bitnum = %d\n",i);
+ if (flist)
+ printf("Compact sensor:%s nums:%02x\n",idstr,sdr02->sens_num);
+ else
printf("SDR Comp %02x %02x %02x sensor: %02x %02x %s = %02x %02x %02x %02x %s\n",
sdr02->recid, sdr02->rectype, sdr02->reclen,
sdr02->sens_ownid, sdr02->sens_num, idstr,
@@ -610,11 +617,14 @@
break;
case 0x08: /* Entity Association record */
sdr08 = (SDR08REC *)sdr;
+ if (!flist)
+ {
printf("SDR Asso %x %02x %02x %02x %02x %02x: ",
sdr08->recid, sdr08->rectype, sdr08->reclen,
sdr08->contid, sdr08->continst, sdr08->flags);
for (i = 0; i < 8; i++) printf("%02x ",sdr08->edata[i]);
printf("\n");
+ }
break;
case 0x11: /* FRU record */
sdr11 = (SDR11REC *)sdr;
@@ -624,6 +634,9 @@
idstr[ilen] = 0; /* stringify */
if (fdebug) printf("ilen=%d, istr0=%c, sizeof=%d, s0=%x\n",
ilen,idstr[0],sizeof(SDR11REC),sdr[ioff]);
+ if (flist)
+ printf("FRU sensor:%s chan_num:%02x\n",idstr,sdr11->chan_num);
+ else
printf("SDR FRU %02x %02x %02x dev: %02x %02x %02x %02x %s\n",
sdr11->recid, sdr11->rectype, sdr11->reclen,
sdr11->dev_slave_adr, sdr11->chan_num,
@@ -638,6 +651,9 @@
idstr[ilen] = 0; /* stringify */
if (fdebug) printf("ilen=%d, istr0=%c, sizeof=%d, s0=%x\n",
ilen,idstr[0],sizeof(SDR12REC),sdr[ioff]);
+ if (flist)
+ printf("IPMB sensor:%s chan_num:%02x\n",idstr,sdr12->chan_num);
+ else
printf("SDR IPMB %02x %02x %02x dev: %02x %02x %02x %02x %s\n",
sdr12->recid, sdr12->rectype, sdr12->reclen,
sdr12->dev_slave_adr, sdr12->chan_num,
@@ -646,14 +662,18 @@
break;
case 0x14: /* BMC Message Channel Info record */
sdr14 = (SDR14REC *)sdr;
+ if(!flist){
printf("SDR BMsg %x %02x %02x: ",
sdr14->recid, sdr14->rectype, sdr14->reclen );
for (i = 0; i < 8; i++) printf("%02x ",sdr14->mdata[i]);
printf("%s %s %02x\n",decode_itype(sdr14->mint),
decode_itype(sdr14->eint), sdr14->rsvd);
+ }
break;
case 0xc0: /* OEM record (#343 = Intel) */
sdrc0 = (SDRc0REC *)sdr;
+ if(!flist)
+ {
mfgid = sdrc0->manuf_id[0] + (sdrc0->manuf_id[1] << 8)
+ (sdrc0->manuf_id[2] << 16);
printf("SDR OEM %02x %02x %02x manuf=",
@@ -666,13 +686,16 @@
else printf("%c",c);
}
printf("\n");
+ }
break;
default:
/* also saw type = 0x08 & 0x14 on STL2s */
+ if (!flist){
printf("SDR (type=0x%02x): ", sdr[3]);
for (i = 0; i < len; i++) printf("%02x ",sdr[i]);
printf("\n");
}
+ }
return;
}
@@ -684,11 +707,12 @@
uchar sdrdata[MAX_BUFFER_SIZE];
int sz, i;
- while ( (c = getopt( argc, argv,"cswx?")) != EOF )
+ while ( (c = getopt( argc, argv,"cswxl?")) != EOF )
switch(c) {
case 'x': fdebug = 1; break;
+ case 'l': flist = 1; break;
default:
- printf("Usage: %s [-x]\n", progname);
+ printf("Usage: %s [-x -l]\n", progname);
exit(1);
}
-------------------------------------------------------------
Best Regards
Guo Min
Intel China Software Lab
iNet: 8-752-1325
External: 86-21-52574545 Ext. 1325
Home: (86) 21 - 62088661 (Pacific Standard time + 16 hours)
The content of this email message solely contains my own personal views,
and not those of my employer.
|