1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-03 12:35:02 +00:00

make this warns=5 clean

This commit is contained in:
Warner Losh 2008-11-17 22:46:29 +00:00
parent 0738c00eb5
commit c1d393d207
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=185033
6 changed files with 46 additions and 191 deletions

View File

@ -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>

View File

@ -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;
}

View File

@ -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;

View File

@ -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");

View File

@ -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;
@ -287,68 +296,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.
*/
@ -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;

View File

@ -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;