Hi all,
the following avoids printing bad information on SEL usage based on the fact
that the Get SEL Info Command bytes 5 and 6 returns: "Free Space in bytes, LS
Byte first. FFFFh indicates 65535 or more bytes of free space are available."
Therefore is someone implements a SEL larger than 4095 entries, the percent
used can be displayed at > 100% ... which is wrong.
Whenever 'total space' if >= 65535, the percentage can't be safely determined.
I took the liberty to commit that patch. If anyone disagrees, I'll be glad to
ear your point.
Thank you.
cvs diff -u ipmi_sel.c
[EMAIL PROTECTED]'s password:
Index: ipmi_sel.c
===================================================================
RCS file: /cvsroot/ipmitool/ipmitool/lib/ipmi_sel.c,v
retrieving revision 1.72
diff -u -r1.72 ipmi_sel.c
--- ipmi_sel.c 9 Jul 2008 05:55:55 -0000 1.72
+++ ipmi_sel.c 13 Aug 2008 19:22:58 -0000
@@ -666,7 +666,8 @@
{
struct ipmi_rs * rsp;
struct ipmi_rq req;
- uint16_t e, f, version;
+ uint16_t e, version;
+ uint32_t f;
int pctfull = 0;
uint32_t fs = 0xffffffff;
uint32_t zeros = 0;
@@ -699,13 +700,20 @@
e = buf2short(rsp->data + 1);
f = buf2short(rsp->data + 3);
printf("Entries : %d\n", e);
- printf("Free Space : %d bytes\n", f);
+ printf("Free Space : %d bytes %s\n", f ,(f==65535 ? "or more" :
"" ));
+
if (e) {
- e *= 16;
- f += e;
+ e *= 16; /* each entry takes 16 bytes */
+ f += e; /* this is supposed to give the total size ... */
pctfull = (int)(100 * ( (double)e / (double)f ));
}
- printf("Percent Used : %d%%\n", pctfull);
+
+ if( f >= 65535 ) {
+ printf("Percent Used : %s\n", "unknown" );
+ }
+ else {
+ printf("Percent Used : %d%%\n", pctfull);
+ }
if ((!memcmp(rsp->data + 5, &fs, 4)) ||
Francois Isabelle
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Ipmitool-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel