summaryrefslogtreecommitdiffstats
path: root/usr.sbin/dumpcis
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2008-11-17 22:46:29 +0000
committerimp <imp@FreeBSD.org>2008-11-17 22:46:29 +0000
commit6e1bfa6c69ad6be9670c6ce7d3f206843e23979b (patch)
tree09dcfbcab9c8c18b99ffd9bc635a8b570263a202 /usr.sbin/dumpcis
parent5cf9a95bf50d3be79138d7c74bd0a0cd923764a8 (diff)
downloadFreeBSD-src-6e1bfa6c69ad6be9670c6ce7d3f206843e23979b.zip
FreeBSD-src-6e1bfa6c69ad6be9670c6ce7d3f206843e23979b.tar.gz
make this warns=5 clean
Diffstat (limited to 'usr.sbin/dumpcis')
-rw-r--r--usr.sbin/dumpcis/Makefile1
-rw-r--r--usr.sbin/dumpcis/dumpcis.c53
-rw-r--r--usr.sbin/dumpcis/dumpcisfile.c3
-rw-r--r--usr.sbin/dumpcis/printcis.c34
-rw-r--r--usr.sbin/dumpcis/readcis.c140
-rw-r--r--usr.sbin/dumpcis/readcis.h6
6 files changed, 46 insertions, 191 deletions
diff --git a/usr.sbin/dumpcis/Makefile b/usr.sbin/dumpcis/Makefile
index b68e2e4..607c0fb 100644
--- a/usr.sbin/dumpcis/Makefile
+++ b/usr.sbin/dumpcis/Makefile
@@ -5,5 +5,6 @@
PROG= dumpcis
MAN= dumpcis.8
SRCS= main.c dumpcis.c dumpcisfile.c readcis.c printcis.c
+WARNS?= 5
.include <bsd.prog.mk>
diff --git a/usr.sbin/dumpcis/dumpcis.c b/usr.sbin/dumpcis/dumpcis.c
index d085e37..9b89f2b 100644
--- a/usr.sbin/dumpcis/dumpcis.c
+++ b/usr.sbin/dumpcis/dumpcis.c
@@ -41,34 +41,6 @@ static const char rcsid[] =
#include <pccard/cis.h>
#include "readcis.h"
-int nocards;
-
-static void
-scan(int slot)
-{
- int fd;
- char name[64];
- struct cis *cp;
- struct slotstate st;
-
- sprintf(name, CARD_DEVICE, slot);
- fd = open(name, O_RDONLY);
- if (fd < 0)
- return;
- nocards++;
- if (ioctl(fd, PIOCGSTATE, &st))
- err(1, "ioctl (PIOCGSTATE)");
- if (st.state == filled) {
- cp = readcis(fd);
- if (cp) {
- printf("Configuration data for card in slot %d\n",
- slot);
- dumpcis(cp);
- freecis(cp);
- }
- }
-}
-
void
dump(unsigned char *p, int sz)
{
@@ -84,28 +56,3 @@ dump(unsigned char *p, int sz)
ad += 16;
}
}
-
-void *
-xmalloc(int sz)
-{
- void *p;
-
- sz = (sz + 7) & ~7;
- p = malloc(sz);
- if (p)
- bzero(p, sz);
- else
- errx(1, "malloc");
- return (p);
-}
-
-int
-dumpcis_main(int argc, char **argv)
-{
- int node;
-
- for (node = 0; node < 8; node++)
- scan(node);
- printf("%d slots found\n", nocards);
- return 0;
-}
diff --git a/usr.sbin/dumpcis/dumpcisfile.c b/usr.sbin/dumpcis/dumpcisfile.c
index 6a415ba..d8146a8 100644
--- a/usr.sbin/dumpcis/dumpcisfile.c
+++ b/usr.sbin/dumpcis/dumpcisfile.c
@@ -42,8 +42,7 @@ static const char rcsid[] =
#include "readcis.h"
static void
-scanfile(name)
- char *name;
+scanfile(char *name)
{
int fd;
struct cis *cp;
diff --git a/usr.sbin/dumpcis/printcis.c b/usr.sbin/dumpcis/printcis.c
index f8a53b3..1bd526e 100644
--- a/usr.sbin/dumpcis/printcis.c
+++ b/usr.sbin/dumpcis/printcis.c
@@ -49,7 +49,7 @@ static const char rcsid[] =
static void dump_config_map(struct tuple *tp);
static void dump_cis_config(struct tuple *tp);
static void dump_other_cond(u_char *p, int len);
-static void dump_device_desc(u_char *p, int len, char *type);
+static void dump_device_desc(u_char *p, int len, const char *type);
static void dump_info_v1(u_char *p, int len);
static void dump_longlink_mfc(u_char *p, int len);
static void dump_bar(u_char *p, int len);
@@ -222,8 +222,8 @@ print_pwr_desc(u_char *p)
{
int len = 1, i;
u_char mask;
- char **expp;
- static char *pname[] =
+ const char **expp;
+ static const char *pname[] =
{"Nominal operating supply voltage",
"Minimum operating supply voltage",
"Maximum operating supply voltage",
@@ -233,11 +233,11 @@ print_pwr_desc(u_char *p)
"Power down supply current",
"Reserved"
};
- static char *vexp[] =
+ static const char *vexp[] =
{"10uV", "100uV", "1mV", "10mV", "100mV", "1V", "10V", "100V"};
- static char *cexp[] =
+ static const char *cexp[] =
{"10nA", "1uA", "10uA", "100uA", "1mA", "10mA", "100mA", "1A"};
- static char *mant[] =
+ static const char *mant[] =
{"1", "1.2", "1.3", "1.5", "2", "2.5", "3", "3.5", "4", "4.5",
"5", "5.5", "6", "7", "8", "9"};
@@ -270,13 +270,13 @@ print_pwr_desc(u_char *p)
static void
print_ext_speed(u_char x, int scale)
{
- static char *mant[] =
+ static const char *mant[] =
{"Reserved", "1.0", "1.2", "1.3", "1.5", "2.0", "2.5", "3.0",
"3.5", "4.0", "4.5", "5.0", "5.5", "6.0", "7.0", "8.0"};
- static char *exp[] =
+ static const char *exp[] =
{"1 ns", "10 ns", "100 ns", "1 us", "10 us", "100 us",
"1 ms", "10 ms"};
- static char *scale_name[] =
+ static const char *scale_name[] =
{"None", "10", "100", "1,000", "10,000", "100,000",
"1,000,000", "10,000,000"};
@@ -290,7 +290,7 @@ print_ext_speed(u_char x, int scale)
* call from print_io_map(), print_mem_map()
*/
static int
-print_num(int sz, char *fmt, u_char *p, int ofs)
+print_num(int sz, const char *fmt, u_char *p, int ofs)
{
switch (sz) {
case 0:
@@ -695,14 +695,14 @@ dump_other_cond(u_char *p, int len)
* Common / Attribute memory descripter
*/
static void
-dump_device_desc(u_char *p, int len, char *type)
+dump_device_desc(u_char *p, int len, const char *type)
{
- static char *un_name[] =
+ static const char *un_name[] =
{"512b", "2Kb", "8Kb", "32Kb", "128Kb", "512Kb", "2Mb", "reserved"};
- static char *speed[] =
+ static const char *speed[] =
{"No speed", "250nS", "200nS", "150nS",
"100nS", "Reserved", "Reserved"};
- static char *dev[] =
+ static const char *dev[] =
{"No device", "Mask ROM", "OTPROM", "UV EPROM",
"EEPROM", "FLASH EEPROM", "SRAM", "DRAM",
"Reserved", "Reserved", "Reserved", "Reserved",
@@ -778,7 +778,7 @@ dump_info_v1(u_char *p, int len)
static void
dump_func_id(u_char *p)
{
- static char *id[] = {
+ static const char *id[] = {
"Multifunction card",
"Memory card",
"Serial port/modem",
@@ -804,7 +804,7 @@ dump_func_id(u_char *p)
static void
dump_serial_ext(u_char *p, int len)
{
- static char *type[] = {
+ static const char *type[] = {
"", "Modem", "Data", "Fax", "Voice", "Data modem",
"Fax/modem", "Voice", " (Data)", " (Fax)", " (Voice)"
};
@@ -821,7 +821,7 @@ dump_serial_ext(u_char *p, int len)
goto err;
switch (p[1] & 0x1F) {
default:
- printf("\t\tUnkn device");
+ printf("\t\tUnknown device");
break;
case 0:
printf("\t\t8250 UART");
diff --git a/usr.sbin/dumpcis/readcis.c b/usr.sbin/dumpcis/readcis.c
index 73b72ef..850d643 100644
--- a/usr.sbin/dumpcis/readcis.c
+++ b/usr.sbin/dumpcis/readcis.c
@@ -46,12 +46,6 @@ static const char rcsid[] =
#include "readcis.h"
-#ifdef RATOCLAN
-static int rex5588 = 0;
-#endif
-int isdumpcisfile = 0;
-
-static int read_attr(int, char *, int);
static int ck_linktarget(int, off_t, int);
static void cis_info(struct cis *, unsigned char *, int);
static void device_desc(unsigned char *, int, struct dev_mem *);
@@ -105,6 +99,21 @@ static struct tuple_info tuple_info[] = {
{0, 0, 0}
};
+
+static void *
+xmalloc(int sz)
+{
+ void *p;
+
+ sz = (sz + 7) & ~7;
+ p = malloc(sz);
+ if (p)
+ bzero(p, sz);
+ else
+ errx(1, "malloc");
+ return (p);
+}
+
/*
* After reading the tuples, decode the relevant ones.
*/
@@ -261,14 +270,14 @@ cis_manuf_id(struct cis *cp, unsigned char *p, int len)
* Fills in CIS function ID.
*/
static void
-cis_func_id(struct cis *cp, unsigned char *p, int len)
+cis_func_id(struct cis *cp, unsigned char *p, int len __unused)
{
cp->func_id1 = *p++;
cp->func_id2 = *p++;
}
static void
-cis_network_ext(struct cis *cp, unsigned char *p, int len)
+cis_network_ext(struct cis *cp, unsigned char *p, int len __unused)
{
int i;
@@ -288,68 +297,6 @@ cis_network_ext(struct cis *cp, unsigned char *p, int len)
}
/*
- * "FUJITSU LAN Card (FMV-J182)" has broken CIS
- */
-static int
-fmvj182_check(unsigned char *p)
-{
- char manuf[BUFSIZ], vers[BUFSIZ];
-
- p++; /* major version */
- p++; /* minor version */
- strncpy(manuf, p, sizeof(manuf) - 1);
- while (*p++);
- strncpy(vers, p, sizeof(vers) - 1);
- if (!strcmp(manuf, "FUJITSU") && !strcmp(vers, "LAN Card(FMV-J182)"))
- return 1;
- else
- return 0;
-}
-
-#ifdef RATOCLAN
-/*
- * "RATOC LAN Card (REX-5588)" has broken CIS
- */
-static int
-rex5588_check(unsigned char *p)
-{
- char manuf[BUFSIZ], vers[BUFSIZ];
-
- p++; /* major version */
- p++; /* minor version */
- strncpy(manuf, p, sizeof(manuf) - 1);
- while (*p++);
- strncpy(vers, p, sizeof(manuf) - 1);
- if (!strcmp(manuf, "PCMCIA LAN MBH10304 ES"))
- return 1;
- else
- return 0;
-}
-#endif
-
-#ifdef HSSYNTH
-/*
- * Broken CIS for "HITACHI MICROCOMPUTER SYSTEM LTD." "MSSHVPC02"
- */
-static int
-hss_check(unsigned char *p)
-{
- char manuf[BUFSIZ], vers[BUFSIZ];
-
- p++; /* major version */
- p++; /* minor version */
- strncpy(manuf, p, sizeof(manuf) - 1);
- while (*p++);
- strncpy(vers, p, sizeof(vers) - 1);
- if (!strcmp(manuf, "HITACHI MICROCOMPUTER SYSTEMS LTD.")
- && !strcmp(vers, "MSSHVPC02"))
- return 1;
- else
- return 0;
-}
-#endif /* HSSYNTH */
-
-/*
* device_desc - decode device descriptor.
*/
static void
@@ -374,7 +321,7 @@ device_desc(unsigned char *p, int len, struct dev_mem *dp)
* configuration map of card control register.
*/
static void
-config_map(struct cis *cp, unsigned char *p, int len)
+config_map(struct cis *cp, unsigned char *p, int len __unused)
{
unsigned char *p1;
int rlen = (*p & 3) + 1;
@@ -425,7 +372,7 @@ parse_num(int sz, u_char *p, u_char **q, int ofs)
* CIS config entry - Decode and build configuration entry.
*/
static void
-cis_config(struct cis *cp, unsigned char *p, int len)
+cis_config(struct cis *cp, unsigned char *p, int len __unused)
{
int x;
int i, j;
@@ -440,10 +387,6 @@ cis_config(struct cis *cp, unsigned char *p, int len)
} else
cp->conf = conf;
conf->id = *p & 0x3F; /* Config index */
-#ifdef RATOCLAN
- if (rex5588 && conf->id >= 0x08 && conf->id <= 0x1d)
- conf->id |= 0x20;
-#endif
if (*p & 0x40) /* Default flag */
cp->def_config = conf;
if (*p++ & 0x80)
@@ -638,7 +581,7 @@ read_one_tuplelist(int fd, int flags, off_t offs)
ioctl(fd, PIOCRWFLAG, &flags);
lseek(fd, offs, SEEK_SET);
do {
- if (read_attr(fd, &code, 1) != 1) {
+ if (read(fd, &code, 1) != 1) {
warn("CIS code read");
break;
}
@@ -650,7 +593,7 @@ read_one_tuplelist(int fd, int flags, off_t offs)
if (code == CIS_END)
length = 0;
else {
- if (read_attr(fd, &length, 1) != 1) {
+ if (read(fd, &length, 1) != 1) {
warn("CIS len read");
break;
}
@@ -669,7 +612,7 @@ read_one_tuplelist(int fd, int flags, off_t offs)
if (length != 0) {
total += length;
tp->data = xmalloc(length);
- if (read_attr(fd, tp->data, length) != length) {
+ if (read(fd, tp->data, length) != length) {
warn("CIS read");
break;
}
@@ -680,18 +623,6 @@ read_one_tuplelist(int fd, int flags, off_t offs)
* or the length is illegal.
*/
tinfo = get_tuple_info(code);
- if (code == CIS_INFO_V1) {
- /* Hack for broken CIS of FMV-J182 Ethernet card */
- fmvj182 = fmvj182_check(tp->data);
-#ifdef RATOCLAN
- /* Hack for RATOC LAN card */
- rex5588 = rex5588_check(tp->data);
-#endif /* RATOCLAN */
-#ifdef HSSYNTH
- /* Hack for Hitachi Speech Synthesis card */
- hss = hss_check(tp->data);
-#endif /* HSSYNTH */
- }
if (tinfo != NULL && (tinfo->length != 255 && tinfo->length > length)) {
printf("code %s ignored\n", tuple_name(code));
tp->code = CIS_NULL;
@@ -715,7 +646,7 @@ ck_linktarget(int fd, off_t offs, int flag)
ioctl(fd, PIOCRWFLAG, &flag);
lseek(fd, offs, SEEK_SET);
- if (read_attr(fd, blk, 5) != 5)
+ if (read(fd, blk, 5) != 5)
return (0);
if (blk[0] == 0x13 &&
blk[1] == 0x3 &&
@@ -741,29 +672,6 @@ find_tuple_in_list(struct tuple_list *tl, unsigned char code)
return (tp);
}
-static int
-read_attr(int fd, char *bp, int len)
-{
- char blk[1024], *p = blk;
- int i, l;
-
- if (isdumpcisfile)
- return (read(fd, bp, len));
- if (len > sizeof(blk) / 2)
- len = sizeof(blk) / 2;
- l = i = read(fd, blk, len * 2);
- if (i <= 0) {
- printf("Read return %d bytes (expected %d)\n", i, len * 2);
- return (i);
- }
- while (i > 0) {
- *bp++ = *p++;
- p++;
- i -= 2;
- }
- return (l / 2);
-}
-
/*
* return table entry for code.
*/
@@ -778,7 +686,7 @@ get_tuple_info(unsigned char code)
return (0);
}
-char *
+const char *
tuple_name(unsigned char code)
{
struct tuple_info *tp;
diff --git a/usr.sbin/dumpcis/readcis.h b/usr.sbin/dumpcis/readcis.h
index 8ebd745..00d12e4 100644
--- a/usr.sbin/dumpcis/readcis.h
+++ b/usr.sbin/dumpcis/readcis.h
@@ -41,7 +41,7 @@ struct tuple_list {
};
struct tuple_info {
- char *name;
+ const char *name;
unsigned char code;
unsigned char length; /* 255 means variable length */
};
@@ -136,13 +136,13 @@ struct cis {
(*((tp) + 1) << 8) | *(tp))
#define tpl16(tp) ((*((tp) + 1) << 8) | *(tp))
-void *xmalloc(int);
+int dumpcisfile_main(int, char **);
void dump(unsigned char *, int);
void dumpcis(struct cis *);
void freecis(struct cis *);
struct cis *readcis(int);
-char *tuple_name(unsigned char);
+const char *tuple_name(unsigned char);
u_int parse_num(int, u_char *, u_char **, int);
int isdumpcisfile;
OpenPOWER on IntegriCloud