2 # $NetBSD: modelines2c.awk,v 1.3 2006/05/09 17:51:03 gdamore Exp $
4 # Copyright (c) 2006 Itronix Inc.
7 # Written by Garrett D'Amore for Itronix Inc.
9 # Redistribution and use in source and binary forms, with or without
10 # modification, are permitted provided that the following conditions
12 # 1. Redistributions of source code must retain the above copyright
13 # notice, this list of conditions and the following disclaimer.
14 # 2. Redistributions in binary form must reproduce the above copyright
15 # notice, this list of conditions and the following disclaimer in the
16 # documentation and/or other materials provided with the distribution.
17 # 3. The name of Itronix Inc. may not be used to endorse
18 # or promote products derived from this software without specific
19 # prior written permission.
21 # THIS SOFTWARE IS PROVIDED BY ITRONIX INC. ``AS IS'' AND
22 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
23 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ITRONIX INC. BE LIABLE FOR ANY
25 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
28 # ON ANY THEORY OF LIABILITY, WHETHER IN
29 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 # POSSIBILITY OF SUCH DAMAGE.
43 printf("/*\t$NetBSD" "$\t*/\n\n");
45 printf(" * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.\n");
47 printf(" * generated from:\n");
48 printf(" *\t%s\n", VERSION
);
51 printf("#include <sys/cdefs.h>\n");
52 printf("__KERNEL_RCSID(0, \"$NetBSD" "$\");\n\n");
54 printf("#include <dev/videomode/videomode.h>\n\n");
57 printf(" * These macros help the modelines below fit on one line.\n");
59 printf("#define HP VID_PHSYNC\n");
60 printf("#define HN VID_NHSYNC\n");
61 printf("#define VP VID_PVSYNC\n");
62 printf("#define VN VID_NVSYNC\n");
63 printf("#define I VID_INTERLACE\n");
64 printf("#define DS VID_DBLSCAN\n");
67 printf("#define M(nm,hr,vr,clk,hs,he,ht,vs,ve,vt,f) \\\n");
68 printf("\t{ clk, hr, hs, he, ht, vr, vs, ve, vt, f, nm } \n\n");
70 printf("const struct videomode videomode_list[] = {\n");
101 if ($
14 ~
"[Ii][Nn][Tt][Ee][Rr][Ll][Aa][Cc][Ee]") {
107 # why the additional .1 to vrefresh? well it seems that awk likes to
108 # make some "rounding errors", and this will compensate
110 hrefresh=
(dotclock
* 1000000) / htotal
;
111 vrefresh= int
(((hrefresh
* ifactor
) / vtotal
) + .1);
113 modestr =
sprintf("%dx%dx%d%s", hdisplay
, vdisplay
, vrefresh
, iflag
);
115 # printf("/* %dx%d%s refresh %d Hz, hsync %d kHz */\n",
116 # hdisplay, vdisplay, iflag, vrefresh, hrefresh/1000);
117 printf("M(\"%s\",%d,%d,%d,%d,%d,%d,%d,%d,%d,%s),\n",
119 hdisplay
, vdisplay
, dotclock
* 1000,
120 hsyncstart
, hsyncend
, htotal
,
121 vsyncstart
, vsyncend
, vtotal
, hflags
"|" vflags iflags
);
123 modestr =
sprintf("%dx%dx%d%s",
124 hdisplay
/2 , vdisplay
/2, vrefresh
, iflag
);
126 dmodes
[nmodes
]=
sprintf("M(\"%s\",%d,%d,%d,%d,%d,%d,%d,%d,%d,%s),",
128 hdisplay
/2, vdisplay
/2, dotclock
* 1000 / 2,
129 hsyncstart
/2, hsyncend
/2, htotal
/2,
130 vsyncstart
/2, vsyncend
/2, vtotal
/2,
131 hflags
"|" vflags
"|DS" iflags
);
139 printf("\n/* Derived Double Scan Modes */\n\n");
141 for ( i =
0; i
< nmodes
; i
++ )
147 printf("const int videomode_count = %d;\n", nmodes
);