diff options
-rw-r--r-- | usr.sbin/qcamcontrol/qcamcontrol.1 | 33 | ||||
-rw-r--r-- | usr.sbin/qcamcontrol/qcamcontrol.c | 95 | ||||
-rw-r--r-- | usr.sbin/qcamcontrol/qcamtime/qcamtime.c | 52 | ||||
-rw-r--r-- | usr.sbin/quot/quot.8 | 10 | ||||
-rw-r--r-- | usr.sbin/quot/quot.c | 141 |
5 files changed, 150 insertions, 181 deletions
diff --git a/usr.sbin/qcamcontrol/qcamcontrol.1 b/usr.sbin/qcamcontrol/qcamcontrol.1 index 76d0763..eecb43b 100644 --- a/usr.sbin/qcamcontrol/qcamcontrol.1 +++ b/usr.sbin/qcamcontrol/qcamcontrol.1 @@ -15,37 +15,40 @@ .Op Fl y Ar ysize .Op Fl z Ar zoom .Sh DESCRIPTION -.Nm qcamcontrol +.Nm Qcamcontrol is a program to demonstrate control over the Connectix QuickCam(TM) parallel port camera and to take a single frame picture. .Pp -If the device not specified, "/dev/qcam0" is assumed. +If the device not specified, +.Pa /dev/qcam0 +is assumed. If no command is given, then -.Nm qcamcontrol +.Nm will use its defaults to grab a single frame from the camera. The control program will output a portable pixmap (ppm) file to stdout. .Pp The following options are available: -.Bl -tag -width "flag whitebalance" +.Bl -tag -width indent .It Fl b Ar brightness -control the brightness of the picture (0..255) +Control the brightness of the picture (0..255). .It Fl c Ar contrast -control the contrast of the picture (0..255) +Control the contrast of the picture (0..255). .It Fl d Ar depth -16 or 64 shades of gray (specified as 4 or 6 bits per pixel) +16 or 64 shades of gray (specified as 4 or 6 bits per pixel). .It Fl p Ar device -quickcam device (port) (default is /dev/qcam0) +Quickcam device (port) (default is +.Pa /dev/qcam0 ) .It Fl w Ar whitebalance -amount of white in the picture (0..255) +Amount of white in the picture (0..255). .It Fl x Ar xsize -width of image (320 or less) +Width of image (320 or less). .It Fl y Ar ysize -height of image (240 or less) +Height of image (240 or less). .It Fl z Ar zoom -zoom in (1, 1.5x, or 2x) +Zoom in (1x, 1.5x, or 2x). .El .Sh BUGS -.Nm qcamcontrol +.Nm Qcamcontrol does not enforce a proper aspect ratio for x y sizes. In practice, standard picture sizes are 320x240 and 180x160 and all smaller sizes that maintain a similar aspect ratio. @@ -57,9 +60,9 @@ will return all-black or all-white pictures. .It Pa /dev/qcam0 .El .Sh AUTHOR -Paul Traina +.An Paul Traina .Sh HISTORY The -.Nm qcamcontrol +.Nm command appeared in .Fx 2.1.5 . diff --git a/usr.sbin/qcamcontrol/qcamcontrol.c b/usr.sbin/qcamcontrol/qcamcontrol.c index e174d63..b52cca5 100644 --- a/usr.sbin/qcamcontrol/qcamcontrol.c +++ b/usr.sbin/qcamcontrol/qcamcontrol.c @@ -30,6 +30,12 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifndef lint +static const char rcsid[] = + "$Id$"; +#endif /* not lint */ + +#include <err.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> @@ -56,6 +62,7 @@ void print_data(struct qcam *data) data->qc_contrast); } +static void usage(void) { fprintf(stderr, "usage: qcamcontrol [-p port] [-x xsize] [-y ysize] " @@ -65,6 +72,7 @@ usage(void) exit(2); } +int main(int argc, char **argv) { struct qcam info; @@ -92,68 +100,50 @@ main(int argc, char **argv) case 'x': x_size = atoi(optarg); - if (x_size > QC_MAX_XSIZE) { - fprintf(stderr, "x size too large (max %d)\n", - QC_MAX_XSIZE); - exit(2); - } + if (x_size > QC_MAX_XSIZE) + errx(2, "x size too large (max %d)", QC_MAX_XSIZE); break; case 'y': y_size = atoi(optarg); - if (y_size > QC_MAX_YSIZE) { - fprintf(stderr, "x size too large (max %d)\n", - QC_MAX_YSIZE); - exit(2); - } + if (y_size > QC_MAX_YSIZE) + errx(2, "x size too large (max %d)", QC_MAX_YSIZE); break; case 'z': zoom = atoi(optarg); - if (zoom > QC_ZOOM_200) { - fprintf(stderr, "zoom too large (max %d)\n", QC_ZOOM_200); - exit(2); - } + if (zoom > QC_ZOOM_200) + errx(2, "zoom too large (max %d)", QC_ZOOM_200); break; case 'd': depth = atoi(optarg); - if (depth != 4 && depth != 6) { - fprintf(stderr, "invalid depth (4 or 6)\n"); - exit(2); - } + if (depth != 4 && depth != 6) + errx(2, "invalid depth (4 or 6)"); break; case 'b': brightness = atoi(optarg); - if (brightness > 255) { - fprintf(stderr, "bad brightness (max 255)\n"); - exit(2); - } + if (brightness > 255) + errx(2, "bad brightness (max 255)"); break; case 'w': whitebalance = atoi(optarg); - if (whitebalance > 255) { - fprintf(stderr, "bad white balance (max 255)\n"); - exit(2); - } + if (whitebalance > 255) + errx(2, "bad white balance (max 255)"); break; case 'c': contrast = atoi(optarg); - if (contrast > 255) { - fprintf(stderr, "bad contrast (max 255)\n"); - exit(2); - } + if (contrast > 255) + errx(2, "bad contrast (max 255)"); break; case 'e': exposure = atoi(optarg); - if (exposure < 100) { - fprintf(stderr, "bad exposure (min 100)\n"); - exit(2); - } + if (exposure < 100) + errx(2, "bad exposure (min 100)"); break; default: @@ -164,17 +154,13 @@ main(int argc, char **argv) argv += optind; /* open device */ - if ((fd = open(port, O_RDONLY)) < 0) { - perror("open"); - exit(1); - } + if ((fd = open(port, O_RDONLY)) < 0) + err(1, "open"); - if (ioctl(fd, QC_GET, &info) < 0) { /* read in default info */ - perror("ioctl(QC_GET)"); - exit(1); - } + if (ioctl(fd, QC_GET, &info) < 0) /* read in default info */ + err(1, "ioctl(QC_GET)"); if (x_size > -1) info.qc_xsize = x_size; @@ -199,18 +185,14 @@ main(int argc, char **argv) */ info.qc_version = QC_IOCTL_VERSION; - if (ioctl(fd, QC_SET, &info) < 0) { - perror("ioctl(QC_SET)"); - exit(1); - } + if (ioctl(fd, QC_SET, &info) < 0) + err(1, "ioctl(QC_SET)"); /* * Tell us what the kernel thinks we're asking for */ - if (ioctl(fd, QC_GET, &info) < 0) { - perror("ioctl(QC_SET)"); - exit(1); - } + if (ioctl(fd, QC_GET, &info) < 0) + err(1, "ioctl(QC_SET)"); print_data(&info); @@ -221,10 +203,8 @@ main(int argc, char **argv) len = info.qc_xsize * info.qc_ysize; while (len) { bytes = read(fd, buffer, len); - if (bytes < 0) { - perror("read"); - exit(1); - } + if (bytes < 0) + err(1, "read"); len -= bytes; if (bytes == 0) @@ -238,8 +218,7 @@ main(int argc, char **argv) info.qc_xsize, info.qc_ysize, (1<<info.qc_bpp) - 1); fflush(stdout); - if (write(1, buffer, info.qc_xsize * info.qc_ysize) < 0) { - perror("write"); - exit(1); - } + if (write(1, buffer, info.qc_xsize * info.qc_ysize) < 0) + err(1, "write"); + return(0); } diff --git a/usr.sbin/qcamcontrol/qcamtime/qcamtime.c b/usr.sbin/qcamcontrol/qcamtime/qcamtime.c index 5ed58a1..d8a32f0 100644 --- a/usr.sbin/qcamcontrol/qcamtime/qcamtime.c +++ b/usr.sbin/qcamcontrol/qcamtime/qcamtime.c @@ -6,11 +6,13 @@ * Paul Traina, Feburary 1996 */ +#include <err.h> +#include <nlist.h> +#include <paths.h> #include <stdio.h> #include <stdlib.h> +#include <unistd.h> #include <sys/fcntl.h> -#include <paths.h> -#include <nlist.h> #include <machine/qcam.h> @@ -32,21 +34,15 @@ getaddrs(void) int i; if (kmem < 0) { - if ((kmem = open(_PATH_KMEM, 0, 0)) < 0) { - perror("open kmem"); - exit(1); - } + if ((kmem = open(_PATH_KMEM, 0, 0)) < 0) + err(1, "open kmem"); (void) fcntl(kmem, F_SETFD, 1); for (i = 0; i < MAX_SYMBOLS; i++) { - if (nlist("/kernel", &names[i]) < 0) { - perror("nlist"); - exit(1); - } - if (names[i].n_value == 0) { - fprintf(stderr, "couldn't find names[%d]\n", i); - exit(1); - } + if (nlist("/kernel", &names[i]) < 0) + err(1, "nlist"); + if (names[i].n_value == 0) + errx(1, "couldn't find names[%d]", i); } } } @@ -54,22 +50,14 @@ getaddrs(void) void getdata(void) { - if (lseek(kmem, (off_t) names[0].n_value, SEEK_SET) < 0) { - perror("lseek high"); - exit(1); - } - if (read(kmem, (u_short *) high_times, sizeof(high_times)) < 0) { - perror("read high"); - exit(1); - } - if (lseek(kmem, (off_t) names[1].n_value, SEEK_SET) < 0) { - perror("lseek low"); - exit(1); - } - if (read(kmem, (u_short *) low_times, sizeof(low_times)) < 0) { - perror("read low"); - exit(1); - } + if (lseek(kmem, (off_t) names[0].n_value, SEEK_SET) < 0) + err(1, "lseek high"); + if (read(kmem, (u_short *) high_times, sizeof(high_times)) < 0) + err(1, "read high"); + if (lseek(kmem, (off_t) names[1].n_value, SEEK_SET) < 0) + err(1, "lseek low"); + if (read(kmem, (u_short *) low_times, sizeof(low_times)) < 0) + err(1, "read low"); } @@ -99,13 +87,15 @@ printdata(u_short * p, int length) } else i += 16; } + return(0); } -void +int main(void) { getaddrs(); getdata(); printdata(high_times, FBUFSIZE); printdata(low_times, FBUFSIZE); + return(0); } diff --git a/usr.sbin/quot/quot.8 b/usr.sbin/quot/quot.8 index 98d09d4..0e479ee 100644 --- a/usr.sbin/quot/quot.8 +++ b/usr.sbin/quot/quot.8 @@ -27,7 +27,7 @@ .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $Id: quot.8,v 1.6 1997/02/22 16:12:38 peter Exp $ +.\" $Id: quot.8,v 1.7 1997/09/18 06:54:36 charnier Exp $ .\" .Dd February 8, 1994 .Dt QUOT 8 @@ -44,7 +44,7 @@ is used to gather statistics about the disk usage for each local user. .Pp The following options are available: -.Bl -tag -width Ds +.Bl -tag -width indent .It Fl a Include statistics for all mounted filesystems. .It Fl c @@ -97,5 +97,7 @@ ncheck does not exist in FreeBSD.. :-) .Xr mount 8 .Sh HISTORY This implementation of -.Nm quot -is by Wolfgang Solfrank / TooLs GmbH. +.Nm +is by +.An Wolfgang Solfrank +/ TooLs GmbH. diff --git a/usr.sbin/quot/quot.c b/usr.sbin/quot/quot.c index a5a042a..64fdb28 100644 --- a/usr.sbin/quot/quot.c +++ b/usr.sbin/quot/quot.c @@ -30,7 +30,8 @@ */ #ifndef lint -static char rcsid[] = "$Id: quot.c,v 1.5 1997/02/22 16:12:39 peter Exp $"; +static const char rcsid[] = + "$Id: quot.c,v 1.6 1997/08/13 12:09:48 jkh Exp $"; #endif /* not lint */ #include <sys/param.h> @@ -40,17 +41,20 @@ static char rcsid[] = "$Id: quot.c,v 1.5 1997/02/22 16:12:39 peter Exp $"; #include <ufs/ufs/quota.h> #include <ufs/ufs/inode.h> +#include <err.h> +#include <fcntl.h> +#include <errno.h> +#include <pwd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> -#include <errno.h> -#include <pwd.h> +#include <unistd.h> /* some flags of what to do: */ static char estimate; static char count; static char unused; -static int (*func)(); +static void (*func)(); static long blocksize; static char *header; static int headerlen; @@ -72,7 +76,8 @@ static int headerlen; #define INOCNT(fs) ((fs)->fs_ipg) #define INOSZ(fs) (sizeof(struct dinode) * INOCNT(fs)) -static struct dinode *get_inode(fd,super,ino) +static struct dinode * +get_inode(fd,super,ino) struct fs *super; ino_t ino; { @@ -89,16 +94,12 @@ static struct dinode *get_inode(fd,super,ino) if (!ip || ino < last || ino >= last + INOCNT(super)) { if (!ip - && !(ip = (struct dinode *)malloc(INOSZ(super)))) { - perror("allocate inodes"); - exit(1); - } + && !(ip = (struct dinode *)malloc(INOSZ(super)))) + errx(1, "allocate inodes"); last = (ino / INOCNT(super)) * INOCNT(super); if (lseek(fd, (off_t)ino_to_fsba(super, last) << super->fs_fshift, 0) < (off_t)0 - || read(fd,ip,INOSZ(super)) != INOSZ(super)) { - perror("read inodes"); - exit(1); - } + || read(fd,ip,INOSZ(super)) != INOSZ(super)) + err(1, "read inodes"); } return ip + ino % INOCNT(super); @@ -110,7 +111,7 @@ static struct dinode *get_inode(fd,super,ino) #define actualblocks(super,ip) ((ip)->di_blocks) #endif -static virtualblocks(super,ip) +static int virtualblocks(super,ip) struct fs *super; struct dinode *ip; { @@ -144,7 +145,8 @@ static virtualblocks(super,ip) #endif /* COMPAT */ } -static isfree(ip) +static int +isfree(ip) struct dinode *ip; { #ifdef COMPAT @@ -174,7 +176,8 @@ static struct user { } *users; static int nusers; -static inituser() +static void +inituser() { register i; register struct user *usr; @@ -182,10 +185,8 @@ static inituser() if (!nusers) { nusers = 8; if (!(users = - (struct user *)calloc(nusers,sizeof(struct user)))) { - perror("allocate users"); - exit(1); - } + (struct user *)calloc(nusers,sizeof(struct user)))) + errx(1, "allocate users"); } else { for (usr = users, i = nusers; --i >= 0; usr++) { usr->space = usr->spc30 = usr->spc60 = usr->spc90 = 0; @@ -194,7 +195,8 @@ static inituser() } } -static usrrehash() +static void +usrrehash() { register i; register struct user *usr, *usrn; @@ -202,10 +204,8 @@ static usrrehash() svusr = users; nusers <<= 1; - if (!(users = (struct user *)calloc(nusers,sizeof(struct user)))) { - perror("allocate users"); - exit(1); - } + if (!(users = (struct user *)calloc(nusers,sizeof(struct user)))) + errx(1, "allocate users"); for (usr = svusr, i = nusers >> 1; --i >= 0; usr++) { for (usrn = users + (usr->uid&(nusers - 1)); usrn->name; usrn--) { @@ -216,7 +216,8 @@ static usrrehash() } } -static struct user *user(uid) +static struct user * +user(uid) uid_t uid; { register struct user *usr; @@ -230,17 +231,15 @@ static struct user *user(uid) usr->uid = uid; if (!(pwd = getpwuid(uid))) { - if (usr->name = (char *)malloc(7)) + if ((usr->name = (char *)malloc(7))) sprintf(usr->name,"#%d",uid); } else { - if (usr->name = (char *) - malloc(strlen(pwd->pw_name) + 1)) + if ((usr->name = (char *) + malloc(strlen(pwd->pw_name) + 1))) strcpy(usr->name,pwd->pw_name); } - if (!usr->name) { - perror("allocate users"); - exit(1); - } + if (!usr->name) + errx(1, "allocate users"); return usr; @@ -254,7 +253,8 @@ static struct user *user(uid) } } -static cmpusers(u1,u2) +static int +cmpusers(u1,u2) struct user *u1, *u2; { return u2->space - u1->space; @@ -263,7 +263,8 @@ static cmpusers(u1,u2) #define sortusers(users) (qsort((users),nusers,sizeof(struct user), \ cmpusers)) -static uses(uid,blks,act) +static void +uses(uid,blks,act) uid_t uid; daddr_t blks; time_t act; @@ -298,7 +299,8 @@ struct fsizes { daddr_t fsz_sz[FSZCNT]; } *fsizes; -static initfsizes() +static void +initfsizes() { register struct fsizes *fp; register i; @@ -311,7 +313,8 @@ static initfsizes() } } -static dofsizes(fd,super,name) +static void +dofsizes(fd,super,name) struct fs *super; char *name; { @@ -323,10 +326,8 @@ static dofsizes(fd,super,name) maxino = super->fs_ncg * super->fs_ipg - 1; #ifdef COMPAT - if (!(fsizes = (struct fsizes *)malloc(sizeof(struct fsizes)))) { - perror("alloc fsize structure"); - exit(1); - } + if (!(fsizes = (struct fsizes *)malloc(sizeof(struct fsizes)))) + errx(1, "alloc fsize structure"); #endif /* COMPAT */ for (inode = 0; inode < maxino; inode++) { errno = 0; @@ -350,16 +351,14 @@ static dofsizes(fd,super,name) } #else /* COMPAT */ ksz = SIZE(sz); - for (fsp = &fsizes; fp = *fsp; fsp = &fp->fsz_next) { + for (fsp = &fsizes; (fp = *fsp); fsp = &fp->fsz_next) { if (ksz < fp->fsz_last) break; } if (!fp || ksz < fp->fsz_first) { if (!(fp = (struct fsizes *) - malloc(sizeof(struct fsizes)))) { - perror("alloc fsize structure"); - exit(1); - } + malloc(sizeof(struct fsizes)))) + errx(1, "alloc fsize structure"); fp->fsz_next = *fsp; *fsp = fp; fp->fsz_first = (ksz / FSZCNT) * FSZCNT; @@ -373,8 +372,7 @@ static dofsizes(fd,super,name) fp->fsz_sz[ksz % FSZCNT] += sz; #endif /* COMPAT */ } else if (errno) { - perror(name); - exit(1); + err(1, "%s", name); } } sz = 0; @@ -388,7 +386,8 @@ static dofsizes(fd,super,name) } } -static douser(fd,super,name) +static void +douser(fd,super,name) struct fs *super; char *name; { @@ -407,14 +406,11 @@ static douser(fd,super,name) actualblocks(super,ip), ip->di_atime); else if (errno) { - perror(name); - exit(1); + err(1, "%s", name); } } - if (!(usrs = (struct user *)malloc(nusers * sizeof(struct user)))) { - perror("allocate users"); - exit(1); - } + if (!(usrs = (struct user *)malloc(nusers * sizeof(struct user)))) + errx(1, "allocate users"); bcopy(users,usrs,nusers * sizeof(struct user)); sortusers(usrs); for (usr = usrs, n = nusers; --n >= 0 && usr->count; usr++) { @@ -432,7 +428,8 @@ static douser(fd,super,name) free(usrs); } -static donames(fd,super,name) +static void +donames(fd,super,name) struct fs *super; char *name; { @@ -449,7 +446,7 @@ static donames(fd,super,name) inode1 = -1; while (scanf("%d",&inode) == 1) { if (inode < 0 || inode > maxino) { - fprintf(stderr,"illegal inode %d\n",inode); + warnx("illegal inode %d",inode); return; } errno = 0; @@ -467,8 +464,7 @@ static donames(fd,super,name) inode1 = inode; } else { if (errno) { - perror(name); - exit(1); + err(1, "%s", name); } /* skip this line */ while ((c = getchar()) != EOF && c != '\n'); @@ -478,18 +474,20 @@ static donames(fd,super,name) } } -static usage() +static void +usage() { #ifdef COMPAT - fprintf(stderr,"Usage: quot [-nfcvha] [filesystem ...]\n"); + fprintf(stderr,"usage: quot [-nfcvha] [filesystem ...]\n"); #else /* COMPAT */ - fprintf(stderr,"Usage: quot [ -acfhknv ] [ filesystem ... ]\n"); + fprintf(stderr,"usage: quot [-acfhknv] [ filesystem ... ]\n"); #endif /* COMPAT */ exit(1); } static char superblock[SBSIZE]; +void quot(name,mp) char *name, *mp; { @@ -501,12 +499,12 @@ quot(name,mp) if ((fd = open(name,0)) < 0 || lseek(fd,SBOFF,0) != SBOFF || read(fd,superblock,SBSIZE) != SBSIZE) { - perror(name); + warn("%s", name); close(fd); return; } if (((struct fs *)superblock)->fs_magic != FS_MAGIC) { - fprintf(stderr,"%s: not a BSD filesystem\n",name); + warnx("%s: not a BSD filesystem",name); close(fd); return; } @@ -518,14 +516,13 @@ quot(name,mp) close(fd); } -int main(argc,argv) +int +main(argc,argv) char **argv; { - int fd; char all = 0; - FILE *fp; struct statfs *mp; - struct vfsconf vfc, *vfsp; + struct vfsconf *vfsp; char dev[MNAMELEN + 1]; char *nm; int cnt; @@ -568,13 +565,11 @@ int main(argc,argv) if (all) { cnt = getmntinfo(&mp,MNT_NOWAIT); vfsp = getvfsbyname("ufs"); - if (vfsp == NULL) { - fprintf(stderr, "cannot find ufs/ffs filesystem type!\n"); - exit(1); - } + if (vfsp == NULL) + errx(1, "cannot find ufs/ffs filesystem type!"); for (; --cnt >= 0; mp++) { if (mp->f_type == vfsp->vfc_index) { - if (nm = strrchr(mp->f_mntfromname,'/')) { + if ((nm = strrchr(mp->f_mntfromname,'/'))) { sprintf(dev,"/dev/r%s",nm + 1); nm = dev; } else |