Initial import from FreeBSD RELENG_4:
[dragonfly.git] / usr.sbin / pcvt / set2061 / main.c
1 /*
2  * Copyright (c) 1994 Hellmuth Michaelis
3  *
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  * 3. All advertising materials mentioning features or use of this software
15  *    must display the following acknowledgement:
16  *      This product includes software developed by
17  *      Hellmuth Michaelis
18  * 4. The name authors may not be used to endorse or promote products
19  *    derived from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
22  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
23  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
24  * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
26  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  *
32  */
33
34 static char *id =
35         "@(#)set2061.c, 1.00, Last Edit-Date: [Sun Jan 15 19:52:05 1995]";
36
37 /*---------------------------------------------------------------------------*
38  *
39  *      history:
40  *
41  *      -hm     start using 132 columns on my Elsa Winner
42  *
43  *---------------------------------------------------------------------------*/
44
45 #include <stdio.h>
46 #include <fcntl.h>
47 #include <machine/pcvt_ioctl.h>
48
49 #define DEFAULTFD 0
50
51 void AltICD2061SetClock(long frequency, int select);
52
53 main(argc,argv)
54 int argc;
55 char *argv[];
56 {
57         extern int optind;
58         extern int opterr;
59         extern char *optarg;
60
61         int fd;
62         int c;
63         long freq = -1;
64         int no = -1;
65
66         while( (c = getopt(argc, argv, "f:n:")) != -1)
67         {
68                 switch(c)
69                 {
70                         case 'f':
71                                 freq = atoi(optarg);
72                                 break;
73
74                         case 'n':
75                                 no = atoi(optarg);
76                                 break;
77
78                         case '?':
79                         default:
80                                 usage();
81                                 break;
82                 }
83         }
84
85         if(freq == -1 || no == -1)
86                 usage();
87
88         if((fd = open("/dev/console", O_RDONLY)) < 0)
89                 fd = DEFAULTFD;
90
91         if(ioctl(fd, KDENABIO, 0) < 0)
92         {
93                 perror("ioctl(KDENABIO)");
94                 return 1;
95         }
96
97         AltICD2061SetClock(freq, no);
98
99         (void)ioctl(fd, KDDISABIO, 0);
100
101         exit(0);
102 }
103
104 usage()
105 {
106         fprintf(stderr,"\nset2061 - program the ICD2061 video clock chip\n");
107         fprintf(stderr,"usage: set2061 -f <freq> -n <no>\n");
108         fprintf(stderr,"       -f <freq>     frequency in Hz\n");
109         fprintf(stderr,"       -n <no>       clock generator number\n");
110         exit(1);
111 }
112