Module Name: src
Committed By: cegger
Date: Thu Aug 26 07:04:05 UTC 2010
Modified Files:
src/usr.sbin/fwctl: fwcontrol.c
Log Message:
show crom:
Print calculated crc. When crc does not match then print expected crc.
To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/usr.sbin/fwctl/fwcontrol.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/fwctl/fwcontrol.c
diff -u src/usr.sbin/fwctl/fwcontrol.c:1.9 src/usr.sbin/fwctl/fwcontrol.c:1.10
--- src/usr.sbin/fwctl/fwcontrol.c:1.9 Tue Aug 24 08:41:24 2010
+++ src/usr.sbin/fwctl/fwcontrol.c Thu Aug 26 07:04:04 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: fwcontrol.c,v 1.9 2010/08/24 08:41:24 cegger Exp $ */
+/* $NetBSD: fwcontrol.c,v 1.10 2010/08/26 07:04:04 cegger Exp $ */
/*
* Copyright (C) 2002
* Hidetoshi Shimokawa. All rights reserved.
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
//__FBSDID("$FreeBSD: src/usr.sbin/fwcontrol/fwcontrol.c,v 1.23 2006/10/26 22:33:38 imp Exp $");
-__RCSID("$NetBSD: fwcontrol.c,v 1.9 2010/08/24 08:41:24 cegger Exp $");
+__RCSID("$NetBSD: fwcontrol.c,v 1.10 2010/08/26 07:04:04 cegger Exp $");
#include <sys/param.h>
#include <sys/malloc.h>
@@ -401,6 +401,15 @@
}
static void
+show_crc(uint16_t crc, uint16_t good_crc)
+{
+ if (crc == good_crc)
+ printf("(OK)\n");
+ else
+ printf("(NG, 0x%x)\n", good_crc);
+}
+
+static void
show_crom(uint32_t *crom_buf)
{
int i;
@@ -422,16 +431,13 @@
if (hdr->info_len == 1) {
/* minimum ROM */
reg = (struct csrreg *)hdr;
- printf("verndor ID: 0x%06x\n", reg->val);
+ printf("vendor ID: 0x%06x\n", reg->val);
return;
}
- printf("info_len=%d crc_len=%d crc=0x%04x",
- hdr->info_len, hdr->crc_len, hdr->crc);
crc = crom_crc(crom_buf+1, hdr->crc_len);
- if (crc == hdr->crc)
- printf("(OK)\n");
- else
- printf("(NG)\n");
+ printf("info_len=%d crc_len=%d crc=0x%04x ",
+ hdr->info_len, hdr->crc_len, crc);
+ show_crc(crc, hdr->crc);
parse_bus_info_block(crom_buf+1);
crom_init_context(&cc, crom_buf);
@@ -440,13 +446,10 @@
printf("no root directory - giving up\n");
return;
}
- printf("root_directory: len=0x%04x(%d) crc=0x%04x",
- dir->crc_len, dir->crc_len, dir->crc);
crc = crom_crc((uint32_t *)&dir->entry[0], dir->crc_len);
- if (crc == dir->crc)
- printf("(OK)\n");
- else
- printf("(NG)\n");
+ printf("root_directory: len=0x%04x(%d) crc=0x%04x ",
+ dir->crc_len, dir->crc_len, crc);
+ show_crc(crc, dir->crc);
if (dir->crc_len < 1)
return;
while (cc.depth >= 0) {