Shut a bunch of warnings.

This commit is contained in:
Poul-Henning Kamp 1995-08-25 09:46:01 +00:00
parent 907886f9e0
commit f64c9758b0
13 changed files with 192 additions and 147 deletions

View File

@ -1,6 +1,10 @@
/*
* $Id$
*/
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
#include <sys/ioctl.h>
@ -10,19 +14,11 @@
int nocards;
int
dumpcis_main(int argc, char **argv)
{
int node;
for (node = 0; node < 8; node++)
scan(node);
printf("%d slots found\n", nocards);
}
void
scan(slot)
int slot;
{
int fd, i;
int fd;
char name[64];
struct cis *cp;
struct slotstate st;
@ -45,6 +41,8 @@ struct slotstate st;
}
}
}
void
dump(p, sz)
unsigned char *p;
int sz;
@ -77,3 +75,14 @@ void *p;
}
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

@ -7,6 +7,7 @@
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <pccard/card.h>
@ -22,7 +23,7 @@ char *argv[];
struct drv_desc drv;
struct mem_desc mem;
struct io_desc io;
int fd, err, slot, i, card_addr;
int fd, slot, i, card_addr;
char name[32];
char *p;
@ -50,7 +51,7 @@ char *p;
usage("Memory argument error");
if (sscanf(argv[1], "%x", &card_addr)!=1)
usage("Bad card address");
if (sscanf(argv[2], "%x", &drv.mem)!=1)
if (sscanf(argv[2], "%lx", &drv.mem)!=1)
usage("Bad memory address");
if (sscanf(argv[3], "%d", &i)!=1)
usage("Bad memory size");
@ -80,7 +81,7 @@ char *p;
}
if (argc)
usage("no parameter for argument");
printf("drv %s%d, mem 0x%x, size %d, io %d, irq 0x%x, flags 0x%x\n",
printf("drv %s%d, mem 0x%lx, size %d, io %d, irq 0x%x, flags 0x%x\n",
drv.name, drv.unit, drv.mem, drv.memsize, drv.iobase,
drv.irqmask, drv.flags);
sprintf(name, "/dev/card%d", slot);
@ -121,6 +122,7 @@ char *p;
if (ioctl(fd, PIOCSDRV, &drv))
perror("set driver");
close(fd);
return 0;
}
/*
* usage - print usage and exit

View File

@ -1,4 +1,5 @@
#include <stdio.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/ioctl.h>

View File

@ -12,8 +12,14 @@
#include "readcis.h"
int dump_pwr_desc(unsigned char *);
void print_ext_speed(unsigned char, int);
int dump_pwr_desc(unsigned char *);
void print_ext_speed(unsigned char, int);
void dump_device_desc(unsigned char *p, int len, char *type);
void dump_info_v1(unsigned char *p, int len);
void dump_config_map(struct tuple *tp);
void dump_cis_config(struct tuple *tp);
void dump_other_cond(unsigned char *p);
void dump_func_ext(unsigned char *p, int len);
void
dumpcis(struct cis *cp)
@ -152,6 +158,7 @@ unsigned char *p;
/*
* Dump configuration map tuple.
*/
void
dump_config_map(struct tuple *tp)
{
unsigned char *p, x;
@ -168,7 +175,7 @@ union {
p = tp->data + 2;
for (i = 0 ; i < rlen; i++)
u.b[i] = *p++;
printf("\tReg len = %d, config register addr = 0x%x, last config = 0x%x\n",
printf("\tReg len = %d, config register addr = 0x%lx, last config = 0x%x\n",
rlen, u.l, tp->data[1]);
if (mlen)
printf("\tRegisters: ");
@ -183,15 +190,12 @@ union {
/*
* Dump a config entry.
*/
void
dump_cis_config(struct tuple *tp)
{
unsigned char *p, feat;
int i, j;
char c;
union {
unsigned long l;
unsigned char b[4];
}u;
p = tp->data;
printf("\tConfig index = 0x%x%s\n", *p & 0x3F,
@ -501,6 +505,7 @@ union {
/*
* dump_other_cond - Dump other conditions.
*/
void
dump_other_cond(unsigned char *p)
{
if (p[0])
@ -566,6 +571,7 @@ static char *mant[] =
return(len);
}
void
dump_device_desc(unsigned char *p, int len, char *type)
{
static char *un_name[] =
@ -617,6 +623,7 @@ int count = 0;
/*
* Print version info
*/
void
dump_info_v1(unsigned char *p, int len)
{
printf("\tVersion = %d.%d", p[0], p[1]);
@ -635,6 +642,7 @@ dump_info_v1(unsigned char *p, int len)
/*
* dump functional extension tuple.
*/
void
dump_func_ext(unsigned char *p, int len)
{
if (len == 0)

View File

@ -2,28 +2,49 @@
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <pccard/card.h>
#include <pccard/cis.h>
int
rdmap_main(argc, argv)
int argc;
char *argv[];
void
dump_io(fd, nio)
int fd, nio;
{
int node, mask;
struct card *cp;
struct io_desc io;
int i;
for (node = 0; node < 8; node++)
scan(node);
exit(0);
for (i = 0; i < nio; i++)
{
io.window = i;
ioctl(fd, PIOCGIO, &io);
printf("I/O %d: flags 0x%03x port 0x%3x size %d bytes\n",
io.window, io.flags, io.start, io.size);
}
}
static scan(slot)
void
dump_mem(fd, nmem)
int fd, nmem;
{
struct mem_desc mem;
int i;
for (i = 0; i < nmem; i++)
{
mem.window = i;
ioctl(fd, PIOCGMEM, &mem);
printf("Mem %d: flags 0x%03x host %p card %04lx size %d bytes\n",
mem.window, mem.flags, mem.start, mem.card, mem.size);
}
}
static void
scan(slot)
int slot;
{
int fd, mask;
char blk[1024];
int fd;
char name[64];
struct slotstate st;
@ -41,31 +62,15 @@ struct slotstate st;
}
close(fd);
}
dump_mem(fd, nmem)
int fd, nmem;
{
struct mem_desc mem;
int i;
for (i = 0; i < nmem; i++)
{
mem.window = i;
ioctl(fd, PIOCGMEM, &mem);
printf("Mem %d: flags 0x%03x host 0x%6x card %04x size %d bytes\n",
mem.window, mem.flags, mem.start, mem.card, mem.size);
}
}
dump_io(fd, nio)
int fd, nio;
int
rdmap_main(argc, argv)
int argc;
char *argv[];
{
struct io_desc io;
int i;
int node;
for (i = 0; i < nio; i++)
{
io.window = i;
ioctl(fd, PIOCGIO, &io);
printf("I/O %d: flags 0x%03x port 0x%3x size %d bytes\n",
io.window, io.flags, io.start, io.size);
}
for (node = 0; node < 8; node++)
scan(node);
exit(0);
}

View File

@ -1,21 +1,12 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <pccard/card.h>
int
rdreg_main(argc, argv)
int argc;
char *argv[];
{
if (argc != 2)
{
dumpslot(0);
dumpslot(1);
}
else
dumpslot(atoi(argv[1]));
}
void
dumpslot(sl)
int sl;
{
@ -46,3 +37,18 @@ struct pcic_reg r;
}
close(fd);
}
int
rdreg_main(argc, argv)
int argc;
char *argv[];
{
if (argc != 2)
{
dumpslot(0);
dumpslot(1);
}
else
dumpslot(atoi(argv[1]));
return 0;
}

View File

@ -1,4 +1,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/ioctl.h>
@ -43,4 +46,5 @@ off_t offs;
lseek(fd, offs, SEEK_SET);
if (write(fd, &c, 1) != 1)
perror(name);
return 0;
}

View File

@ -1,4 +1,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/ioctl.h>
@ -36,4 +39,5 @@ struct pcic_reg r;
r.value = value;
if (ioctl(fd, PIOCSREG, &r))
perror("ioctl");
return 0;
}

View File

@ -6,8 +6,10 @@
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/time.h>
#include <syslog.h>
#include <varargs.h>
#include "cardd.h"
@ -24,14 +26,16 @@ void readslots();
void slot_change(struct slot *);
void card_removed(struct slot *);
void card_inserted(struct slot *);
int assign_io(struct slot *sp);
/*
* mainline code for cardd
*/
int
main(int argc, char *argv[])
{
struct slot *sp;
int mask, count, debug = 0, err = 0;
int count, debug = 0;
int verbose = 0;
extern char *optarg;
extern int optind, optopt;
@ -82,11 +86,13 @@ extern int optind, optopt;
die("No PC-CARD slots");
for (;;)
{
mask = 0;
fd_set mask;
FD_ZERO(&mask);
for (sp = slots; sp; sp = sp->next)
mask |= sp->mask;
FD_SET(sp->fd,&mask);
printf("Doing select\n");
count = select(32, 0, 0, &mask, 0);
printf("select=%d\n",count);
if (count == -1)
{
perror("Select");
@ -94,7 +100,7 @@ printf("Doing select\n");
}
if (count)
for (sp = slots; sp; sp = sp->next)
if (mask & sp->mask)
if (FD_ISSET(sp->fd,&mask))
slot_change(sp);
}
}
@ -104,8 +110,6 @@ printf("Doing select\n");
void
dump_config_file()
{
struct driver *drvp;
struct device *devp;
struct card *cp;
struct card_config *confp;
@ -172,7 +176,6 @@ struct slot *sp;
printf("opened %s\n",name);
sp = xmalloc(sizeof(*sp));
sp->fd = fd;
sp->mask = 1 << fd;
sp->name = newstr(name);
sp->slot = i;
sp->state = empty;
@ -253,7 +256,6 @@ HERE();
void
card_removed(struct slot *sp)
{
struct driver *drvp;
struct card *cp;
HERE();
@ -265,7 +267,7 @@ HERE();
sp->config->driver->inuse = 0;
}
HERE();
if (cp = sp->card)
if ((cp = sp->card) != 0)
execute(cp->remove);
HERE();
sp->cis = 0;
@ -339,7 +341,7 @@ struct card *cp;
void
read_ether(struct slot *sp)
{
unsigned char net_addr[12], *p;
unsigned char net_addr[12];
lseek(sp->fd, (off_t)sp->card->ether, SEEK_SET);
if (read(sp->fd, net_addr, sizeof(net_addr)) != sizeof(net_addr))
@ -582,7 +584,6 @@ setup_slot(struct slot *sp)
struct mem_desc mem;
struct io_desc io;
struct drv_desc drv;
struct allocblk *ap;
struct driver *drvp = sp->config->driver;
char c;
off_t offs;

View File

@ -119,6 +119,8 @@ void logerr(char *);
void reset_slot(struct slot *);
void execute(struct cmd *);
unsigned long alloc_memory(int size);
int bit_fns(bitstr_t *nm, int nbits, int count);
void readfile(char *name);
#define IOPORTS 0x400
#define MEMUNIT 0x1000

View File

@ -49,14 +49,17 @@ int irq_tok(int);
void setflags(struct flags *, int *);
struct driver *new_driver(char *);
void addcmd(struct cmd **cp);
void parse_card();
/*
* Read a file and parse the pcmcia configuration data.
* After parsing, verify the links.
*/
void
readfile(char *name)
{
struct card *cp;
struct driver *drvp;
in = fopen(name, "r");
if (in == 0)
@ -76,7 +79,6 @@ void
parsefile()
{
int i;
char *s;
struct allocblk *bp;
pushc = 0;
@ -94,7 +96,7 @@ struct allocblk *bp;
* reserved I/O blocks
*/
case 1:
while (bp = ioblk_tok(0))
while ((bp = ioblk_tok(0)) != 0)
{
if (bp->size == 0 || bp->addr == 0)
{
@ -119,7 +121,7 @@ struct allocblk *bp;
* reserved memory blocks.
*/
case 3:
while (bp = memblk_tok(0))
while ((bp = memblk_tok(0)) != 0)
{
if (bp->size == 0 || bp->addr == 0)
{
@ -152,6 +154,7 @@ struct allocblk *bp;
/*
* Parse a card definition.
*/
void
parse_card()
{
char *man, *vers;
@ -626,6 +629,7 @@ int set = 1;
* addcmd - Append the command line to the list of
* commands.
*/
void
addcmd(struct cmd **cp)
{
char *s = getline();
@ -698,7 +702,7 @@ int
num_tok()
{
char *s = next_tok(), c;
int val=0, base, term=0;
int val=0, base;
base = 10;
c = *s++;
@ -752,7 +756,7 @@ int val=0, base, term=0;
return(-1);
break;
}
} while (c = *s++);
} while ((c = *s++) != 0);
return(val);
}
char *_next_tok();

View File

@ -15,41 +15,45 @@
static int read_attr(int fd, char *bp, int len);
struct tuple_list *read_one_tuplelist(int, int, off_t);
int ck_linktarget(int, off_t, int);
void cis_info(struct cis *cp, unsigned char *p, int len);
void device_desc(unsigned char *p, int len, struct dev_mem *dp);
void config_map(struct cis *cp, unsigned char *p, int len);
void cis_config(struct cis *cp, unsigned char *p, int len);
struct tuple_info tuple_info[] =
{
"Null tuple", 0x00, 0,
"Common memory descriptor", 0x01, 255,
"Checksum", 0x10, 5,
"Long link to attribute memory", 0x11, 4,
"Long link to common memory", 0x12, 4,
"Link target", 0x13, 3,
"No link", 0x14, 0,
"Version 1 info", 0x15, 255,
"Alternate language string", 0x16, 255,
"Attribute memory descriptor", 0x17, 255,
"JEDEC descr for common memory", 0x18, 255,
"JEDEC descr for attribute memory", 0x19, 255,
"Configuration map", 0x1A, 255,
"Configuration entry", 0x1B, 255,
"Other conditions for common memory", 0x1C, 255,
"Other conditions for attribute memory", 0x1D, 255,
"Geometry info for common memory", 0x1E, 255,
"Geometry info for attribute memory", 0x1F, 255,
"Manufacturer ID", 0x20, 4,
"Functional ID", 0x21, 255,
"Functional EXT", 0x22, 255,
"Software interleave", 0x23, 2,
"Version 2 Info", 0x40, 255,
"Data format", 0x41, 255,
"Geometry", 0x42, 4,
"Byte order", 0x43, 2,
"Card init date", 0x44, 4,
"Battery replacement", 0x45, 4,
"Organisation", 0x46, 255,
"Terminator", 0xFF, 255,
0, 0, 0
};
{ "Null tuple", 0x00, 0 },
{ "Common memory descriptor", 0x01, 255 },
{ "Checksum", 0x10, 5 },
{ "Long link to attribute memory", 0x11, 4 },
{ "Long link to common memory", 0x12, 4 },
{ "Link target", 0x13, 3 },
{ "No link", 0x14, 0 },
{ "Version 1 info", 0x15, 255 },
{ "Alternate language string", 0x16, 255 },
{ "Attribute memory descriptor", 0x17, 255 },
{ "JEDEC descr for common memory", 0x18, 255 },
{ "JEDEC descr for attribute memory", 0x19, 255 },
{ "Configuration map", 0x1A, 255 },
{ "Configuration entry", 0x1B, 255 },
{ "Other conditions for common memory", 0x1C, 255 },
{ "Other conditions for attribute memory", 0x1D, 255 },
{ "Geometry info for common memory", 0x1E, 255 },
{ "Geometry info for attribute memory", 0x1F, 255 },
{ "Manufacturer ID", 0x20, 4 },
{ "Functional ID", 0x21, 255 },
{ "Functional EXT", 0x22, 255 },
{ "Software interleave", 0x23, 2 },
{ "Version 2 Info", 0x40, 255 },
{ "Data format", 0x41, 255 },
{ "Geometry", 0x42, 4 },
{ "Byte order", 0x43, 2 },
{ "Card init date", 0x44, 4 },
{ "Battery replacement", 0x45, 4 },
{ "Organisation", 0x46, 255 },
{ "Terminator", 0xFF, 255 },
{ 0, 0, 0 }
};
/*
* After reading the tuples, decode the relevant ones.
@ -106,10 +110,10 @@ struct cis_config *conf;
struct tuple *tp;
struct tuple_list *tl;
while (tl = cp->tlist)
while ((tl = cp->tlist) != 0)
{
cp->tlist = tl->next;
while (tp = tl->tuples)
while ((tp = tl->tuples) != 0)
{
tl->tuples = tp->next;
if (tp->data)
@ -117,15 +121,15 @@ struct tuple_list *tl;
}
}
while (conf = cp->conf)
while ((conf = cp->conf) != 0)
{
cp->conf = conf->next;
while (io = conf->io)
while ((io = conf->io) != 0)
{
conf->io = io->next;
free(io);
}
while (mem = conf->mem)
while ((mem = conf->mem) != 0)
{
conf->mem = mem->next;
free(mem);
@ -137,6 +141,7 @@ struct tuple_list *tl;
/*
* Fills in CIS version data.
*/
void
cis_info(struct cis *cp, unsigned char *p, int len)
{
cp->maj_v = *p++;
@ -155,10 +160,8 @@ cis_info(struct cis *cp, unsigned char *p, int len)
/*
* device_desc - decode device descriptor.
*/
device_desc(p, len, dp)
unsigned char *p;
int len;
struct dev_mem *dp;
void
device_desc(unsigned char *p, int len, struct dev_mem *dp)
{
while (len > 0 && *p != 0xFF)
{
@ -179,10 +182,8 @@ struct dev_mem *dp;
/*
* configuration map of card control register.
*/
config_map(cp, p, len)
struct cis *cp;
unsigned char *p;
int len;
void
config_map(struct cis *cp, unsigned char *p, int len)
{
unsigned char *p1;
int i;
@ -202,12 +203,10 @@ union {
/*
* CIS config entry - Decode and build configuration entry.
*/
cis_config(cp, p, len)
struct cis *cp;
unsigned char *p;
int len;
void
cis_config(struct cis *cp, unsigned char *p, int len)
{
int blks, x;
int x;
int i, j;
union {
unsigned long l;
@ -216,9 +215,10 @@ union {
struct cis_config *conf, *last;
struct cis_memblk *mem;
unsigned char feat;
struct cis_memblk *lastmem = 0;
conf = xmalloc(sizeof(*conf));
if (last = cp->conf)
if ((last = cp->conf) !=0)
{
while (last->next)
last = last->next;
@ -351,14 +351,12 @@ unsigned char feat;
conf->memwins = CIS_MEM_WINS(x);
for (i = 0; i < conf->memwins; i++)
{
struct cis_memblk *last;
mem = xmalloc(sizeof(*mem));
if (i == 0)
conf->mem = mem;
else
last->next = mem;
last = mem;
lastmem->next = mem;
lastmem = mem;
u.l = 0;
for (j = 0 ; j < CIS_MEM_LENSZ(x); j++)
u.b[j] = *p++;
@ -465,10 +463,10 @@ off_t offs;
struct tuple_list *
read_one_tuplelist(int fd, int flags, off_t offs)
{
struct tuple *tp, *last_tp, *first = 0;
struct tuple *tp, *last_tp = 0;
struct tuple_list *tl;
struct tuple_info *tinfo;
int i, total = 0;
int total = 0;
unsigned char code, length;
/*
@ -567,7 +565,7 @@ struct tuple_list *tl;
struct tuple *tp;
for (tl = sp->tlist; tl; tl = tl->next)
if (tp = find_tuple_in_list(tl, code))
if ((tp = find_tuple_in_list(tl, code)) != 0)
return(tp);
return(0);
}

View File

@ -4,6 +4,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <syslog.h>
@ -107,7 +109,6 @@ int i;
void
reset_slot(struct slot *sp)
{
struct card *cp = sp->card;
char c;
off_t offs;
struct mem_desc mem;
@ -155,7 +156,7 @@ char *p, *cp, *lp;
lp = cmdp->line;
if (*lp == 0)
continue;
while (p = strchr(lp, '$'))
while ((p = strchr(lp, '$')) != 0)
{
/*
* copy over preceding string.
@ -199,7 +200,7 @@ char *p, *cp, *lp;
/*
* No more replacements. Copy rest of string.
*/
while (*cp++ = *lp++)
while ((*cp++ = *lp++) != 0)
;
#ifdef DEBUG
fprintf(stderr, "Executing [%s]\n", cmd);