New and improved? patch [ fwcontrol ]
Dieter
freebsd at sopwith.solgatos.com
Sat Sep 6 22:23:18 UTC 2008
> > 7.0 AMD64 # ./fwcontrol -f -5
> > fwcontrol: main:set_root_node out of range: No such file or directory
> >
> > "No such file or directory" seems wrong
>
> err(EX_USAGE, "%s:set_root_node out of range", __func__);
>
> Err() is correct for places where errno would be set, such as
> checking the return code from read(2). But for the range checks,
> errno does not apply, so err() gives misleading results.
>
> The err(3) man page isn't clear, but it looks like errx(3) is
> the function you want for the range checks.
>
> Changing err() to errx() gives:
>
> 7.0 AMD64 # ./fwcontrol -f 70
> fwcontrol: main:set_root_node out of range
Also, I'm thinking we probably don't want "\n" in the err() and errx()
calls, since they put that in automagically.
When a file cannot be opened, it is useful to print the name
of the file.
int len=1024, i;
if ((file = fopen(filename, "r")) == NULL)
- err(1, "load_crom");
+ err(1, "load_crom filename = %s", filename);
for (i = 0; i < len/(4*8); i ++) {
fscanf(file, DUMP_FORMAT,
p, p+1, p+2, p+3, p+4, p+5, p+6, p+7);
if (open_dev(&fd, devbase) < 0) {
- errx(EX_IOERR, "%s: Error opening board #%d\n", __func__, current_board);
+ err(EX_IOERR, "%s: Error opening firewire controller #%d %s ",
+ __func__, current_board, devbase);
}
}
/*
Since open_dev() calls open(2), which sets errno, this time
we want err(3) rather than errx(3).
More information about the freebsd-firewire
mailing list