From b16b9e4656e7199c2aec74a4c8ebc7a875d3ba73 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Mon, 2 Feb 2015 15:02:49 +0100 Subject: massive reduction of unneeded files --- nx-X11/programs/Xserver/hw/sun/Imakefile | 90 - nx-X11/programs/Xserver/hw/sun/README | 118 - nx-X11/programs/Xserver/hw/sun/Xsun.man | 176 - nx-X11/programs/Xserver/hw/sun/circleset.h | 136 - nx-X11/programs/Xserver/hw/sun/constype.c | 216 - nx-X11/programs/Xserver/hw/sun/constype.man | 80 - nx-X11/programs/Xserver/hw/sun/kbd_mode.c | 155 - nx-X11/programs/Xserver/hw/sun/kbd_mode.man | 53 - nx-X11/programs/Xserver/hw/sun/sun.h | 446 -- nx-X11/programs/Xserver/hw/sun/sunCfb.c | 517 --- nx-X11/programs/Xserver/hw/sun/sunCfb24.c | 139 - nx-X11/programs/Xserver/hw/sun/sunCursor.c | 281 -- nx-X11/programs/Xserver/hw/sun/sunFbs.c | 259 -- nx-X11/programs/Xserver/hw/sun/sunGX.c | 2906 ------------ nx-X11/programs/Xserver/hw/sun/sunGX.h | 238 - nx-X11/programs/Xserver/hw/sun/sunInit.c | 960 ---- nx-X11/programs/Xserver/hw/sun/sunIo.c | 305 -- nx-X11/programs/Xserver/hw/sun/sunKbd.c | 1071 ----- nx-X11/programs/Xserver/hw/sun/sunKeyMap.c | 5797 ------------------------ nx-X11/programs/Xserver/hw/sun/sunMfb.c | 108 - nx-X11/programs/Xserver/hw/sun/sunMouse.c | 399 -- nx-X11/programs/Xserver/hw/sun/sunMultiDepth.c | 277 -- 22 files changed, 14727 deletions(-) delete mode 100644 nx-X11/programs/Xserver/hw/sun/Imakefile delete mode 100644 nx-X11/programs/Xserver/hw/sun/README delete mode 100644 nx-X11/programs/Xserver/hw/sun/Xsun.man delete mode 100644 nx-X11/programs/Xserver/hw/sun/circleset.h delete mode 100644 nx-X11/programs/Xserver/hw/sun/constype.c delete mode 100644 nx-X11/programs/Xserver/hw/sun/constype.man delete mode 100644 nx-X11/programs/Xserver/hw/sun/kbd_mode.c delete mode 100644 nx-X11/programs/Xserver/hw/sun/kbd_mode.man delete mode 100644 nx-X11/programs/Xserver/hw/sun/sun.h delete mode 100644 nx-X11/programs/Xserver/hw/sun/sunCfb.c delete mode 100644 nx-X11/programs/Xserver/hw/sun/sunCfb24.c delete mode 100644 nx-X11/programs/Xserver/hw/sun/sunCursor.c delete mode 100644 nx-X11/programs/Xserver/hw/sun/sunFbs.c delete mode 100644 nx-X11/programs/Xserver/hw/sun/sunGX.c delete mode 100644 nx-X11/programs/Xserver/hw/sun/sunGX.h delete mode 100644 nx-X11/programs/Xserver/hw/sun/sunInit.c delete mode 100644 nx-X11/programs/Xserver/hw/sun/sunIo.c delete mode 100644 nx-X11/programs/Xserver/hw/sun/sunKbd.c delete mode 100644 nx-X11/programs/Xserver/hw/sun/sunKeyMap.c delete mode 100644 nx-X11/programs/Xserver/hw/sun/sunMfb.c delete mode 100644 nx-X11/programs/Xserver/hw/sun/sunMouse.c delete mode 100644 nx-X11/programs/Xserver/hw/sun/sunMultiDepth.c (limited to 'nx-X11/programs/Xserver/hw/sun') diff --git a/nx-X11/programs/Xserver/hw/sun/Imakefile b/nx-X11/programs/Xserver/hw/sun/Imakefile deleted file mode 100644 index 24f607a0e..000000000 --- a/nx-X11/programs/Xserver/hw/sun/Imakefile +++ /dev/null @@ -1,90 +0,0 @@ -XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:48:29 cpqbld Exp $ - - - - -XCOMM $XFree86: xc/programs/Xserver/hw/sun/Imakefile,v 1.6 2001/04/16 20:57:04 herrb Exp $ - -#include - -SRCS1 = sunInit.c \ - sunCfb.c \ - sunCfb24.c \ - sunCursor.c \ - sunFbs.c \ - sunIo.c \ - sunKbd.c \ - sunMfb.c \ - sunMouse.c\ - sunKeyMap.c - -OBJS1 = sunCfb.o \ - sunCfb24.o \ - sunCursor.o \ - sunFbs.o \ - sunIo.o \ - sunKbd.o \ - sunMfb.o \ - sunMouse.o \ - sunKeyMap.o - -SRCS2 = sunGX.c -OBJS2 = sunGX.o - -#ifdef i386Architecture -SRCS3 = sunInit.c -OBJS3 = sunInit.o -#else -SRCS3 = sunInit.c sunInitExt.c \ - sunInitMono.c sunInExMono.c \ - sunInitMulti.c stubs.c -OBJS3 = sunInit.o sunInitExt.o \ - sunInitMono.o sunInExMono.o \ - sunInitMulti.o stubs.o - -DEFINES = $(OS_DEFINES) $(EXT_DEFINES) \ - -UXFree86LOADER -UXF86VIDMODE -UXFreeXDGA \ - -UXF86MISC -UXF86DRI -UXF86BIGFONT -#endif - -SRCS = $(SRCS1) $(SRCS2) $(SRCS3) kbd_mode.c constype.c - -OBJS = $(OBJS1) $(OBJS2) - - INCLUDES = -I. -I../.. -I../../mi -I../../mfb -I../../cfb -I../../cfb32 \ - -I../../include -I$(XINCLUDESRC) -I$(FONTINCSRC) -I$(EXTINCSRC) - LINTLIBS = ../../dix/llib-ldix.ln ../../os/llib-los.ln \ - ../mfb/llib-lmfb.ln ../mi/llib-lmi.ln ../cfb/llib-lcfb.ln - -NormalLibraryObjectRule() - -all:: $(OBJS3) kbd_mode constype - -lintlib: - -NormalLibraryTarget(sun,$(OBJS)) -NormalLintTarget($(SRCS1)) - -#ifndef i386Architecture -sunInExMono.o: $(ICONFIGFILES) -ObjectFromSpecialSource(sunInExMono,../../mi/miinitext, \ - -UPEXEXT -UGLXEXT -UXV -URENDER) -LinkFile(sunInitExt.c,../../mi/miinitext.c) -LinkSourceFile(stubs.c,../../Xi) -ObjectFromSpecialSource(sunInitMono,sunInit,-DSUNMAXDEPTH=1) -ObjectFromSpecialSource(sunInitMulti,sunInit,-DSUNMAXDEPTH=32) -#endif - -SingleProgramTarget(kbd_mode, kbd_mode.o,,) -SingleProgramTarget(constype, constype.o,,) -InstallProgram(kbd_mode,$(BINDIR)) -InstallProgram(constype,$(BINDIR)) -InstallManPage(kbd_mode,$(MANDIR)) -InstallManPage(constype,$(MANDIR)) -InstallManPage(Xsun,$(MANDIR)) -#ifndef i386Architecture -InstallManPageAliases(Xsun,$(MANDIR),XsunMono) -InstallManPageAliases(Xsun,$(MANDIR),Xsun24) -#endif - -DependTarget() diff --git a/nx-X11/programs/Xserver/hw/sun/README b/nx-X11/programs/Xserver/hw/sun/README deleted file mode 100644 index 87ba53584..000000000 --- a/nx-X11/programs/Xserver/hw/sun/README +++ /dev/null @@ -1,118 +0,0 @@ -A joint production of: - - Adam de Boor University of California, Berkeley - - David Rosenthal - Stuart Marks - Robin Schaufler - Mike Schwartz - Frances Ho - Geoff Lee - Mark Opperman Sun Microsystems - - Bob Scheifler MIT Laboratory for Computer Science - Keith Packard - -This version of the Sun X11 drivers uses ../mi, ../mfb and ../cfb to support -the following configurations: - - Sun/2 bw2 cg2/3/5 - Sun/3 bw2 cg2/3/4/5 - Sun/4 bw2 cg2/4 - SPARCstation cg3/6 - Sun/386i mono color - -The following configurations are NOT supported: - - Sun/1 bw1 cg1 (requires separate port) - Sun/2 gp (use /dev/cgtwo0) - Sun/3 gp (use /dev/cgtwo0) - Sun/4 gp (use /dev/cgtwo0) - -The mfb and cfb code has been substantially tuned for 1- and 8-bit framebuffers -(with code for both fast and slow cpu-to-memory ratios). It installs and runs -on these configurations under SunOS 3.2, 3.4, and 4.0. However, we must stress -that it is completely unsupported, and if you have problems installing or using -it you are on your own. - - -Things to check before building: - -1) config/sun.cf - set the SunOSMajorVersion and SunOSMinorVersion - parameters to the right values. - -2) config/Project.tmpl - check LIBDIR, FONTDIR, etc.; set - define LibDir, FontDir, etc. in site.def as required. - - - -Then build the system by: - -1) Go for it. In the top-level directory, type - - make World - - This takes about forty minutes on a 4/260, and somewhat longer - on other Suns. - - -2) Go for it. In the top-level directory, type - - make install - - Otherwise, you'll want to create a bunch of symbolic links to - the various executables and data files scattered throughout - the hierarchy. - - - -3) On the console, or from an rlogin connection, put whatever you - chose for BINDIR (in Imake.tmpl) in your search path, and then - start the server: - - xinit - or - xinit -- -dev /dev/??? [see below] - - If it's from the console, you probably want to redirect the - output thus: - - xinit >& /tmp/x11.out - -4) xinit should start up an xterm window that acts as a console. When - this xterm terminates, the xinit will kill the server. You can also - start up client programs from a terminal or rlogin, but you must - first set the DISPLAY environment variable: - - setenv DISPLAY unix:0 - xterm & - - -5) Make sure that you have special devices in /dev for the appropriate - framebuffer. See the manual page for Xsun for details or run the - constype program. VME systems require special .o files when more - than one of a particular frame buffer type is installed. - - -6) In general, Xsun auto-configures to use all the available framebuffers - (see the Xsun manual page). In some circumstances, you may need to - use the -dev switch on the command line to specify a specific device - to use. In particular, on the GP, GP+, and GP2, you'll need to - specify -dev /dev/cgtwo0 your xdm Xservers file or your xinit script. - - -7) To shut the server down, send it a Hangup or Terminate signal. - - -8) If X crashes, it will leave the keyboard in a funny state. There is a - program called "kbd_mode" that will reset the mode of the keyboard. - "kbd_mode -a" is the appropriate setting for the bare console, and - "kbd_mode -e" is the appropriate setting for running with SunWindows. - You may have to issue this command from a terminal or from an rlogin - connection. If you run from the bare console, you can give the - command - - xinit ; kbd_mode -a - - so that the keyboard mode will ALWAYS be set properly when the server - terminates. diff --git a/nx-X11/programs/Xserver/hw/sun/Xsun.man b/nx-X11/programs/Xserver/hw/sun/Xsun.man deleted file mode 100644 index 17c1a9773..000000000 --- a/nx-X11/programs/Xserver/hw/sun/Xsun.man +++ /dev/null @@ -1,176 +0,0 @@ -.\" $Xorg: Xsun.man,v 1.4 2001/02/09 02:04:43 xorgcvs Exp $ -.\" Copyright 1988 Sun Microsystems, Inc. -.\" Copyright 1993, 1994, 1998 The Open Group -.\" -.\" Permission to use, copy, modify, distribute, and sell this software and its -.\" documentation for any purpose is hereby granted without fee, provided that -.\" the above copyright notice appear in all copies and that both that -.\" copyright notice and this permission notice appear in supporting -.\" documentation. -.\" -.\" The above copyright notice and this permission notice shall be included -.\" in all copies or substantial portions of the Software. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -.\" IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR -.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -.\" OTHER DEALINGS IN THE SOFTWARE. -.\" -.\" Except as contained in this notice, the name of The Open Group shall -.\" not be used in advertising or otherwise to promote the sale, use or -.\" other dealings in this Software without prior written authorization -.\" from The Open Group. -.\" -.\" $XFree86: xc/programs/Xserver/hw/sun/Xsun.man,v 1.7 2001/01/27 18:20:40 dawes Exp $ -.\" -.TH XSUN 1 __xorgversion__ -.SH NAME -Xsun, XsunMono, Xsun24 \- Sun server for X Version 11 -.SH SYNOPSIS -.B Xsun -[ option ] ... -.SH DESCRIPTION -.I Xsun -is the server for Version 11 of the X window system on Sun hardware. -It will normally be started by the \fIxdm(1)\fP daemon or by a script -that runs the program \fIxinit(1)\fP. -.SH CONFIGURATIONS -.PP -.I XsunMono -supports the BW2 monochrome frame buffer. -.I Xsun -supports the CG2, CG3, CG4, and CG6 8-bit color frame buffers in -addition to the BW2 monochrome frame buffer. On Solaris 2.5 it also -supports the TCX as an 8-bit color frame buffer. -.I Xsun24 -supports the cgeight 24-bit color frame buffer in addition to the -8-bit color and monochrome frame buffers that -.I Xsun -supports. -.PP -If specific framebuffer device files aren't specified on the command -line with the \fI\-dev\fP switch or in the \fIXDEVICE\fP environment -variable, the server will search for all installed frame buffers and -will use all those that it finds. -.PP -Finally, if no specific framebuffers are found, the generic framebuffer -interface \fI/dev/fb\fP is used. -.PP -.SH KEYBOARDS -.PP -Xsun, Xsun24, and XsunMono support the Type-2, Type-3, and many variations -of the Type-4 and Type-5 keyboards. -.PP -Type-4 and Type-5 keyboards feature a key labeled \fIAltGraph\fP which -is a mode-shift key. The mode-shift key is used to generate the symbols -painted on the fronts of the keys. The mode-shift key works exactly like -the \fIShift\fP, \fIControl\fP, \fIAlt\fP, and \fI\fP keys. -.PP -The ten function keys on the left side of the Type-5 keyboard may be -considered as having L1..L10 painted on their fronts. Shift-AltGraph -will cause different keysyms to be generated for some keys, e.g. the -Type-5 \fISysRq\fP key. -.PP -For compatibility with Sun's X11/NeWS server, the F11 and F12 keys may -be made to generate the equivalent X11/NeWS keysyms by using mode-switch. -.PP -For backwards compatibility, the normal and mode-shifted keysyms for -the ten function keys on the left side of Type-4 and Type-5 keyboards -may be swapped via command line option. See \fI-swapLkeys\fP. -.PP -The X LEDs 1..4 correspond to the NumLock, ScrollLock, Compose, and -CapsLock LEDs respectively. Pressing the key once turns the corresponding -LED on. Pressing the key again turns the LED off. Turning an LED on or -off with e.g. 'xset [-]led [1234]' is equivalent to pressing the -corresponding key. -.SH OPTIONS -.PP -In addition to the normal server options described in the \fIXserver(1)\fP -manual page, \fIXsun\fP accepts the following command line switches: -.TP 8 -.B "\-ar1 \fImilliseconds\fP" -This option specifies amount of time in milliseconds before which a -pressed key should begin to autorepeat. -.TP 8 -.B "\-ar2 \fImilliseconds\fP" -This option specifies the interval in milliseconds between autorepeats -of pressed keys. -.TP 8 -.B \-swapLkeys -Swaps the normal keysyms for the function keys on the left side of -Type-4 and Type-5 keyboards with the alternate keysyms, i.e. the keysyms -painted on the front of the keys. -.TP 8 -.B \-flipPixels -The normal pixel values for white and black are 0 and 1 respectively. -When -flipPixels is specified these values are reversed. -.TP 8 -.B \-mono -When used with the \fBcgtwo\fP, this option indicates that the server -should emulate a monochrome framebuffer instead of the normal color -framebuffer. When used with the \fBcgfour\fP, this option indicates -that the monochrome screen should be numbered 0 and the color screen -numbered 1 (instead of the other way around). -.TP 8 -.B \-zaphod -This option disables switching between screens by sliding the mouse off -the left or right edges. With this disabled, a window manager function -must be used to switch between screens. -.TP 8 -.B \-debug -This option indicates that the server is being run from a debugger, and -that it should \fBnot\fP put its standard input, output and error files -into non-blocking mode. -.TP 8 -.B "\-dev \fIfilename[:filename]...\fP" -This option specifies the colon separated names of the framebuffer device -files to be used. -.TP 8 -.B "\-fbinfo -This option indicates that the server should enumerate the available -frame buffers that it will use. -.SH ENVIRONMENT -.TP 8 -\fBXDEVICE\fP -If present, and if no explicit \fB-dev\fP options are given, specifies -the (colon separated) list of display devices to use. -.SH "SEE ALSO" -.PP -X(__miscmansuffix__), Xserver(1), xdm(1), xinit(1) -.SH BUGS -The auto-configuration depends on there being appropriate special files -in the -.I /dev -directory for the framebuffers which are to be used. Extra entries can -confuse the server. For example, the X/160C in fact has the hardware -for a monochrome -.B bwtwo0 -on the CPU board. So if -.I /dev -has a special file for -.IR /dev/bwtwo0 , -the server will use it, even though there is no monitor attached to the -monochrome framebuffer. -The server will appear to start, but not to paint a cursor, because the -cursor is on the monochrome frame buffer. The solution is to remove the -.I /dev -entries for any device you don't have a monitor for. -.PP -There is a bug in pre-FCS operating systems for the Sun-4 which causes -the server to crash driving a \fBcgtwo\fP. -.PP -.SH AUTHORS -.TP 8 -U. C. Berkeley -Adam de Boor. -.TP 8 -Sun Microsystems -David Rosenthal, Stuart Marks, Robin Schaufler, Mike Schwartz, -Frances Ho, Geoff Lee, and Mark Opperman. -.TP 8 -MIT Laboratory for Computer Science -.br -Bob Scheifler, Keith Packard, Kaleb Keithley diff --git a/nx-X11/programs/Xserver/hw/sun/circleset.h b/nx-X11/programs/Xserver/hw/sun/circleset.h deleted file mode 100644 index c2c38e402..000000000 --- a/nx-X11/programs/Xserver/hw/sun/circleset.h +++ /dev/null @@ -1,136 +0,0 @@ -#ifdef DO_FILLED_ARCS -static unsigned short filled_arcs[16][16] = { -{ /* 1 */ -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 2 */ -B(0x4000),B(0xc000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 3 */ -B(0x0000),B(0x6000),B(0x6000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 4 */ -B(0x2000),B(0x7000),B(0xf000),B(0x7000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 5 */ -B(0x0000),B(0x7800),B(0x7800),B(0x7800),B(0x7800),B(0x0000),B(0x0000),B(0x0000), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 6 */ -B(0x1000),B(0x7c00),B(0x7c00),B(0xfc00),B(0x7c00),B(0x7c00),B(0x0000),B(0x0000), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 7 */ -B(0x0000),B(0x3c00),B(0x7e00),B(0x7e00),B(0x7e00),B(0x7e00),B(0x3c00),B(0x0000), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 8 */ -B(0x0800),B(0x3e00),B(0x7f00),B(0x7f00),B(0xff00),B(0x7f00),B(0x7f00),B(0x3e00), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 9 */ -B(0x0000),B(0x3f00),B(0x7f80),B(0x7f80),B(0x7f80),B(0x7f80),B(0x7f80),B(0x7f80), -B(0x3f00),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 10 */ -B(0x0400),B(0x3f00),B(0x7f80),B(0x7fc0),B(0x7fc0),B(0xffc0),B(0x7fc0),B(0x7fc0), -B(0x7f80),B(0x3f00),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 11 */ -B(0x0000),B(0x1f80),B(0x3fc0),B(0x7fe0),B(0x7fe0),B(0x7fe0),B(0x7fe0),B(0x7fe0), -B(0x7fe0),B(0x3fc0),B(0x1f80),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 12 */ -B(0x0200),B(0x1fc0),B(0x3fe0),B(0x7ff0),B(0x7ff0),B(0x7ff0),B(0xfff0),B(0x7ff0), -B(0x7ff0),B(0x7ff0),B(0x3fe0),B(0x1fc0),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 13 */ -B(0x0000),B(0x0fc0),B(0x3ff0),B(0x3ff0),B(0x7ff8),B(0x7ff8),B(0x7ff8),B(0x7ff8), -B(0x7ff8),B(0x7ff8),B(0x3ff0),B(0x3ff0),B(0x0fc0),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 14 */ -B(0x0100),B(0x0fe0),B(0x1ff0),B(0x3ff8),B(0x7ffc),B(0x7ffc),B(0x7ffc),B(0xfffc), -B(0x7ffc),B(0x7ffc),B(0x7ffc),B(0x3ff8),B(0x1ff0),B(0x0fe0),B(0x0000),B(0x0000), -}, -{ /* 15 */ -B(0x0000),B(0x0ff0),B(0x1ff8),B(0x3ffc),B(0x7ffe),B(0x7ffe),B(0x7ffe),B(0x7ffe), -B(0x7ffe),B(0x7ffe),B(0x7ffe),B(0x7ffe),B(0x3ffc),B(0x1ff8),B(0x0ff0),B(0x0000), -}, -{ /* 16 */ -B(0x0080),B(0x07f0),B(0x1ffc),B(0x3ffe),B(0x3ffe),B(0x7fff),B(0x7fff),B(0x7fff), -B(0xffff),B(0x7fff),B(0x7fff),B(0x7fff),B(0x3ffe),B(0x3ffe),B(0x1ffc),B(0x07f0), -}, -}; -#endif /* DO_FILLED_ARCS */ -#ifdef DO_OUTLINE_ARCS -static unsigned short outline0_arcs[16][16] = { -{ /* 1 */ -B(0xc000),B(0xc000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 2 */ -B(0xe000),B(0xa000),B(0xe000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 3 */ -B(0x6000),B(0x9000),B(0x9000),B(0x6000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 4 */ -B(0x7000),B(0x8800),B(0x8800),B(0x8800),B(0x7000),B(0x0000),B(0x0000),B(0x0000), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 5 */ -B(0x3000),B(0x4800),B(0x8400),B(0x8400),B(0x4800),B(0x3000),B(0x0000),B(0x0000), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 6 */ -B(0x3800),B(0x4400),B(0x8200),B(0x8200),B(0x8200),B(0x4400),B(0x3800),B(0x0000), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 7 */ -B(0x3c00),B(0x4200),B(0x8100),B(0x8100),B(0x8100),B(0x8100),B(0x4200),B(0x3c00), -B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 8 */ -B(0x1c00),B(0x6300),B(0x4100),B(0x8080),B(0x8080),B(0x8080),B(0x4100),B(0x6300), -B(0x1c00),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 9 */ -B(0x1e00),B(0x2100),B(0x4080),B(0x8040),B(0x8040),B(0x8040),B(0x8040),B(0x4080), -B(0x2100),B(0x1e00),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 10 */ -B(0x1f00),B(0x2080),B(0x4040),B(0x8020),B(0x8020),B(0x8020),B(0x8020),B(0x8020), -B(0x4040),B(0x2080),B(0x1f00),B(0x0000),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 11 */ -B(0x0f00),B(0x30c0),B(0x4020),B(0x4020),B(0x8010),B(0x8010),B(0x8010),B(0x8010), -B(0x4020),B(0x4020),B(0x30c0),B(0x0f00),B(0x0000),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 12 */ -B(0x0f80),B(0x1040),B(0x2020),B(0x4010),B(0x8008),B(0x8008),B(0x8008),B(0x8008), -B(0x8008),B(0x4010),B(0x2020),B(0x1040),B(0x0f80),B(0x0000),B(0x0000),B(0x0000), -}, -{ /* 13 */ -B(0x0780),B(0x1860),B(0x2010),B(0x4008),B(0x8004),B(0x8004),B(0x8004),B(0x8004), -B(0x8004),B(0x8004),B(0x4008),B(0x2010),B(0x1860),B(0x0780),B(0x0000),B(0x0000), -}, -{ /* 14 */ -B(0x07c0),B(0x1830),B(0x2008),B(0x4004),B(0x4004),B(0x8002),B(0x8002),B(0x8002), -B(0x8002),B(0x8002),B(0x4004),B(0x4004),B(0x2008),B(0x1830),B(0x07c0),B(0x0000), -}, -{ /* 15 */ -B(0x07e0),B(0x0810),B(0x300c),B(0x4002),B(0x4002),B(0x8001),B(0x8001),B(0x8001), -B(0x8001),B(0x8001),B(0x8001),B(0x4002),B(0x4002),B(0x300c),B(0x0810),B(0x07e0), -}, -{ /* 16 */ -B(0x03e0),B(0x0c18),B(0x1004),B(0x2002),B(0x4001),B(0x4001),B(0x8000),B(0x8000), -B(0x8000),B(0x8000),B(0x8000),B(0x4001),B(0x4001),B(0x2002),B(0x1004),B(0x0c18), -}, -}; -#endif /* DO_OUTLINE_ARCS */ diff --git a/nx-X11/programs/Xserver/hw/sun/constype.c b/nx-X11/programs/Xserver/hw/sun/constype.c deleted file mode 100644 index 06a6c345c..000000000 --- a/nx-X11/programs/Xserver/hw/sun/constype.c +++ /dev/null @@ -1,216 +0,0 @@ -/* $XdotOrg: xc/programs/Xserver/hw/sun/constype.c,v 1.3 2005/09/28 17:07:55 alanc Exp $ - * $Xorg: constype.c,v 1.3 2000/08/17 19:48:29 cpqbld Exp $ - * - * consoletype - utility to print out string identifying Sun console type - * - * Copyright 1988 SRI - * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of SRI not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. SRI makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * Author: Doug Moran, SRI - */ -/* $XFree86: xc/programs/Xserver/hw/sun/constype.c,v 3.8 2003/10/07 21:40:07 herrb Exp $ */ - -/* -SUN-SPOTS DIGEST Thursday, 17 March 1988 Volume 6 : Issue 31 - -Date: Wed, 2 Mar 88 14:50:26 PST -From: Doug Moran -Subject: Program to determine console type - -There have been several requests in this digest for programs to determine -the type of the console. Below is a program that I wrote to produce an -identifying string (I start suntools in my .login file and use this pgm to -determine which arguments to use). - -Caveat: my cluster has only a few of these monitor types, so the pgm has -not been fully tested. - -Note on coding style: the function wu_fbid is actually located in a local -library, accounting for what otherwise might appear to be a strange coding -style. -*/ - -#ifdef HAVE_CONFIG_H -# include "config.h" -#else -# if defined(SVR4) || defined(CSRG_BASED) -# define STDC_HEADERS 1 -# endif -# if defined(SVR4) || defined(__bsdi__) -# define HAVE_SYS_FBIO_H 1 -# if defined(SVR4) && defined(sun) -# define HAVE_SYS_VISUAL_IO_H 1 -# endif -# elif defined(CSRG_BASED) -# define HAVE_MACHINE_FBIO_H -# endif -#endif - -#include -#ifdef STDC_HEADERS -#include -#else -/* SunOS */ -#include -#endif -#include - -static int wu_fbid(const char *devname, char **fbname, int *fbtype); - -int -main (int argc, char **argv) -{ - int fbtype = -1; - char *fbname, *dev; - int print_num = 0; - int error; - - if (argc > 1 && argv[1][0] == '/') { - dev = argv[1]; - argc--; argv++; - } else - dev = "/dev/fb"; - error = wu_fbid(dev, &fbname, &fbtype ); - if (argc > 1 && strncmp (argv[1], "-num", strlen(argv[1])) == 0) - print_num = 1; - - printf ("%s", fbname ? fbname : "tty"); - if (print_num) { - printf (" %d", fbtype); - } - putchar ('\n'); - return error; -} - -#include -#include -#ifdef HAVE_SYS_FBIO_H -# include -# include -# ifdef HAVE_SYS_VISUAL_IO_H -/* VIS_GETIDENTIFIER ioctl added in Solaris 2.3 */ -# include -# endif -#else -# ifndef HAVE_MACHINE_FBIO_H -# include -# else -# include -# endif -#endif - -/* Sun doesn't see fit to update to reflect the addition - * of the TCX - */ -#define XFBTYPE_TCX 21 -#define XFBTYPE_LASTPLUSONE 22 - -/* decoding as of Release 3.4 : fbio.h 1.3 87/01/09 SMI */ - /* the convention for entries in this table is to translate the - * macros for frame buffer codes (in ) to short names - * thus: - * FBTYPE_SUNxBW becomes bwx - * FBTYPE_SUNxCOLOR becomes cgx - * FBTYPE_SUNxGP becomes gpx - * FBTYPE_NOTSUN[1-9] becomes ns[A-J] - */ -static char *decode_fb[] = { - "bw1", "cg1", - "bw2", "cg2", - "gp2", - "cg5", "cg3", - "cg8", "cg4", - "nsA", "nsB", "nsC", -#ifdef FBTYPE_SUNFAST_COLOR - "gx/cg6", -#endif -#ifdef FBTYPE_SUNROP_COLOR - "rop", -#endif -#ifdef FBTYPE_SUNFB_VIDEO - "vid", -#endif -#ifdef FBTYPE_SUNGIFB - "gifb", -#endif -#ifdef FBTYPE_SUNGPLAS - "plas", -#endif -#ifdef FBTYPE_SUNGP3 - "gp3/cg12", -#endif -#ifdef FBTYPE_SUNGT - "gt", -#endif -#ifdef FBTYPE_SUNLEO - "leo/zx", -#endif -#ifdef FBTYPE_MDICOLOR - "mdi/cg14", -#endif - }; - -static int -wu_fbid(const char* devname, char** fbname, int* fbtype) -{ - struct fbgattr fbattr; - int fd, ioctl_ret; -#ifdef VIS_GETIDENTIFIER - int vistype; - struct vis_identifier fbid; -#endif - - if ( (fd = open(devname, O_RDWR, 0)) == -1 ) { - *fbname = "unable to open fb"; - return 2; - } - -#ifdef VIS_GETIDENTIFIER - if ((vistype = ioctl(fd, VIS_GETIDENTIFIER, &fbid)) >= 0) { - *fbname = fbid.name; - *fbtype = vistype; - close(fd); - return 0; - } -#endif - - /* FBIOGATTR fails for early frame buffer types */ - if ((ioctl_ret = ioctl(fd,FBIOGATTR,&fbattr))<0) /*success=>0(false)*/ - ioctl_ret = ioctl(fd, FBIOGTYPE, &fbattr.fbtype); - close(fd); - if ( ioctl_ret == -1 ) { - *fbname = "ioctl on fb failed"; - return 2; - } - *fbtype = fbattr.fbtype.fb_type; - /* The binary is obsolete and needs to be re-compiled: - * the ioctl returned a value beyond what was possible - * when the program was compiled */ - if (fbattr.fbtype.fb_type>=FBTYPE_LASTPLUSONE) { - if (fbattr.fbtype.fb_type == XFBTYPE_TCX) { - *fbname = "tcx"; - return 0; - } else { - *fbname = "unk"; - return 1; - } - } - /* The source is obsolete. The table "decode_fb" does not - * have entries for some of the values returned by the ioctl. - * Compare to the entries in "decode_fb" */ - if ( decode_fb[fbattr.fbtype.fb_type] == NULL ) { - *fbname = "unk"; - return 1; - } - *fbname = decode_fb[fbattr.fbtype.fb_type]; - return 0; -} diff --git a/nx-X11/programs/Xserver/hw/sun/constype.man b/nx-X11/programs/Xserver/hw/sun/constype.man deleted file mode 100644 index f360825e3..000000000 --- a/nx-X11/programs/Xserver/hw/sun/constype.man +++ /dev/null @@ -1,80 +0,0 @@ -.\" $Xorg: constype.man,v 1.3 2000/08/17 19:48:29 cpqbld Exp $ -.\" $XdotOrg: xc/programs/Xserver/hw/sun/constype.man,v 1.3 2005/09/28 17:07:55 alanc Exp $ -.\" $XFree86$ -.\" -.TH CONSTYPE 1 __xorgversion__ -.SH NAME -constype \- print type of Sun console -.SH SYNOPSIS -.B "constype" -[ -.I device_name -] [ -.B \-num -] -.SH DESCRIPTION -.B constype -prints on the standard output the Sun code for the type of display -that the specified device is. -The types output include these: -.sp 2 -.in +0.5i -.nf -bw? Black and White, where ? is 1-4. (eg) 3-50s are bw2 -cg? Colour Graphics display, where ? is 1-6, 8, 12 -gp? Optional Graphics Processor board, where ? is 1-2 -ns? Not Sun display \(em where ? is A-J -.fi -.in -0.5i -.sp 2 -If the OS and device support the VIS_GETIDENTIFIER ioctl, the value -returned from the ioctl is the value printed by constype. Sample types -output for these include: -.sp 2 -.in +0.5i -.nf -SUNWffb Sun Creator 3D (ffb) Graphics Accelerator -SUNWm64 Sun PGX8, PGX24 or PGX64 Frame Buffer -SUNWtext Generic vgatext console for Solaris x86 graphics devices without specific kernel drivers -.fi -.in -0.5i -.sp 2 -This is useful in determining startup values and defaults for window -systems. -.LP -The -.I device_name -argument, if given, is the device to examine. -If not given, -.I /dev/fb -is used. -.LP -The -.B \-num -option causes -.I constype -to follow the type keyword with the numeric value of that type, -as returned by the FBIOGATTR or FBIOGTYPE ioctl and defined in fbio.h. -This is useful if the type is not recognized by the program. -.SH "EXIT STATUS" -The program exits with status 0 if it identified a known console type, -1 if the type was unknown, and 2 if the device could not be opened or -another error occurred. -.SH BUGS -Not tested on all frame buffer types -.SH "SEE ALSO" -.BR visual_io (7I) -.SH COPYRIGHT -Copyright 1988, SRI -.PP -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, provided -that the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation, and that the name of SRI not be used in advertising or -publicity pertaining to distribution of the software without specific, -written prior permission. SRI makes no representations about the -suitability of this software for any purpose. It is provided "as is" -without express or implied warranty. -.SH AUTHOR -Doug Moran diff --git a/nx-X11/programs/Xserver/hw/sun/kbd_mode.c b/nx-X11/programs/Xserver/hw/sun/kbd_mode.c deleted file mode 100644 index b59143ac8..000000000 --- a/nx-X11/programs/Xserver/hw/sun/kbd_mode.c +++ /dev/null @@ -1,155 +0,0 @@ -/* $Xorg: kbd_mode.c,v 1.3 2000/08/17 19:48:29 cpqbld Exp $ */ -/* $XdotOrg: xc/programs/Xserver/hw/sun/kbd_mode.c,v 1.3 2005/09/28 01:57:47 alanc Exp $ */ -/************************************************************ -Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this -software and its documentation for any purpose and without -fee is hereby granted, provided that the above copyright no- -tice appear in all copies and that both that copyright no- -tice and this permission notice appear in supporting docu- -mentation, and that the names of Sun or The Open Group -not be used in advertising or publicity pertaining to -distribution of the software without specific prior -written permission. Sun and The Open Group make no -representations about the suitability of this software for -any purpose. It is provided "as is" without any express or -implied warranty. - -SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT- -NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE LI- -ABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH -THE USE OR PERFORMANCE OF THIS SOFTWARE. - -********************************************************/ -/* $XFree86: kbd_mode.c,v 3.11 2002/10/23 16:23:36 tsi Exp $ */ - -/* -static char sccsid[] = "@(#)kbd_mode.c 7.1 87/04/13"; - */ - -/* - * Copyright 1986 by Sun Microsystems, Inc. - * - * kbd_mode: set keyboard encoding mode - */ - -#include -#include -#include -#if defined(SVR4) || defined(__SVR4) || defined(__bsdi__) -#include -#ifndef __bsdi__ -#include -#include -#else -#include -#include -#include -#endif -#else -#ifndef CSRG_BASED -#include -#include -#else -#include -#include -#endif -#endif -#include -#include -#include - -static void die(char*); -static void usage(void); -static int kbd_fd; - -int -main(argc, argv) - int argc; - char** argv; -{ - int code = 0, translate, direct = -1; - char led; - int click; - - if ((kbd_fd = open("/dev/kbd", O_RDONLY, 0)) < 0) { - die("Couldn't open /dev/kbd"); - } - argc--; argv++; - if (argc-- && **argv == '-') { - code = *(++*argv); - } else { - usage(); - } - switch (code) { - case 'a': - case 'A': - translate = TR_ASCII; - direct = 0; - break; - case 'e': - case 'E': - translate = TR_EVENT; - break; - case 'n': - case 'N': - translate = TR_NONE; - break; - case 'u': - case 'U': - translate = TR_UNTRANS_EVENT; - break; - default: - usage(); - } -#ifdef KIOCSLED - led = 0; - if (ioctl(kbd_fd, KIOCSLED, &led)) - die("Couldn't set LEDs"); -#endif -#ifdef KIOCCMD - click = KBD_CMD_NOCLICK; - if (ioctl(kbd_fd, KIOCCMD, &click)) - die("Couldn't set click"); -#endif - if (ioctl(kbd_fd, KIOCTRANS, (caddr_t) &translate)) - die("Couldn't set translation"); - if (direct != -1 && ioctl(kbd_fd, KIOCSDIRECT, (caddr_t) &direct)) - die("Couldn't set redirect"); - return 0; -} - -static void -die(char *msg) -{ - fprintf(stderr, "%s\n", msg); - exit(1); -} - -static void -usage(void) -{ - int translate; - - if (ioctl(kbd_fd, KIOCGTRANS, (caddr_t) &translate)) { - die("Couldn't inquire current translation"); - } - fprintf(stderr, "kbd_mode {-a | -e | -n | -u }\n"); - fprintf(stderr, "\tfor ascii, encoded (normal) SunView events,\n"); - fprintf(stderr, " \tnon-encoded, or unencoded SunView events, resp.\n"); - fprintf(stderr, "Current mode is %s.\n", - ( translate == 0 ? "n (non-translated bytes)" : - ( translate == 1 ? "a (ascii bytes)" : - ( translate == 2 ? "e (encoded events)" : - /* translate == 3 */ "u (unencoded events)")))); - exit(1); -} - - diff --git a/nx-X11/programs/Xserver/hw/sun/kbd_mode.man b/nx-X11/programs/Xserver/hw/sun/kbd_mode.man deleted file mode 100644 index 367b4fc9a..000000000 --- a/nx-X11/programs/Xserver/hw/sun/kbd_mode.man +++ /dev/null @@ -1,53 +0,0 @@ -.\" $Xorg: kbd_mode.man,v 1.4 2001/02/09 02:04:43 xorgcvs Exp $ -.\" Copyright 1987 Sun Microsystems, Inc. -.\" Copyright 1993, 1998 The Open Group -.\" -.\" Permission to use, copy, modify, distribute, and sell this software and its -.\" documentation for any purpose is hereby granted without fee, provided that -.\" the above copyright notice appear in all copies and that both that -.\" copyright notice and this permission notice appear in supporting -.\" documentation. -.\" -.\" The above copyright notice and this permission notice shall be included -.\" in all copies or substantial portions of the Software. -.\" -.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -.\" IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR -.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -.\" OTHER DEALINGS IN THE SOFTWARE. -.\" -.\" Except as contained in this notice, the name of The Open Group shall -.\" not be used in advertising or otherwise to promote the sale, use or -.\" other dealings in this Software without prior written authorization -.\" from The Open Group. -.\" -.\" $XFree86: xc/programs/Xserver/hw/sun/kbd_mode.man,v 1.6 2001/01/27 18:20:41 dawes Exp $ -.\" -.TH KBD_MODE 1 __xorgversion__ -.SH NAME -kbd_mode \- recover the Sun console keyboard -.SH SYNOPSIS -.B kbd_mode -[ -a -e -n -u ] -.SH DESCRIPTION -.I Kbd_mode -resets the Sun console keyboard to a rational state. -.SH OPTIONS -The following options are supported, see \fIkb(4S)\fP for details: -.TP 8 -.B \-a -Causes ASCII to be reported. -.TP 8 -.B \-e -Causes \fIFirm_events\fP to be reported. -.TP 8 -.B \-n -Causes up/down key codes to be reported. -.TP 8 -.B \-u -Causes undecoded keyboard values to be reported. -.SH SEE ALSO -kb(4S) diff --git a/nx-X11/programs/Xserver/hw/sun/sun.h b/nx-X11/programs/Xserver/hw/sun/sun.h deleted file mode 100644 index d01d0a1c2..000000000 --- a/nx-X11/programs/Xserver/hw/sun/sun.h +++ /dev/null @@ -1,446 +0,0 @@ - -/* $Xorg: sun.h,v 1.3 2000/08/17 19:48:29 cpqbld Exp $ */ - -/*- - * Copyright (c) 1987 by the Regents of the University of California - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies. The University of California - * makes no representations about the suitability of this - * software for any purpose. It is provided "as is" without - * express or implied warranty. - */ - -/* $XFree86: xc/programs/Xserver/hw/sun/sun.h,v 3.12 2001/07/25 15:05:01 dawes Exp $ */ - -#ifndef _SUN_H_ -#define _SUN_H_ - -/* X headers */ -#include -#undef index /* don't mangle silly Sun structure member names */ -#include -#include - -/* general system headers */ -#ifndef NOSTDHDRS -# include -#else -# include -extern char *getenv(); -#endif - -/* system headers common to both SunOS and Solaris */ -#include -#include -#include -#include -#include - -#ifdef SVR4 -# ifdef X_POSIX_C_SOURCE -# define _POSIX_C_SOURCE X_POSIX_C_SOURCE -# include -# undef _POSIX_C_SOURCE -# else -# define _POSIX_SOURCE -# include -# undef _POSIX_SOURCE -# endif -#endif - -#include - -#ifndef __bsdi__ -# ifndef CSRG_BASED -# ifndef i386 -# include -# else -# include -# endif -# endif -#else -# include -#endif - -#include -#include -#include - - -/* - * Sun specific headers Sun moved in Solaris, and are different for NetBSD. - * - * Even if only needed by one source file, I have put them here - * to simplify finding them... - */ -#ifdef SVR4 -# include -# include -# include -# include -# include -# include -# include -# define usleep(usec) poll((struct pollfd *) 0, (size_t) 0, usec / 1000) -#else -# ifndef CSRG_BASED -# include -# include -# include -# include -# include -# include -# include -extern int ioctl(); -extern int getrlimit(); -extern int setrlimit(); -extern int getpagesize(); -# else -# if defined(CSRG_BASED) && !defined(__bsdi__) -# include -# include -# include -# include -# endif -# ifdef __bsdi__ -# include -# include -# include -# include -# endif -# endif -#endif - -/* - * Sun doesn't see fit to add the TCX to - */ -#ifndef SVR4 -/* On SunOS 4.1.x the TCX pretends to be a CG3 */ -#define XFBTYPE_LASTPLUSONE FBTYPE_LASTPLUSONE -#else -#define XFBTYPE_TCX 21 -#define XFBTYPE_LASTPLUSONE 22 -#endif - -extern int gettimeofday(); - -/* - * Server specific headers - */ -#include "misc.h" -#undef abs /* don't munge function prototypes in headers, sigh */ -#include "scrnintstr.h" -#ifdef NEED_EVENTS -# include "inputstr.h" -#endif -#include "input.h" -#include "colormapst.h" -#include "colormap.h" -#include "cursorstr.h" -#include "cursor.h" -#include "dixstruct.h" -#include "dix.h" -#include "opaque.h" -#include "resource.h" -#include "servermd.h" -#include "windowstr.h" - -/* - * ddx specific headers - */ -#ifndef PSZ -#define PSZ 8 -#endif - -#include "mi/mibstore.h" -#include "mi/mipointer.h" - -extern int monitorResolution; - - -/* Frame buffer devices */ -#ifdef SVR4 -# define CGTWO0DEV "/dev/fbs/cgtwo0" -# define CGTWO1DEV "/dev/fbs/cgtwo1" -# define CGTWO2DEV "/dev/fbs/cgtwo2" -# define CGTWO3DEV "/dev/fbs/cgtwo3" -# define CGTHREE0DEV "/dev/fbs/cgthree0" -# define CGTHREE1DEV "/dev/fbs/cgthree1" -# define CGTHREE2DEV "/dev/fbs/cgthree2" -# define CGTHREE3DEV "/dev/fbs/cgthree3" -# define CGFOUR0DEV "/dev/fbs/cgfour0" -# define CGSIX0DEV "/dev/fbs/cgsix0" -# define CGSIX1DEV "/dev/fbs/cgsix1" -# define CGSIX2DEV "/dev/fbs/cgsix2" -# define CGSIX3DEV "/dev/fbs/cgsix3" -# define BWTWO0DEV "/dev/fbs/bwtwo0" -# define BWTWO1DEV "/dev/fbs/bwtwo1" -# define BWTWO2DEV "/dev/fbs/bwtwo2" -# define BWTWO3DEV "/dev/fbs/bwtwo3" -# define CGEIGHT0DEV "/dev/fbs/cgeight0" -# define TCX0DEV "/dev/fbs/tcx0" -#else -# define CGTWO0DEV "/dev/cgtwo0" -# define CGTWO1DEV "/dev/cgtwo1" -# define CGTWO2DEV "/dev/cgtwo2" -# define CGTWO3DEV "/dev/cgtwo3" -# define CGTHREE0DEV "/dev/cgthree0" -# define CGTHREE1DEV "/dev/cgthree1" -# define CGTHREE2DEV "/dev/cgthree2" -# define CGTHREE3DEV "/dev/cgthree3" -# define CGFOUR0DEV "/dev/cgfour0" -# define CGSIX0DEV "/dev/cgsix0" -# define CGSIX1DEV "/dev/cgsix1" -# define CGSIX2DEV "/dev/cgsix2" -# define CGSIX3DEV "/dev/cgsix3" -# define BWTWO0DEV "/dev/bwtwo0" -# define BWTWO1DEV "/dev/bwtwo1" -# define BWTWO2DEV "/dev/bwtwo2" -# define BWTWO3DEV "/dev/bwtwo3" -# define CGEIGHT0DEV "/dev/cgeight0" -#endif - -/* - * MAXEVENTS is the maximum number of events the mouse and keyboard functions - * will read on a given call to their GetEvents vectors. - */ -#define MAXEVENTS 32 - -/* - * Data private to any sun keyboard. - */ -typedef struct { - int fd; - int type; /* Type of keyboard */ - int layout; /* The layout of the keyboard */ - int click; /* kbd click save state */ - Leds leds; /* last known LED state */ -} sunKbdPrivRec, *sunKbdPrivPtr; - -extern sunKbdPrivRec sunKbdPriv; - -/* - * Data private to any sun pointer device. - */ -typedef struct { - int fd; - int bmask; /* last known button state */ -} sunPtrPrivRec, *sunPtrPrivPtr; - -extern sunPtrPrivRec sunPtrPriv; - -typedef struct { - BYTE key; - CARD8 modifiers; -} SunModmapRec; - -typedef struct { - int width, height; - Bool has_cursor; - CursorPtr pCursor; /* current cursor */ -} sunCursorRec, *sunCursorPtr; - -typedef struct { - ColormapPtr installedMap; - CloseScreenProcPtr CloseScreen; - void (*UpdateColormap)(); - void (*GetColormap)(); - sunCursorRec hardwareCursor; - Bool hasHardwareCursor; -} sunScreenRec, *sunScreenPtr; - -#define GetScreenPrivate(s) ((sunScreenPtr) ((s)->devPrivates[sunScreenIndex].ptr)) -#define SetupScreen(s) sunScreenPtr pPrivate = GetScreenPrivate(s) - -typedef struct { - unsigned char* fb; /* Frame buffer itself */ - int fd; /* frame buffer for ioctl()s, */ - struct fbtype info; /* Frame buffer characteristics */ - void (*EnterLeave)();/* screen switch */ - unsigned char* fbPriv; /* fbattr stuff, for the real type */ -} fbFd; - -typedef Bool (*sunFbInitProc)( - int /* screen */, - ScreenPtr /* pScreen */, - int /* argc */, - char** /* argv */ -); - -typedef struct { - sunFbInitProc init; /* init procedure for this fb */ - char* name; /* /usr/include/fbio names */ -} sunFbDataRec; - -#ifdef XKB -extern Bool noXkbExtension; -#endif - -extern Bool sunAutoRepeatHandlersInstalled; -extern long sunAutoRepeatInitiate; -extern long sunAutoRepeatDelay; -extern sunFbDataRec sunFbData[]; -extern fbFd sunFbs[]; -extern Bool sunSwapLkeys; -extern Bool sunFlipPixels; -extern Bool sunActiveZaphod; -extern Bool sunFbInfo; -extern Bool sunCG4Frob; -extern Bool sunNoGX; -extern int sunScreenIndex; -extern int* sunProtected; - -extern Bool sunCursorInitialize( - ScreenPtr /* pScreen */ -); - -extern void sunDisableCursor( - ScreenPtr /* pScreen */ -); - -extern int sunChangeKbdTranslation( - int /* fd */, - Bool /* makeTranslated */ -); - -extern void sunNonBlockConsoleOff( -#if defined(SVR4) || defined(CSRG_BASED) - void -#else - char* /* arg */ -#endif -); - -extern void sunEnqueueEvents( - void -); - -extern int sunGXInit( - ScreenPtr /* pScreen */, - fbFd* /* fb */ -); - -extern Bool sunSaveScreen( - ScreenPtr /* pScreen */, - int /* on */ -); - -extern Bool sunScreenInit( - ScreenPtr /* pScreen */ -); - -extern pointer sunMemoryMap( - size_t /* len */, - off_t /* off */, - int /* fd */ -); - -extern Bool sunScreenAllocate( - ScreenPtr /* pScreen */ -); - -extern Bool sunInitCommon( - int /* scrn */, - ScreenPtr /* pScrn */, - off_t /* offset */, - Bool (* /* init1 */)(), - void (* /* init2 */)(), - Bool (* /* cr_cm */)(), - Bool (* /* save */)(), - int /* fb_off */ -); - -extern Firm_event* sunKbdGetEvents( - int /* fd */, - Bool /* on */, - int* /* pNumEvents */, - Bool* /* pAgain */ -); - -extern Firm_event* sunMouseGetEvents( - int /* fd */, - Bool /* on */, - int* /* pNumEvents */, - Bool* /* pAgain */ -); - -extern void sunKbdEnqueueEvent( - DeviceIntPtr /* device */, - Firm_event* /* fe */ -); - -extern void sunMouseEnqueueEvent( - DeviceIntPtr /* device */, - Firm_event* /* fe */ -); - -extern int sunKbdProc( - DeviceIntPtr /* pKeyboard */, - int /* what */ -); - -extern int sunMouseProc( - DeviceIntPtr /* pMouse */, - int /* what */ -); - -extern void sunKbdWait( - void -); - -/*- - * TVTOMILLI(tv) - * Given a struct timeval, convert its time into milliseconds... - */ -#define TVTOMILLI(tv) (((tv).tv_usec/1000)+((tv).tv_sec*1000)) - -extern Bool sunCfbSetupScreen( - ScreenPtr /* pScreen */, - pointer /* pbits */, /* pointer to screen bitmap */ - int /* xsize */, /* in pixels */ - int /* ysize */, - int /* dpix */, /* dots per inch */ - int /* dpiy */, /* dots per inch */ - int /* width */, /* pixel width of frame buffer */ - int /* bpp */ /* bits per pixel of root */ -); - -extern Bool sunCfbFinishScreenInit( - ScreenPtr /* pScreen */, - pointer /* pbits */, /* pointer to screen bitmap */ - int /* xsize */, /* in pixels */ - int /* ysize */, - int /* dpix */, /* dots per inch */ - int /* dpiy */, /* dots per inch */ - int /* width */, /* pixel width of frame buffer */ - int /* bpp */ /* bits per pixel of root */ -); - -extern Bool sunCfbScreenInit( - ScreenPtr /* pScreen */, - pointer /* pbits */, /* pointer to screen bitmap */ - int /* xsize */, /* in pixels */ - int /* ysize */, - int /* dpix */, /* dots per inch */ - int /* dpiy */, /* dots per inch */ - int /* width */, /* pixel width of frame buffer */ - int /* bpp */ /* bits per pixel of root */ -); - -extern void sunInstallColormap( - ColormapPtr /* cmap */ -); - -extern void sunUninstallColormap( - ColormapPtr /* cmap */ -); - -extern int sunListInstalledColormaps( - ScreenPtr /* pScreen */, - Colormap* /* pCmapList */ -); - -#endif diff --git a/nx-X11/programs/Xserver/hw/sun/sunCfb.c b/nx-X11/programs/Xserver/hw/sun/sunCfb.c deleted file mode 100644 index 5791e1e82..000000000 --- a/nx-X11/programs/Xserver/hw/sun/sunCfb.c +++ /dev/null @@ -1,517 +0,0 @@ - -/* $Xorg: sunCfb.c,v 1.5 2001/02/09 02:04:43 xorgcvs Exp $ */ - -/* -Copyright 1990, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - */ - -/************************************************************ -Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this -software and its documentation for any purpose and without -fee is hereby granted, provided that the above copyright no- -tice appear in all copies and that both that copyright no- -tice and this permission notice appear in supporting docu- -mentation, and that the names of Sun or The Open Group -not be used in advertising or publicity pertaining to -distribution of the software without specific prior -written permission. Sun and The Open Group make no -representations about the suitability of this software for -any purpose. It is provided "as is" without any express or -implied warranty. - -SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT- -NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE LI- -ABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH -THE USE OR PERFORMANCE OF THIS SOFTWARE. - -********************************************************/ - -/* $XFree86: sunCfb.c,v 3.14 2001/12/14 19:59:42 dawes Exp $ */ - -/* - * Copyright 1987 by the Regents of the University of California - * Copyright 1987 by Adam de Boor, UC Berkeley - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies. The University of California - * makes no representations about the suitability of this - * software for any purpose. It is provided "as is" without - * express or implied warranty. - */ - -/****************************************************************/ -/* Modified from sunCG4C.c for X11R3 by Tom Jarmolowski */ -/****************************************************************/ - -/* - * Copyright 1991, 1992, 1993 Kaleb S. Keithley - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies. Kaleb S. Keithley makes no - * representations about the suitability of this software for - * any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include "sun.h" -#include "cfb/cfb.h" -#include "mi/miline.h" - -#define GXZEROLINEBIAS (OCTANT1 | OCTANT3 | OCTANT4 | OCTANT6) - -static void CGUpdateColormap(pScreen, dex, count, rmap, gmap, bmap) - ScreenPtr pScreen; - int dex, count; - u_char *rmap, *gmap, *bmap; -{ - struct fbcmap sunCmap; - - sunCmap.index = dex; - sunCmap.count = count; - sunCmap.red = &rmap[dex]; - sunCmap.green = &gmap[dex]; - sunCmap.blue = &bmap[dex]; - - if (ioctl(sunFbs[pScreen->myNum].fd, FBIOPUTCMAP, &sunCmap) < 0) { - Error("CGUpdateColormap"); - FatalError( "CGUpdateColormap: FBIOPUTCMAP failed\n" ); - } -} - -static void CGGetColormap(pScreen, dex, count, rmap, gmap, bmap) - ScreenPtr pScreen; - int dex, count; - u_char *rmap, *gmap, *bmap; -{ - struct fbcmap sunCmap; - - sunCmap.index = dex; - sunCmap.count = count; - sunCmap.red = &rmap[dex]; - sunCmap.green = &gmap[dex]; - sunCmap.blue = &bmap[dex]; - - if (ioctl(sunFbs[pScreen->myNum].fd, FBIOGETCMAP, &sunCmap) < 0) { - Error("CGGetColormap"); - FatalError( "CGGetColormap: FBIOGETCMAP failed\n" ); - } -} - -void sunInstallColormap(cmap) - ColormapPtr cmap; -{ - SetupScreen(cmap->pScreen); - register int i; - register Entry *pent; - register VisualPtr pVisual = cmap->pVisual; - u_char rmap[256], gmap[256], bmap[256]; - unsigned long rMask, gMask, bMask; - int oRed, oGreen, oBlue; - - if (cmap == pPrivate->installedMap) - return; - if (pPrivate->installedMap) - WalkTree(pPrivate->installedMap->pScreen, TellLostMap, - (pointer) &(pPrivate->installedMap->mid)); - if ((pVisual->class | DynamicClass) == DirectColor) { - if (pVisual->ColormapEntries < 256) { - rMask = pVisual->redMask; - gMask = pVisual->greenMask; - bMask = pVisual->blueMask; - oRed = pVisual->offsetRed; - oGreen = pVisual->offsetGreen; - oBlue = pVisual->offsetBlue; - } else { - rMask = gMask = bMask = 255; - oRed = oGreen = oBlue = 0; - } - for (i = 0; i < 256; i++) { - rmap[i] = cmap->red[(i & rMask) >> oRed].co.local.red >> 8; - gmap[i] = cmap->green[(i & gMask) >> oGreen].co.local.green >> 8; - bmap[i] = cmap->blue[(i & bMask) >> oBlue].co.local.blue >> 8; - } - } else { - (*pPrivate->GetColormap) (cmap->pScreen, 0, 256, rmap, gmap, bmap); - for (i = 0, pent = cmap->red; - i < pVisual->ColormapEntries; - i++, pent++) { - if (pent->fShared) { - rmap[i] = pent->co.shco.red->color >> 8; - gmap[i] = pent->co.shco.green->color >> 8; - bmap[i] = pent->co.shco.blue->color >> 8; - } - else if (pent->refcnt != 0) { - rmap[i] = pent->co.local.red >> 8; - gmap[i] = pent->co.local.green >> 8; - bmap[i] = pent->co.local.blue >> 8; - } - } - } - pPrivate->installedMap = cmap; - (*pPrivate->UpdateColormap) (cmap->pScreen, 0, 256, rmap, gmap, bmap); - WalkTree(cmap->pScreen, TellGainedMap, (pointer) &(cmap->mid)); -} - -void sunUninstallColormap(cmap) - ColormapPtr cmap; -{ - SetupScreen(cmap->pScreen); - if (cmap == pPrivate->installedMap) { - Colormap defMapID = cmap->pScreen->defColormap; - - if (cmap->mid != defMapID) { - ColormapPtr defMap = (ColormapPtr) LookupIDByType(defMapID, - RT_COLORMAP); - - if (defMap) - (*cmap->pScreen->InstallColormap)(defMap); - else - ErrorF("sunFbs: Can't find default colormap\n"); - } - } -} - -int sunListInstalledColormaps(pScreen, pCmapList) - ScreenPtr pScreen; - Colormap *pCmapList; -{ - SetupScreen(pScreen); - *pCmapList = pPrivate->installedMap->mid; - return (1); -} - -static void CGStoreColors(pmap, ndef, pdefs) - ColormapPtr pmap; - int ndef; - xColorItem *pdefs; -{ - SetupScreen(pmap->pScreen); - u_char rmap[256], gmap[256], bmap[256]; - xColorItem expanddefs[256]; - register int i; - - if (pPrivate->installedMap != NULL && pPrivate->installedMap != pmap) - return; - if ((pmap->pVisual->class | DynamicClass) == DirectColor) { - ndef = cfbExpandDirectColors(pmap, ndef, pdefs, expanddefs); - pdefs = expanddefs; - } - while (ndef--) { - i = pdefs->pixel; - rmap[i] = pdefs->red >> 8; - gmap[i] = pdefs->green >> 8; - bmap[i] = pdefs->blue >> 8; - (*pPrivate->UpdateColormap) (pmap->pScreen, i, 1, rmap, gmap, bmap); - pdefs++; - } -} - -static void CGScreenInit (pScreen) - ScreenPtr pScreen; -{ -#ifndef STATIC_COLOR /* { */ - SetupScreen (pScreen); - pScreen->InstallColormap = sunInstallColormap; - pScreen->UninstallColormap = sunUninstallColormap; - pScreen->ListInstalledColormaps = sunListInstalledColormaps; - pScreen->StoreColors = CGStoreColors; - pPrivate->UpdateColormap = CGUpdateColormap; - pPrivate->GetColormap = CGGetColormap; - if (sunFlipPixels) { - Pixel pixel = pScreen->whitePixel; - pScreen->whitePixel = pScreen->blackPixel; - pScreen->blackPixel = pixel; - } -#endif /* } */ -} - -static void checkMono (argc, argv) - int argc; - char** argv; -{ - int i; - - for (i = 1; i < argc; i++) - if (strcmp (argv[i], "-mono") == 0) - ErrorF ("-mono not appropriate for CG3/CG4/CG6\n"); -} - -/* - * CG3_MMAP_OFFSET is #defined in or - * on SunOS and Solaris respectively. Under Solaris, cg3var.h - * #includes a non-existent file, and causes the make to abort. Other - * systems may not have cg3var.h at all. Since all cg3var.h is needed - * for is this one #define, we'll just #define it here and let it go at that. - */ - -#define CG3_MMAP_OFFSET 0x04000000 - -Bool sunCG3Init (screen, pScreen, argc, argv) - int screen; /* what screen am I going to be */ - ScreenPtr pScreen; /* The Screen to initialize */ - int argc; /* The number of the Server's arguments. */ - char **argv; /* The arguments themselves. Don't change! */ -{ - checkMono (argc, argv); - sunFbs[screen].EnterLeave = (void (*)())NoopDDA; - return sunInitCommon (screen, pScreen, (off_t) CG3_MMAP_OFFSET, - sunCfbScreenInit, CGScreenInit, - cfbCreateDefColormap, sunSaveScreen, 0); -} - -Bool sunTCXInit (screen, pScreen, argc, argv) - int screen; /* what screen am I going to be */ - ScreenPtr pScreen; /* The Screen to initialize */ - int argc; /* The number of the Server's arguments. */ - char **argv; /* The arguments themselves. Don't change! */ -{ - checkMono (argc, argv); - sunFbs[screen].EnterLeave = (void (*)())NoopDDA; - return sunInitCommon (screen, pScreen, (off_t) 0, - sunCfbScreenInit, CGScreenInit, - cfbCreateDefColormap, sunSaveScreen, 0); -} - -#if !defined(i386) /* { */ - -#ifdef SVR4 /* { */ -#ifdef INCLUDE_CG2_HEADER /* { */ -#include -#endif /* } INCLUDE_CG2_HEADER */ -#else -#ifndef CSRG_BASED /* { */ -#include -#else -#if defined(__sparc__) || defined(__sparc) /* { */ -#if !defined(__bsdi__) -#include -#endif -#else -#include -#endif /* } */ -#endif /* } */ -#endif /* } */ - -#ifdef INCLUDE_CG2_HEADER -typedef struct { - struct cg2memfb mem; - struct cg2fb regs; -} *CG2Ptr; - -static void CG2UpdateColormap(pScreen, index, count, rmap, gmap,bmap) - ScreenPtr pScreen; - int index, count; - u_char *rmap, *gmap, *bmap; -{ - CG2Ptr fb = (CG2Ptr) sunFbs[pScreen->myNum].fb; - volatile struct cg2statusreg *regp = &fb->regs.status.reg; - - regp->update_cmap = 0; - while (count--) { - fb->regs.redmap[index] = rmap[index]; - fb->regs.greenmap[index] = gmap[index]; - fb->regs.bluemap[index] = bmap[index]; - index++; - } - regp->update_cmap = 1; -} - -static void CG2GetColormap(pScreen, index, count, rmap, gmap,bmap) - ScreenPtr pScreen; - int index, count; - u_char *rmap, *gmap, *bmap; -{ - CG2Ptr fb = (CG2Ptr) sunFbs[pScreen->myNum].fb; - - /* I don't even know if this works */ - while (count--) { - rmap[index] = fb->regs.redmap[index]; - gmap[index] = fb->regs.greenmap[index]; - bmap[index] = fb->regs.bluemap[index]; - index++; - } -} - -static Bool CG2SaveScreen (pScreen, on) - ScreenPtr pScreen; - int on; -{ - CG2Ptr fb = (CG2Ptr) sunFbs[pScreen->myNum].fb; - volatile struct cg2statusreg *regp = &fb->regs.status.reg; - - if (on != SCREEN_SAVER_FORCER) - regp->video_enab = (on == SCREEN_SAVER_ON) ? 0 : 1; - return TRUE; -} - -static void CG2ScreenInit (pScreen) - ScreenPtr pScreen; -{ - SetupScreen (pScreen); - CGScreenInit (pScreen); - pPrivate->UpdateColormap = CG2UpdateColormap; - pPrivate->GetColormap = CG2GetColormap; -} - -Bool sunCG2Init (screen, pScreen, argc, argv) - int screen; /* what screen am I going to be */ - ScreenPtr pScreen; /* The Screen to initialize */ - int argc; /* The number of the Server's arguments. */ - char** argv; /* The arguments themselves. Don't change! */ -{ - int i; - Bool ret; - Bool mono = FALSE; - - for (i = 1; i < argc; i++) - if (strcmp (argv[i], "-mono") == 0) - mono = TRUE; - - sunFbs[screen].EnterLeave = (void (*)())NoopDDA; - pScreen->SaveScreen = CG2SaveScreen; - if (mono) { - pScreen->whitePixel = 0; - pScreen->blackPixel = 1; - ret = sunInitCommon (screen, pScreen, (off_t) 0, - mfbScreenInit, NULL, - mfbCreateDefColormap, CG2SaveScreen, 0); - ((CG2Ptr) sunFbs[screen].fb)->regs.ppmask.reg = 1; - } else { - ret = sunInitCommon (screen, pScreen, (off_t) 0, - sunCfbScreenInit, CG2ScreenInit, - cfbCreateDefColormap, CG2SaveScreen, - (int) &((struct cg2memfb *) 0)->pixplane); - ((CG2Ptr) sunFbs[screen].fb)->regs.ppmask.reg = 0xFF; - } - return ret; -} -#endif /* INCLUDE_CG2_HEADER */ - -#define CG4_HEIGHT 900 -#define CG4_WIDTH 1152 - -#define CG4_MELEN (128*1024) - -typedef struct { - u_char mpixel[CG4_MELEN]; /* bit-per-pixel memory */ - u_char epixel[CG4_MELEN]; /* enable plane */ - u_char cpixel[CG4_HEIGHT][CG4_WIDTH]; /* byte-per-pixel memory */ -} *CG4Ptr; - -static void CG4Switch (pScreen, select) - ScreenPtr pScreen; - int select; -{ - CG4Ptr fb = (CG4Ptr) sunFbs[pScreen->myNum].fb; - - (void) memset ((char *)fb->epixel, select ? ~0 : 0, CG4_MELEN); -} - -Bool sunCG4Init (screen, pScreen, argc, argv) - int screen; /* what screen am I going to be */ - ScreenPtr pScreen; /* The Screen to initialize */ - int argc; /* The number of the Server's arguments. */ - char** argv; /* The arguments themselves. Don't change! */ -{ - checkMono (argc, argv); - if (sunCG4Frob) - sunFbs[screen].EnterLeave = (void (*)())NoopDDA; - else - sunFbs[screen].EnterLeave = CG4Switch; - return sunInitCommon (screen, pScreen, (off_t) 0, - sunCfbScreenInit, CGScreenInit, - cfbCreateDefColormap, sunSaveScreen, (int) ((CG4Ptr) 0)->cpixel); -} - -#ifdef FBTYPE_SUNFAST_COLOR /* { */ - -#define CG6_MMAP_OFFSET 0x70000000 -#define CG6_IMAGE_OFFSET 0x16000 - -Bool sunCG6Init (screen, pScreen, argc, argv) - int screen; /* The index of pScreen in the ScreenInfo */ - ScreenPtr pScreen; /* The Screen to initialize */ - int argc; /* The number of the Server's arguments. */ - char** argv; /* The arguments themselves. Don't change! */ -{ - pointer fb; - - checkMono (argc, argv); - if (!sunScreenAllocate (pScreen)) - return FALSE; - if (!sunFbs[screen].fb) { -/* Sun's VME, Sbus, and SVR4 drivers all return different values */ -#define FBSIZE (size_t) sunFbs[screen].info.fb_width * \ - sunFbs[screen].info.fb_height + CG6_IMAGE_OFFSET - if ((fb = sunMemoryMap (FBSIZE, - (off_t) CG6_MMAP_OFFSET, - sunFbs[screen].fd)) == NULL) - return FALSE; - sunFbs[screen].fb = fb; -#undef FBSIZE - } - sunFbs[screen].EnterLeave = (void (*)())NoopDDA; - if (!sunCfbSetupScreen (pScreen, - sunFbs[screen].fb + CG6_IMAGE_OFFSET, - sunFbs[screen].info.fb_width, - sunFbs[screen].info.fb_height, - monitorResolution, monitorResolution, - sunFbs[screen].info.fb_width, - sunFbs[screen].info.fb_depth)) - return FALSE; - if (sunNoGX == FALSE) { - if (!sunGXInit (pScreen, &sunFbs[screen])) - return FALSE; - } - if (!sunCfbFinishScreenInit(pScreen, - sunFbs[screen].fb + CG6_IMAGE_OFFSET, - sunFbs[screen].info.fb_width, - sunFbs[screen].info.fb_height, - monitorResolution, monitorResolution, - sunFbs[screen].info.fb_width, - sunFbs[screen].info.fb_depth)) - return FALSE; - if (sunNoGX == FALSE) { - miSetZeroLineBias(pScreen, GXZEROLINEBIAS); - } - miInitializeBackingStore(pScreen); - CGScreenInit (pScreen); - if (!sunScreenInit (pScreen)) - return FALSE; - sunSaveScreen (pScreen, SCREEN_SAVER_OFF); - return cfbCreateDefColormap(pScreen); -} -#endif /* } */ -#endif /* } */ diff --git a/nx-X11/programs/Xserver/hw/sun/sunCfb24.c b/nx-X11/programs/Xserver/hw/sun/sunCfb24.c deleted file mode 100644 index fa3a58e85..000000000 --- a/nx-X11/programs/Xserver/hw/sun/sunCfb24.c +++ /dev/null @@ -1,139 +0,0 @@ -/* $Xorg: sunCfb24.c,v 1.4 2001/02/09 02:04:43 xorgcvs Exp $ */ - -/* - -Copyright 1994, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X -CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings in -this Software without prior written authorization from The Open Group. - -*/ -/* $XFree86: xc/programs/Xserver/hw/sun/sunCfb24.c,v 1.2 2001/10/28 03:33:10 tsi Exp $ */ - -/* - * The CG8 is similar to the CG4 in that it has a mono plane, an enable - * plane, and a color plane. While the CG4 only has an 8-bit color - * plane the CG8 has a 24-bit color plane. - * - * If you have a CG4 you know that you can switch between the mono and - * the color screens merely by dragging the pointer off the edge of the - * screen, causing the other screen to be switched in. However this is - * the cause of some consternation on the part of those people who have - * both a CG4 and another frame buffer. - * - * Because of this problem, and some other considerations, I have chosen - * to ignore the mono plane of the CG8 in this code. - */ - -#define PSZ 32 -#include "sun.h" -#include "cfb/cfb.h" - -#define PIXPG_24BIT_COLOR 5 -#define PIXPG_24BIT_COLOR_INDEX (PIXPG_24BIT_COLOR << 25) -#define PR_FORCE_UPDATE (1 << 24) - -static void CG24UpdateColormap(pScreen, index, count, rmap, gmap, bmap) - ScreenPtr pScreen; - int index, count; - u_char *rmap, *gmap, *bmap; -{ - struct fbcmap sunCmap; - - sunCmap.index = index | PIXPG_24BIT_COLOR_INDEX | PR_FORCE_UPDATE; - sunCmap.count = count; - sunCmap.red = &rmap[index]; - sunCmap.green = &gmap[index]; - sunCmap.blue = &bmap[index]; - - if (ioctl(sunFbs[pScreen->myNum].fd, FBIOPUTCMAP, &sunCmap) == -1) - FatalError( "CG24UpdateColormap: FBIOPUTCMAP failed\n"); -} - -static void CG24StoreColors (pmap, ndef, pdefs) - ColormapPtr pmap; - int ndef; - xColorItem* pdefs; -{ - u_char rmap[256], gmap[256], bmap[256]; - SetupScreen (pmap->pScreen); - VisualPtr pVisual = pmap->pVisual; - int i; - - if (pPrivate->installedMap != NULL && pPrivate->installedMap != pmap) - return; - for (i = 0; i < 256; i++) { - rmap[i] = pmap->red[i].co.local.red >> 8; - gmap[i] = pmap->green[i].co.local.green >> 8; - bmap[i] = pmap->blue[i].co.local.blue >> 8; - } - while (ndef--) { - i = pdefs->pixel; - if (pdefs->flags & DoRed) - rmap[(i & pVisual->redMask) >> pVisual->offsetRed] = (pdefs->red >> 8); - if (pdefs->flags & DoGreen) - gmap[(i & pVisual->greenMask) >> pVisual->offsetGreen] = (pdefs->green >> 8); - if (pdefs->flags & DoBlue) - bmap[(i & pVisual->blueMask) >> pVisual->offsetBlue] = (pdefs->blue >> 8); - pdefs++; - } - CG24UpdateColormap (pmap->pScreen, 0, 256, rmap, gmap, bmap); -} - -#define CG8_COLOR_OFFSET 0x40000 - -static void CG24ScreenInit (pScreen) - ScreenPtr pScreen; -{ -#ifndef STATIC_COLOR - SetupScreen (pScreen); -#endif - int i; - - /* Make sure the overlay plane is disabled */ - for (i = 0; i < CG8_COLOR_OFFSET; i++) - sunFbs[pScreen->myNum].fb[i] = 0; - -#ifndef STATIC_COLOR - pScreen->InstallColormap = sunInstallColormap; - pScreen->UninstallColormap = sunUninstallColormap; - pScreen->ListInstalledColormaps = sunListInstalledColormaps; - pScreen->StoreColors = CG24StoreColors; - pPrivate->UpdateColormap = CG24UpdateColormap; - if (sunFlipPixels) { - Pixel pixel = pScreen->whitePixel; - pScreen->whitePixel = pScreen->blackPixel; - pScreen->blackPixel = pixel; - } -#endif -} - -Bool sunCG8Init (screen, pScreen, argc, argv) - int screen; /* what screen am I going to be */ - ScreenPtr pScreen; /* The Screen to initialize */ - int argc; /* The number of the Server's arguments. */ - char **argv; /* The arguments themselves. Don't change! */ -{ - sunFbs[screen].EnterLeave = (void (*)())NoopDDA; - return sunInitCommon (screen, pScreen, (off_t) 0, - cfb32ScreenInit, CG24ScreenInit, - cfbCreateDefColormap, sunSaveScreen, CG8_COLOR_OFFSET); -} - diff --git a/nx-X11/programs/Xserver/hw/sun/sunCursor.c b/nx-X11/programs/Xserver/hw/sun/sunCursor.c deleted file mode 100644 index 2d653c753..000000000 --- a/nx-X11/programs/Xserver/hw/sun/sunCursor.c +++ /dev/null @@ -1,281 +0,0 @@ -/* $Xorg: sunCursor.c,v 1.4 2001/02/09 02:04:43 xorgcvs Exp $ */ -/* - -Copyright 1988 Sun Microsystems, Inc. -Copyright 1993, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall -not be used in advertising or otherwise to promote the sale, use or -other dealings in this Software without prior written authorization -from The Open Group. - -*/ -/* $XFree86: xc/programs/Xserver/hw/sun/sunCursor.c,v 3.5 2001/12/14 19:59:43 dawes Exp $ */ - -/*- - * sunCursor.c -- - * Functions for maintaining the Sun software cursor... - * - */ - -#define NEED_EVENTS -#include "sun.h" -#include "cfb.h" -#include "mfb.h" - -#ifdef FBIOGCURMAX /* has hardware cursor kernel support */ - -#define GetCursorPrivate(s) (&(GetScreenPrivate(s)->hardwareCursor)) -#define SetupCursor(s) sunCursorPtr pCurPriv = GetCursorPrivate(s) - -static void sunLoadCursor(); - -static Bool -sunRealizeCursor (pScreen, pCursor) - ScreenPtr pScreen; - CursorPtr pCursor; -{ - SetupCursor(pScreen); - int x, y; - - /* miRecolorCursor does this */ - if (pCurPriv->pCursor == pCursor) - { - miPointerPosition (&x, &y); - sunLoadCursor (pScreen, pCursor, x, y); - } - return TRUE; -} - -static Bool -sunUnrealizeCursor (pScreen, pCursor) - ScreenPtr pScreen; - CursorPtr pCursor; -{ - return TRUE; -} - -static void -sunCursorRepad (pScreen, bits, src_bits, dst_bits, ptSrc, w, h) - ScreenPtr pScreen; - CursorBitsPtr bits; - unsigned char *src_bits, *dst_bits; - DDXPointPtr ptSrc; - int w, h; -{ - PixmapPtr src, dst; - BoxRec box; - RegionRec rgnDst; - - if (!(src = GetScratchPixmapHeader(pScreen, bits->width, bits->height, - /*bpp*/ 1, /*depth*/ 1, - PixmapBytePad(bits->width,1), src_bits))) - return; - if (!(dst = GetScratchPixmapHeader(pScreen, w, h, /*bpp*/ 1, /*depth*/ 1, - PixmapBytePad(w,1), dst_bits))) - { - FreeScratchPixmapHeader(src); - return; - } - box.x1 = 0; - box.y1 = 0; - box.x2 = w; - box.y2 = h; - REGION_INIT(pScreen, &rgnDst, &box, 1); - mfbDoBitblt(&src->drawable, &dst->drawable, GXcopy, &rgnDst, ptSrc); - REGION_UNINIT(pScreen, &rgnDst); - FreeScratchPixmapHeader(src); - FreeScratchPixmapHeader(dst); -} - -static void -sunLoadCursor (pScreen, pCursor, x, y) - ScreenPtr pScreen; - CursorPtr pCursor; - int x, y; -{ - SetupCursor(pScreen); - struct fbcursor fbcursor; - int w, h; - unsigned char r[2], g[2], b[2]; - DDXPointRec ptSrc; - unsigned char source_temp[1024], mask_temp[1024]; - - fbcursor.set = FB_CUR_SETALL; - fbcursor.enable = 1; - fbcursor.pos.x = x; - fbcursor.pos.y = y; - fbcursor.hot.x = pCursor->bits->xhot; - fbcursor.hot.y = pCursor->bits->yhot; - r[0] = pCursor->backRed >> 8; - g[0] = pCursor->backGreen >> 8; - b[0] = pCursor->backBlue >> 8; - r[1] = pCursor->foreRed >> 8; - g[1] = pCursor->foreGreen >> 8; - b[1] = pCursor->foreBlue >> 8; - fbcursor.cmap.index = 0; - fbcursor.cmap.count = 2; - fbcursor.cmap.red = r; - fbcursor.cmap.green = g; - fbcursor.cmap.blue = b; - fbcursor.image = (char *) pCursor->bits->source; - fbcursor.mask = (char *) pCursor->bits->mask; - w = pCursor->bits->width; - h = pCursor->bits->height; - if (w > pCurPriv->width || h > pCurPriv->height) { - ptSrc.x = 0; - ptSrc.y = 0; - if (w > pCurPriv->width) - w = pCurPriv->width; - if (h > pCurPriv->height) - h = pCurPriv->height; - sunCursorRepad (pScreen, pCursor->bits, pCursor->bits->source, - source_temp, &ptSrc, w, h); - sunCursorRepad (pScreen, pCursor->bits, pCursor->bits->mask, - mask_temp, &ptSrc, w, h); - fbcursor.image = (char *) source_temp; - fbcursor.mask = (char *) mask_temp; - } - fbcursor.size.x = w; - fbcursor.size.y = h; -#ifndef Lynx - (void) ioctl (sunFbs[pScreen->myNum].fd, FBIOSCURSOR, &fbcursor); -#else - (void) sunIoctl (&sunFbs[pScreen->myNum], FBIOSCURSOR, &fbcursor); -#endif -} - -static void -sunSetCursor (pScreen, pCursor, x, y) - ScreenPtr pScreen; - CursorPtr pCursor; - int x, y; -{ - SetupCursor(pScreen); - - if (pCursor) - sunLoadCursor (pScreen, pCursor, x, y); - else - sunDisableCursor (pScreen); - pCurPriv->pCursor = pCursor; -} - -static void -sunMoveCursor (pScreen, x, y) - ScreenPtr pScreen; - int x, y; -{ - struct fbcurpos pos; - - pos.x = x; - pos.y = y; -#ifndef Lynx - ioctl (sunFbs[pScreen->myNum].fd, FBIOSCURPOS, &pos); -#else - sunIoctl (&sunFbs[pScreen->myNum], FBIOSCURPOS, &pos); -#endif -} - -miPointerSpriteFuncRec sunPointerSpriteFuncs = { - sunRealizeCursor, - sunUnrealizeCursor, - sunSetCursor, - sunMoveCursor, -}; - -static void -sunQueryBestSize (class, pwidth, pheight, pScreen) - int class; - unsigned short *pwidth, *pheight; - ScreenPtr pScreen; -{ - SetupCursor (pScreen); - - switch (class) - { - case CursorShape: - if (*pwidth > pCurPriv->width) - *pwidth = pCurPriv->width; - if (*pheight > pCurPriv->height) - *pheight = pCurPriv->height; - if (*pwidth > pScreen->width) - *pwidth = pScreen->width; - if (*pheight > pScreen->height) - *pheight = pScreen->height; - break; - default: - mfbQueryBestSize (class, pwidth, pheight, pScreen); - break; - } -} - -extern miPointerScreenFuncRec sunPointerScreenFuncs; - -#endif - -Bool sunCursorInitialize ( - ScreenPtr pScreen) -{ -#ifdef FBIOGCURMAX - SetupCursor (pScreen); - struct fbcurpos maxsize; - - pCurPriv->has_cursor = FALSE; -#ifndef Lynx - if (ioctl (sunFbs[pScreen->myNum].fd, FBIOGCURMAX, &maxsize) == -1) -#else - if (sunIoctl (&sunFbs[pScreen->myNum], FBIOGCURMAX, &maxsize) == -1) -#endif - return FALSE; - pCurPriv->width = maxsize.x; - pCurPriv->height= maxsize.y; - pScreen->QueryBestSize = sunQueryBestSize; - miPointerInitialize (pScreen, - &sunPointerSpriteFuncs, - &sunPointerScreenFuncs, - FALSE); - pCurPriv->has_cursor = TRUE; - pCurPriv->pCursor = NULL; - return TRUE; -#else - return FALSE; -#endif -} - -void sunDisableCursor ( - ScreenPtr pScreen) -{ -#ifdef FBIOGCURMAX - SetupCursor (pScreen); - struct fbcursor fbcursor; - - if (pCurPriv->has_cursor) - { - fbcursor.set = FB_CUR_SETCUR; - fbcursor.enable = 0; -#ifndef Lynx - (void) ioctl (sunFbs[pScreen->myNum].fd, FBIOSCURSOR, &fbcursor); -#else - (void) sunIoctl (&sunFbs[pScreen->myNum], FBIOSCURSOR, &fbcursor); -#endif - pCurPriv->pCursor = NULL; - } -#endif -} diff --git a/nx-X11/programs/Xserver/hw/sun/sunFbs.c b/nx-X11/programs/Xserver/hw/sun/sunFbs.c deleted file mode 100644 index 1acf2517b..000000000 --- a/nx-X11/programs/Xserver/hw/sun/sunFbs.c +++ /dev/null @@ -1,259 +0,0 @@ - -/* $Xorg: sunFbs.c,v 1.4 2001/02/09 02:04:43 xorgcvs Exp $ */ - -/* -Copyright 1990, 1993, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - */ - -/************************************************************ -Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this -software and its documentation for any purpose and without -fee is hereby granted, provided that the above copyright no- -tice appear in all copies and that both that copyright no- -tice and this permission notice appear in supporting docu- -mentation, and that the names of Sun or The Open Group -not be used in advertising or publicity pertaining to -distribution of the software without specific prior -written permission. Sun and The Open Group make no -representations about the suitability of this software for -any purpose. It is provided "as is" without any express or -implied warranty. - -SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT- -NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE LI- -ABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH -THE USE OR PERFORMANCE OF THIS SOFTWARE. - -********************************************************/ - -/* - * Copyright 1987 by the Regents of the University of California - * Copyright 1987 by Adam de Boor, UC Berkeley - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies. The University of California - * makes no representations about the suitability of this - * software for any purpose. It is provided "as is" without - * express or implied warranty. - */ - -/* $XFree86: xc/programs/Xserver/hw/sun/sunFbs.c,v 1.7 2002/12/06 00:28:50 tsi Exp $ */ - -/****************************************************************/ -/* Modified from sunCG4C.c for X11R3 by Tom Jarmolowski */ -/****************************************************************/ - -#include "sun.h" -#include - -int sunScreenIndex; - -static unsigned long generation = 0; - -pointer sunMemoryMap ( - size_t len, - off_t off, - int fd) -{ - int pagemask, mapsize; - caddr_t addr; - pointer mapaddr; - -#ifdef SVR4 - pagemask = sysconf(_SC_PAGESIZE) - 1; -#else - pagemask = getpagesize() - 1; -#endif - mapsize = ((int) len + pagemask) & ~pagemask; - addr = 0; - -#if !defined(__bsdi__) && !defined(_MAP_NEW) && !defined(__NetBSD__) && !defined(__OpenBSD__) - if ((addr = (caddr_t) valloc (mapsize)) == NULL) { - Error ("Couldn't allocate frame buffer memory"); - (void) close (fd); - return NULL; - } -#endif - -#if !defined(__NetBSD__) && !defined(__OpenBSD__) - /* - * try and make it private first, that way once we get it, an - * interloper, e.g. another server, can't get this frame buffer, - * and if another server already has it, this one won't. - */ - if ((int)(mapaddr = (pointer) mmap (addr, - mapsize, - PROT_READ | PROT_WRITE, MAP_PRIVATE, - fd, off)) == -1) -#endif - mapaddr = (pointer) mmap (addr, - mapsize, - PROT_READ | PROT_WRITE, MAP_SHARED, - fd, off); - if (mapaddr == (pointer) -1) { - Error ("mapping frame buffer memory"); - (void) close (fd); - mapaddr = (pointer) NULL; - } - return mapaddr; -} - -Bool sunScreenAllocate ( - ScreenPtr pScreen) -{ - sunScreenPtr pPrivate; - extern int AllocateScreenPrivateIndex(); - - if (generation != serverGeneration) - { - sunScreenIndex = AllocateScreenPrivateIndex(); - if (sunScreenIndex < 0) - return FALSE; - generation = serverGeneration; - } - pPrivate = (sunScreenPtr) xalloc (sizeof (sunScreenRec)); - if (!pPrivate) - return FALSE; - - pScreen->devPrivates[sunScreenIndex].ptr = (pointer) pPrivate; - return TRUE; -} - -Bool sunSaveScreen ( - ScreenPtr pScreen, - int on) -{ - int state; - - if (on != SCREEN_SAVER_FORCER) - { - if (on == SCREEN_SAVER_ON) - state = 0; - else - state = 1; - (void) ioctl(sunFbs[pScreen->myNum].fd, FBIOSVIDEO, &state); - } - return( TRUE ); -} - -static Bool closeScreen (i, pScreen) - int i; - ScreenPtr pScreen; -{ - SetupScreen(pScreen); - Bool ret; - - (void) OsSignal (SIGIO, SIG_IGN); - sunDisableCursor (pScreen); - pScreen->CloseScreen = pPrivate->CloseScreen; - ret = (*pScreen->CloseScreen) (i, pScreen); - (void) (*pScreen->SaveScreen) (pScreen, SCREEN_SAVER_OFF); - xfree ((pointer) pPrivate); - return ret; -} - -Bool sunScreenInit ( - ScreenPtr pScreen) -{ - SetupScreen(pScreen); - extern void sunBlockHandler(); - extern void sunWakeupHandler(); - static ScreenPtr autoRepeatScreen; - extern miPointerScreenFuncRec sunPointerScreenFuncs; - - pPrivate->installedMap = 0; - pPrivate->CloseScreen = pScreen->CloseScreen; - pScreen->CloseScreen = closeScreen; - pScreen->SaveScreen = sunSaveScreen; -#ifdef XKB - if (noXkbExtension) { -#endif - /* - * Block/Unblock handlers - */ - if (sunAutoRepeatHandlersInstalled == FALSE) { - autoRepeatScreen = pScreen; - sunAutoRepeatHandlersInstalled = TRUE; - } - - if (pScreen == autoRepeatScreen) { - pScreen->BlockHandler = sunBlockHandler; - pScreen->WakeupHandler = sunWakeupHandler; - } -#ifdef XKB - } -#endif - if (!sunCursorInitialize (pScreen)) - miDCInitialize (pScreen, &sunPointerScreenFuncs); - return TRUE; -} - -Bool sunInitCommon ( - int scrn, - ScreenPtr pScrn, - off_t offset, - Bool (*init1)(), - void (*init2)(), - Bool (*cr_cm)(), - Bool (*save)(), - int fb_off) -{ - unsigned char* fb = sunFbs[scrn].fb; - - if (!sunScreenAllocate (pScrn)) - return FALSE; - if (!fb) { - if ((fb = sunMemoryMap ((size_t) sunFbs[scrn].info.fb_size, - offset, - sunFbs[scrn].fd)) == NULL) - return FALSE; - sunFbs[scrn].fb = fb; - } - /* mfbScreenInit() or cfbScreenInit() */ - if (!(*init1)(pScrn, fb + fb_off, - sunFbs[scrn].info.fb_width, - sunFbs[scrn].info.fb_height, - monitorResolution, monitorResolution, - sunFbs[scrn].info.fb_width, - sunFbs[scrn].info.fb_depth)) - return FALSE; - miInitializeBackingStore(pScrn); - /* sunCGScreenInit() if cfb... */ - if (init2) - (*init2)(pScrn); - if (!sunScreenInit(pScrn)) - return FALSE; - (void) (*save) (pScrn, SCREEN_SAVER_OFF); - return (*cr_cm)(pScrn); -} - diff --git a/nx-X11/programs/Xserver/hw/sun/sunGX.c b/nx-X11/programs/Xserver/hw/sun/sunGX.c deleted file mode 100644 index b6ecaac57..000000000 --- a/nx-X11/programs/Xserver/hw/sun/sunGX.c +++ /dev/null @@ -1,2906 +0,0 @@ -/* -static char *rid="$Xorg: sunGX.c,v 1.5 2001/02/09 02:04:44 xorgcvs Exp $"; - */ -/* -Copyright 1991, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - * - * Author: Keith Packard, MIT X Consortium - */ - -/* $XFree86: xc/programs/Xserver/hw/sun/sunGX.c,v 1.8 2003/07/19 13:22:28 tsi Exp $ */ - -#include "sun.h" - -#include -#include "gcstruct.h" -#include "scrnintstr.h" -#include "pixmapstr.h" -#include "regionstr.h" -#include "mistruct.h" -#include -#include "dixfontstr.h" -#include "cfb/cfb.h" -#include "cfb/cfbmskbits.h" -#include "cfb/cfb8bit.h" -#include "fastblt.h" -#include "mergerop.h" -#include "sunGX.h" -#include "migc.h" -#include "mispans.h" - -#define sunGXFillSpan(gx,y,x1,x2,r) {\ - (gx)->apointy = (y); \ - (gx)->apointx = (x1); \ - (gx)->arectx = (x2); \ - GXDrawDone(gx,r); \ -} - -#define GXSetClip(gx,pbox) {\ - (gx)->clipminx = (pbox)->x1; \ - (gx)->clipminy = (pbox)->y1; \ - (gx)->clipmaxx = (pbox)->x2 - 1; \ - (gx)->clipmaxy = (pbox)->y2 - 1; \ -} - -#define GXSetOff(gx,x,y) {\ - (gx)->offx = (x); \ - (gx)->offy = (y); \ -} - -#define GXResetClip(gx,pScreen) { \ - (gx)->clipminx = 0; \ - (gx)->clipminy = 0; \ - (gx)->clipmaxx = (pScreen)->width - 1; \ - (gx)->clipmaxy = (pScreen)->height - 1; \ -} - -#define GXResetOff(gx) {\ - (gx)->offx = 0; \ - (gx)->offy = 0; \ -} - -#define sunGXGetAddrRange(pDrawable,extents,base,lo,hi) {\ - int __x__; \ - cfbGetWindowByteWidthAndPointer((WindowPtr)pDrawable,__x__,base); \ - lo = (base) + WIDTH_MUL((extents)->y1) + (extents)->x1; \ - hi = (base) + WIDTH_MUL((extents)->y2 - 1) + (extents)->x2 - 1; \ - (base) = (base) + WIDTH_MUL(pDrawable->y) + pDrawable->x; \ -} - -/* - rop_tables - ========== - lookup tables for GX raster ops, with the plane_mask,pixel_mask,pattern_mask - ,attrib_sel, polygon_draw,raster_mode encoded into the top half. - There is a lookup table for each commonly used combination. -*/ - -/* rops for bit blit / copy area - with: - Plane Mask - use plane mask reg. - Pixel Mask - use all ones. - Patt Mask - use all ones. -*/ - -#define POLY_O GX_POLYG_OVERLAP -#define POLY_N GX_POLYG_NONOVERLAP - -#define ROP_STANDARD (GX_PLANE_MASK |\ - GX_PIXEL_ONES |\ - GX_ATTR_SUPP |\ - GX_RAST_BOOL |\ - GX_PLOT_PLOT) - -/* fg = don't care bg = don't care */ - -#define ROP_BLIT(O,I) (ROP_STANDARD | \ - GX_PATTERN_ONES |\ - GX_ROP_11_1(I) |\ - GX_ROP_11_0(O) |\ - GX_ROP_10_1(I) |\ - GX_ROP_10_0(O) |\ - GX_ROP_01_1(I) |\ - GX_ROP_01_0(O) |\ - GX_ROP_00_1(I) |\ - GX_ROP_00_0(O)) - -/* fg = fgPixel bg = don't care */ - -#define ROP_FILL(O,I) (ROP_STANDARD | \ - GX_PATTERN_ONES |\ - GX_ROP_11_1(I) |\ - GX_ROP_11_0(I) |\ - GX_ROP_10_1(I) |\ - GX_ROP_10_0(I) | \ - GX_ROP_01_1(O) |\ - GX_ROP_01_0(O) |\ - GX_ROP_00_1(O) |\ - GX_ROP_00_0(O)) - -/* fg = fgPixel bg = don't care */ - -#define ROP_STIP(O,I) (ROP_STANDARD |\ - GX_ROP_11_1(I) |\ - GX_ROP_11_0(GX_ROP_NOOP) |\ - GX_ROP_10_1(I) |\ - GX_ROP_10_0(GX_ROP_NOOP) | \ - GX_ROP_01_1(O) |\ - GX_ROP_01_0(GX_ROP_NOOP) |\ - GX_ROP_00_1(O) |\ - GX_ROP_00_0(GX_ROP_NOOP)) - -/* fg = fgPixel bg = bgPixel */ - -#define ROP_OSTP(O,I) (ROP_STANDARD |\ - GX_ROP_11_1(I) |\ - GX_ROP_11_0(I) |\ - GX_ROP_10_1(I) |\ - GX_ROP_10_0(O) |\ - GX_ROP_01_1(O) |\ - GX_ROP_01_0(I) |\ - GX_ROP_00_1(O) |\ - GX_ROP_00_0(O)) - -#define ROP_ITXT(O,I) (ROP_STANDARD |\ - GX_PATTERN_ONES |\ - GX_ROP_11_1(I) |\ - GX_ROP_11_0(I) |\ - GX_ROP_10_1(I) |\ - GX_ROP_10_0(O) |\ - GX_ROP_01_1(O) |\ - GX_ROP_01_0(I) |\ - GX_ROP_00_1(O) |\ - GX_ROP_00_0(O)) - -#define ROP_PTXT(O,I) (ROP_STANDARD |\ - GX_PATTERN_ONES |\ - GX_ROP_11_1(I) |\ - GX_ROP_11_0(GX_ROP_NOOP) |\ - GX_ROP_10_1(I) |\ - GX_ROP_10_0(GX_ROP_NOOP) | \ - GX_ROP_01_1(O) |\ - GX_ROP_01_0(GX_ROP_NOOP) |\ - GX_ROP_00_1(O) |\ - GX_ROP_00_0(GX_ROP_NOOP)) - -static Uint gx_blit_rop_table[16]={ - ROP_BLIT(GX_ROP_CLEAR, GX_ROP_CLEAR), /* GXclear */ - ROP_BLIT(GX_ROP_CLEAR, GX_ROP_NOOP), /* GXand */ - ROP_BLIT(GX_ROP_CLEAR, GX_ROP_INVERT), /* GXandReverse */ - ROP_BLIT(GX_ROP_CLEAR, GX_ROP_SET), /* GXcopy */ - ROP_BLIT(GX_ROP_NOOP, GX_ROP_CLEAR), /* GXandInverted */ - ROP_BLIT(GX_ROP_NOOP, GX_ROP_NOOP), /* GXnoop */ - ROP_BLIT(GX_ROP_NOOP, GX_ROP_INVERT), /* GXxor */ - ROP_BLIT(GX_ROP_NOOP, GX_ROP_SET), /* GXor */ - ROP_BLIT(GX_ROP_INVERT, GX_ROP_CLEAR), /* GXnor */ - ROP_BLIT(GX_ROP_INVERT, GX_ROP_NOOP), /* GXequiv */ - ROP_BLIT(GX_ROP_INVERT, GX_ROP_INVERT), /* GXinvert */ - ROP_BLIT(GX_ROP_INVERT, GX_ROP_SET), /* GXorReverse */ - ROP_BLIT(GX_ROP_SET, GX_ROP_CLEAR), /* GXcopyInverted */ - ROP_BLIT(GX_ROP_SET, GX_ROP_NOOP), /* GXorInverted */ - ROP_BLIT(GX_ROP_SET, GX_ROP_INVERT), /* GXnand */ - ROP_BLIT(GX_ROP_SET, GX_ROP_SET), /* GXset */ -}; - -/* rops for solid drawing - with: - Plane Mask - use plane mask reg. - Pixel Mask - use all ones. - Patt Mask - use all ones. -*/ - -static Uint gx_solid_rop_table[16]={ - ROP_FILL(GX_ROP_CLEAR, GX_ROP_CLEAR), /* GXclear */ - ROP_FILL(GX_ROP_CLEAR, GX_ROP_NOOP), /* GXand */ - ROP_FILL(GX_ROP_CLEAR, GX_ROP_INVERT), /* GXandReverse */ - ROP_FILL(GX_ROP_CLEAR, GX_ROP_SET), /* GXcopy */ - ROP_FILL(GX_ROP_NOOP, GX_ROP_CLEAR), /* GXandInverted */ - ROP_FILL(GX_ROP_NOOP, GX_ROP_NOOP), /* GXnoop */ - ROP_FILL(GX_ROP_NOOP, GX_ROP_INVERT), /* GXxor */ - ROP_FILL(GX_ROP_NOOP, GX_ROP_SET), /* GXor */ - ROP_FILL(GX_ROP_INVERT, GX_ROP_CLEAR), /* GXnor */ - ROP_FILL(GX_ROP_INVERT, GX_ROP_NOOP), /* GXequiv */ - ROP_FILL(GX_ROP_INVERT, GX_ROP_INVERT), /* GXinvert */ - ROP_FILL(GX_ROP_INVERT, GX_ROP_SET), /* GXorReverse */ - ROP_FILL(GX_ROP_SET, GX_ROP_CLEAR), /* GXcopyInverted */ - ROP_FILL(GX_ROP_SET, GX_ROP_NOOP), /* GXorInverted */ - ROP_FILL(GX_ROP_SET, GX_ROP_INVERT), /* GXnand */ - ROP_FILL(GX_ROP_SET, GX_ROP_SET), /* GXset */ -}; - -static Uint gx_stipple_rop_table[16]={ - ROP_STIP(GX_ROP_CLEAR, GX_ROP_CLEAR), /* GXclear */ - ROP_STIP(GX_ROP_CLEAR, GX_ROP_NOOP), /* GXand */ - ROP_STIP(GX_ROP_CLEAR, GX_ROP_INVERT), /* GXandReverse */ - ROP_STIP(GX_ROP_CLEAR, GX_ROP_SET), /* GXcopy */ - ROP_STIP(GX_ROP_NOOP, GX_ROP_CLEAR), /* GXandInverted */ - ROP_STIP(GX_ROP_NOOP, GX_ROP_NOOP), /* GXnoop */ - ROP_STIP(GX_ROP_NOOP, GX_ROP_INVERT), /* GXxor */ - ROP_STIP(GX_ROP_NOOP, GX_ROP_SET), /* GXor */ - ROP_STIP(GX_ROP_INVERT, GX_ROP_CLEAR), /* GXnor */ - ROP_STIP(GX_ROP_INVERT, GX_ROP_NOOP), /* GXequiv */ - ROP_STIP(GX_ROP_INVERT, GX_ROP_INVERT), /* GXinvert */ - ROP_STIP(GX_ROP_INVERT, GX_ROP_SET), /* GXorReverse */ - ROP_STIP(GX_ROP_SET, GX_ROP_CLEAR), /* GXcopyInverted */ - ROP_STIP(GX_ROP_SET, GX_ROP_NOOP), /* GXorInverted */ - ROP_STIP(GX_ROP_SET, GX_ROP_INVERT), /* GXnand */ - ROP_STIP(GX_ROP_SET, GX_ROP_SET), /* GXset */ -}; - -static Uint gx_opaque_stipple_rop_table[16]={ - ROP_OSTP(GX_ROP_CLEAR, GX_ROP_CLEAR), /* GXclear */ - ROP_OSTP(GX_ROP_CLEAR, GX_ROP_NOOP), /* GXand */ - ROP_OSTP(GX_ROP_CLEAR, GX_ROP_INVERT), /* GXandReverse */ - ROP_OSTP(GX_ROP_CLEAR, GX_ROP_SET), /* GXcopy */ - ROP_OSTP(GX_ROP_NOOP, GX_ROP_CLEAR), /* GXandInverted */ - ROP_OSTP(GX_ROP_NOOP, GX_ROP_NOOP), /* GXnoop */ - ROP_OSTP(GX_ROP_NOOP, GX_ROP_INVERT), /* GXxor */ - ROP_OSTP(GX_ROP_NOOP, GX_ROP_SET), /* GXor */ - ROP_OSTP(GX_ROP_INVERT, GX_ROP_CLEAR), /* GXnor */ - ROP_OSTP(GX_ROP_INVERT, GX_ROP_NOOP), /* GXequiv */ - ROP_OSTP(GX_ROP_INVERT, GX_ROP_INVERT), /* GXinvert */ - ROP_OSTP(GX_ROP_INVERT, GX_ROP_SET), /* GXorReverse */ - ROP_OSTP(GX_ROP_SET, GX_ROP_CLEAR), /* GXcopyInverted */ - ROP_OSTP(GX_ROP_SET, GX_ROP_NOOP), /* GXorInverted */ - ROP_OSTP(GX_ROP_SET, GX_ROP_INVERT), /* GXnand */ - ROP_OSTP(GX_ROP_SET, GX_ROP_SET), /* GXset */ -}; - -int sunGXScreenPrivateIndex; -int sunGXGCPrivateIndex; -int sunGXWindowPrivateIndex; -int sunGXGeneration; - -/* - sunGXDoBitBlt - ============= - Bit Blit for all window to window blits. -*/ -static void -sunGXDoBitblt(pSrc, pDst, alu, prgnDst, pptSrc, planemask) - DrawablePtr pSrc, pDst; - int alu; - RegionPtr prgnDst; - DDXPointPtr pptSrc; - unsigned long planemask; -{ - register sunGXPtr gx = sunGXGetScreenPrivate (pSrc->pScreen); - register long r; - register BoxPtr pboxTmp; - register DDXPointPtr pptTmp; - register int nbox; - BoxPtr pboxNext,pboxBase,pbox; - - /* setup GX ( need fg of 0xff for blits ) */ - GXBlitInit(gx,gx_blit_rop_table[alu]|POLY_O,planemask); - - pbox = REGION_RECTS(prgnDst); - nbox = REGION_NUM_RECTS(prgnDst); - - /* need to blit rectangles in different orders, depending on the direction of copy - so that an area isnt overwritten before it is blitted */ - if( (pptSrc->y < pbox->y1) && (nbox > 1) ){ - - if( (pptSrc->x < pbox->x1) && (nbox > 1) ){ - - /* reverse order of bands and rects in each band */ - pboxTmp=pbox+nbox; - pptTmp=pptSrc+nbox; - - while (nbox--){ - pboxTmp--; - pptTmp--; - gx->x0=pptTmp->x; - gx->y0=pptTmp->y; - gx->x1=pptTmp->x+(pboxTmp->x2-pboxTmp->x1)-1; - gx->y1=pptTmp->y+(pboxTmp->y2-pboxTmp->y1)-1; - gx->x2=pboxTmp->x1; - gx->y2=pboxTmp->y1; - gx->x3=pboxTmp->x2-1; - gx->y3=pboxTmp->y2-1; - GXBlitDone(gx,r); - } - } - else{ - - /* keep ordering in each band, reverse order of bands */ - pboxBase = pboxNext = pbox+nbox-1; - - while (pboxBase >= pbox){ /* for each band */ - - /* find first box in band */ - while ((pboxNext >= pbox) && - (pboxBase->y1 == pboxNext->y1)) - pboxNext--; - - pboxTmp = pboxNext+1; /* first box in band */ - pptTmp = pptSrc + (pboxTmp - pbox); /* first point in band */ - - while (pboxTmp <= pboxBase){ /* for each box in band */ - gx->x0=pptTmp->x; - gx->y0=pptTmp->y; - gx->x1=pptTmp->x+(pboxTmp->x2-pboxTmp->x1)-1; - gx->y1=pptTmp->y+(pboxTmp->y2-pboxTmp->y1)-1; - gx->x2=pboxTmp->x1; - gx->y2=pboxTmp->y1; - gx->x3=pboxTmp->x2-1; - gx->y3=pboxTmp->y2-1; - ++pboxTmp; - ++pptTmp; - GXBlitDone(gx,r); - } - pboxBase = pboxNext; - } - } - } - else{ - - if( (pptSrc->x < pbox->x1) && (nbox > 1) ){ - - /* reverse order of rects in each band */ - pboxBase = pboxNext = pbox; - - while (pboxBase < pbox+nbox){ /* for each band */ - - /* find last box in band */ - while ((pboxNext < pbox+nbox) && - (pboxNext->y1 == pboxBase->y1)) - pboxNext++; - - pboxTmp = pboxNext; /* last box in band */ - pptTmp = pptSrc + (pboxTmp - pbox); /* last point in band */ - - while (pboxTmp != pboxBase){ /* for each box in band */ - --pboxTmp; - --pptTmp; - gx->x0=pptTmp->x; - gx->y0=pptTmp->y; - gx->x1=pptTmp->x+(pboxTmp->x2-pboxTmp->x1)-1; - gx->y1=pptTmp->y+(pboxTmp->y2-pboxTmp->y1)-1; - gx->x2=pboxTmp->x1; - gx->y2=pboxTmp->y1; - gx->x3=pboxTmp->x2-1; - gx->y3=pboxTmp->y2-1; - GXBlitDone(gx,r); - } - pboxBase = pboxNext; - } - } - else{ - - /* dont need to change order of anything */ - pptTmp=pptSrc; - pboxTmp=pbox; - - while(nbox--){ - gx->x0=pptTmp->x; - gx->y0=pptTmp->y; - gx->x1=pptTmp->x+(pboxTmp->x2-pboxTmp->x1)-1; - gx->y1=pptTmp->y+(pboxTmp->y2-pboxTmp->y1)-1; - gx->x2=pboxTmp->x1; - gx->y2=pboxTmp->y1; - gx->x3=pboxTmp->x2-1; - gx->y3=pboxTmp->y2-1; - pboxTmp++; - pptTmp++; - GXBlitDone(gx,r); - } - } - } - GXWait(gx,r); -} - -RegionPtr -sunGXCopyArea(pSrcDrawable, pDstDrawable, - pGC, srcx, srcy, width, height, dstx, dsty) - register DrawablePtr pSrcDrawable; - register DrawablePtr pDstDrawable; - GC *pGC; - int srcx, srcy; - int width, height; - int dstx, dsty; -{ - if (pSrcDrawable->type != DRAWABLE_WINDOW) - return cfbCopyArea (pSrcDrawable, pDstDrawable, - pGC, srcx, srcy, width, height, dstx, dsty); - return cfbBitBlt (pSrcDrawable, pDstDrawable, - pGC, srcx, srcy, width, height, dstx, dsty, sunGXDoBitblt, 0); -} - -static unsigned long copyPlaneFG, copyPlaneBG; - -static void -sunGXCopyPlane1to8 (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc, planemask, bitPlane) - DrawablePtr pSrcDrawable; - DrawablePtr pDstDrawable; - int rop; - RegionPtr prgnDst; - DDXPointPtr pptSrc; - unsigned long planemask; - unsigned long bitPlane; -{ - register sunGXPtr gx = sunGXGetScreenPrivate (pDstDrawable->pScreen); - int srcx, srcy, dstx, dsty, width, height; - int dstLastx, dstRightx; - int xoffSrc, widthSrc, widthRest; - int widthLast; - unsigned long *psrcBase, *psrc; - unsigned long bits, tmp; - register int leftShift, rightShift; - register int nl, nlMiddle; - int nbox; - BoxPtr pbox; - register int r; - - GXDrawInit (gx, copyPlaneFG, - gx_opaque_stipple_rop_table[rop]|GX_PATTERN_ONES, - planemask); - gx->bg = copyPlaneBG; - gx->mode = GX_BLIT_NOSRC | GX_MODE_COLOR1; - - cfbGetLongWidthAndPointer (pSrcDrawable, widthSrc, psrcBase) - - nbox = REGION_NUM_RECTS(prgnDst); - pbox = REGION_RECTS(prgnDst); - gx->incx = 32; - gx->incy = 0; - while (nbox--) - { - dstx = pbox->x1; - dsty = pbox->y1; - srcx = pptSrc->x; - srcy = pptSrc->y; - dstLastx = pbox->x2; - width = dstLastx - dstx; - height = pbox->y2 - dsty; - pbox++; - pptSrc++; - if (!width) - continue; - psrc = psrcBase + srcy * widthSrc + (srcx >> 5); - dstLastx--; - dstRightx = dstx + 31; - nlMiddle = (width + 31) >> 5; - widthLast = width & 31; - xoffSrc = srcx & 0x1f; - leftShift = xoffSrc; - rightShift = 32 - leftShift; - widthRest = widthSrc - nlMiddle; - if (widthLast) - nlMiddle--; - if (leftShift == 0) - { - while (height--) - { - gx->x0 = dstx; - gx->x1 = dstRightx; - gx->y0 = dsty++; - nl = nlMiddle; - while (nl--) - gx->font = *psrc++; - if (widthLast) - { - gx->x1 = dstLastx; - gx->font = *psrc++; - } - psrc += widthRest; - } - } - else - { - widthRest--; - while (height--) - { - gx->x0 = dstx; - gx->x1 = dstRightx; - gx->y0 = dsty++; - bits = *psrc++; - nl = nlMiddle; - while (nl--) - { - tmp = BitLeft(bits, leftShift); - bits = *psrc++; - tmp |= BitRight(bits, rightShift); - gx->font = tmp; - } - if (widthLast) - { - tmp = BitLeft(bits, leftShift); - bits = *psrc++; - tmp |= BitRight(bits, rightShift); - gx->x1 = dstLastx; - gx->font = tmp; - } - psrc += widthRest; - } - } - } - GXWait (gx, r); - gx->incx = 0; - gx->incy = 0; - gx->mode = GX_BLIT_SRC | GX_MODE_COLOR8; -} - -RegionPtr sunGXCopyPlane(pSrcDrawable, pDstDrawable, - pGC, srcx, srcy, width, height, dstx, dsty, bitPlane) - DrawablePtr pSrcDrawable; - DrawablePtr pDstDrawable; - GCPtr pGC; - int srcx, srcy; - int width, height; - int dstx, dsty; - unsigned long bitPlane; -{ - RegionPtr ret; - - if (pSrcDrawable->bitsPerPixel == 1 && pDstDrawable->bitsPerPixel == 8) - { - if (bitPlane == 1) - { - copyPlaneFG = pGC->fgPixel; - copyPlaneBG = pGC->bgPixel; - ret = cfbBitBlt (pSrcDrawable, pDstDrawable, - pGC, srcx, srcy, width, height, dstx, dsty, sunGXCopyPlane1to8, bitPlane); - } - else - ret = miHandleExposures (pSrcDrawable, pDstDrawable, - pGC, srcx, srcy, width, height, dstx, dsty, bitPlane); - } - else if (pSrcDrawable->bitsPerPixel == 8 && pDstDrawable->bitsPerPixel == 1) - { - extern int InverseAlu[16]; - int oldalu; - - oldalu = pGC->alu; - if ((pGC->fgPixel & 1) == 0 && (pGC->bgPixel&1) == 1) - pGC->alu = InverseAlu[pGC->alu]; - else if ((pGC->fgPixel & 1) == (pGC->bgPixel & 1)) - pGC->alu = mfbReduceRop(pGC->alu, pGC->fgPixel); - ret = cfbCopyPlaneReduce (pSrcDrawable, pDstDrawable, - pGC, srcx, srcy, width, height, dstx, dsty, cfbCopyPlane8to1, bitPlane); - pGC->alu = oldalu; - } - else - { - PixmapPtr pBitmap; - ScreenPtr pScreen = pSrcDrawable->pScreen; - GCPtr pGC1; - - pBitmap = (*pScreen->CreatePixmap) (pScreen, width, height, 1); - if (!pBitmap) - return NULL; - pGC1 = GetScratchGC (1, pScreen); - if (!pGC1) - { - (*pScreen->DestroyPixmap) (pBitmap); - return NULL; - } - /* - * don't need to set pGC->fgPixel,bgPixel as copyPlane8to1 - * ignores pixel values, expecting the rop to "do the - * right thing", which GXcopy will. - */ - ValidateGC ((DrawablePtr) pBitmap, pGC1); - /* no exposures here, scratch GC's don't get graphics expose */ - (void) cfbCopyPlaneReduce (pSrcDrawable, (DrawablePtr) pBitmap, - pGC1, srcx, srcy, width, height, 0, 0, cfbCopyPlane8to1, bitPlane); - copyPlaneFG = pGC->fgPixel; - copyPlaneBG = pGC->bgPixel; - (void) cfbBitBlt ((DrawablePtr) pBitmap, pDstDrawable, pGC, - 0, 0, width, height, dstx, dsty, sunGXCopyPlane1to8, 1); - FreeScratchGC (pGC1); - (*pScreen->DestroyPixmap) (pBitmap); - /* compute resultant exposures */ - ret = miHandleExposures (pSrcDrawable, pDstDrawable, pGC, - srcx, srcy, width, height, - dstx, dsty, bitPlane); - } - return ret; -} - -void -sunGXFillRectAll (pDrawable, pGC, nBox, pBox) - DrawablePtr pDrawable; - GCPtr pGC; - int nBox; - BoxPtr pBox; -{ - register sunGXPtr gx = sunGXGetScreenPrivate (pDrawable->pScreen); - register sunGXPrivGCPtr gxPriv = sunGXGetGCPrivate (pGC); - register int r; - - GXDrawInit(gx,pGC->fgPixel,gx_solid_rop_table[pGC->alu]|POLY_N,pGC->planemask); - if (gxPriv->stipple) - GXStippleInit(gx,gxPriv->stipple); - while (nBox--) { - gx->arecty = pBox->y1; - gx->arectx = pBox->x1; - gx->arecty = pBox->y2; - gx->arectx = pBox->x2; - pBox++; - GXDrawDone(gx,r); - } - GXWait(gx,r); -} - -#define NUM_STACK_RECTS 1024 - -void -sunGXPolyFillRect(pDrawable, pGC, nrectFill, prectInit) - DrawablePtr pDrawable; - register GCPtr pGC; - int nrectFill; /* number of rectangles to fill */ - xRectangle *prectInit; /* Pointer to first rectangle to fill */ -{ - xRectangle *prect; - RegionPtr prgnClip; - register BoxPtr pbox; - register BoxPtr pboxClipped; - BoxPtr pboxClippedBase; - BoxPtr pextent; - BoxRec stackRects[NUM_STACK_RECTS]; - int numRects; - int n; - int xorg, yorg; - - prgnClip = pGC->pCompositeClip; - prect = prectInit; - xorg = pDrawable->x; - yorg = pDrawable->y; - if (xorg || yorg) - { - prect = prectInit; - n = nrectFill; - while(n--) - { - prect->x += xorg; - prect->y += yorg; - prect++; - } - } - - prect = prectInit; - - numRects = REGION_NUM_RECTS(prgnClip) * nrectFill; - if (numRects > NUM_STACK_RECTS) - { - pboxClippedBase = (BoxPtr)ALLOCATE_LOCAL(numRects * sizeof(BoxRec)); - if (!pboxClippedBase) - return; - } - else - pboxClippedBase = stackRects; - - pboxClipped = pboxClippedBase; - - if (REGION_NUM_RECTS(prgnClip) == 1) - { - int x1, y1, x2, y2, bx2, by2; - - pextent = REGION_RECTS(prgnClip); - x1 = pextent->x1; - y1 = pextent->y1; - x2 = pextent->x2; - y2 = pextent->y2; - while (nrectFill--) - { - if ((pboxClipped->x1 = prect->x) < x1) - pboxClipped->x1 = x1; - - if ((pboxClipped->y1 = prect->y) < y1) - pboxClipped->y1 = y1; - - bx2 = (int) prect->x + (int) prect->width; - if (bx2 > x2) - bx2 = x2; - pboxClipped->x2 = bx2; - - by2 = (int) prect->y + (int) prect->height; - if (by2 > y2) - by2 = y2; - pboxClipped->y2 = by2; - - prect++; - if ((pboxClipped->x1 < pboxClipped->x2) && - (pboxClipped->y1 < pboxClipped->y2)) - { - pboxClipped++; - } - } - } - else - { - int x1, y1, x2, y2, bx2, by2; - - pextent = REGION_EXTENTS(pGC->pScreen, prgnClip); - x1 = pextent->x1; - y1 = pextent->y1; - x2 = pextent->x2; - y2 = pextent->y2; - while (nrectFill--) - { - BoxRec box; - - if ((box.x1 = prect->x) < x1) - box.x1 = x1; - - if ((box.y1 = prect->y) < y1) - box.y1 = y1; - - bx2 = (int) prect->x + (int) prect->width; - if (bx2 > x2) - bx2 = x2; - box.x2 = bx2; - - by2 = (int) prect->y + (int) prect->height; - if (by2 > y2) - by2 = y2; - box.y2 = by2; - - prect++; - - if ((box.x1 >= box.x2) || (box.y1 >= box.y2)) - continue; - - n = REGION_NUM_RECTS (prgnClip); - pbox = REGION_RECTS(prgnClip); - - /* clip the rectangle to each box in the clip region - this is logically equivalent to calling Intersect() - */ - while(n--) - { - pboxClipped->x1 = max(box.x1, pbox->x1); - pboxClipped->y1 = max(box.y1, pbox->y1); - pboxClipped->x2 = min(box.x2, pbox->x2); - pboxClipped->y2 = min(box.y2, pbox->y2); - pbox++; - - /* see if clipping left anything */ - if(pboxClipped->x1 < pboxClipped->x2 && - pboxClipped->y1 < pboxClipped->y2) - { - pboxClipped++; - } - } - } - } - if (pboxClipped != pboxClippedBase) - sunGXFillRectAll(pDrawable, pGC, - pboxClipped-pboxClippedBase, pboxClippedBase); - if (pboxClippedBase != stackRects) - DEALLOCATE_LOCAL(pboxClippedBase); -} - -void -sunGXFillSpans (pDrawable, pGC, n, ppt, pwidth, fSorted) - DrawablePtr pDrawable; - GCPtr pGC; - int n; /* number of spans to fill */ - DDXPointPtr ppt; /* pointer to list of start points */ - int *pwidth; /* pointer to list of n widths */ - int fSorted; -{ - int x, y; - int width; - /* next three parameters are post-clip */ - int nTmp; - int *pwidthFree;/* copies of the pointers to free */ - DDXPointPtr pptFree; - register sunGXPtr gx = sunGXGetScreenPrivate (pDrawable->pScreen); - cfbPrivGCPtr devPriv = cfbGetGCPrivate(pGC); - register sunGXPrivGCPtr gxPriv = sunGXGetGCPrivate (pGC); - register int r; - BoxPtr extents; - - GXDrawInit(gx,pGC->fgPixel,gx_solid_rop_table[pGC->alu]|POLY_O,pGC->planemask) - if (gxPriv->stipple) - GXStippleInit(gx,gxPriv->stipple); - if (devPriv->oneRect) - { - extents = &pGC->pCompositeClip->extents; - GXSetClip (gx, extents); - } - else - { - nTmp = n * miFindMaxBand(pGC->pCompositeClip); - pwidthFree = (int *)ALLOCATE_LOCAL(nTmp * sizeof(int)); - pptFree = (DDXPointRec *)ALLOCATE_LOCAL(nTmp * sizeof(DDXPointRec)); - if(!pptFree || !pwidthFree) - { - if (pptFree) DEALLOCATE_LOCAL(pptFree); - if (pwidthFree) DEALLOCATE_LOCAL(pwidthFree); - return; - } - n = miClipSpans(pGC->pCompositeClip, ppt, pwidth, n, - pptFree, pwidthFree, fSorted); - pwidth = pwidthFree; - ppt = pptFree; - } - while (n--) - { - x = ppt->x; - y = ppt->y; - ppt++; - width = *pwidth++; - if (width) - { - sunGXFillSpan(gx,y,x,x + width - 1,r); - } - } - GXWait(gx,r); - if (devPriv->oneRect) - { - GXResetClip (gx, pDrawable->pScreen); - } - else - { - DEALLOCATE_LOCAL(pptFree); - DEALLOCATE_LOCAL(pwidthFree); - } -} - -#ifdef NOTDEF -/* cfb is faster for dots */ -void -sunGXPolyPoint(pDrawable, pGC, mode, npt, pptInit) - DrawablePtr pDrawable; - GCPtr pGC; - int mode; - int npt; - xPoint *pptInit; -{ - register sunGXPtr gx = sunGXGetScreenPrivate (pDrawable->pScreen); - RegionPtr cclip; - int nbox; - register int i; - register BoxPtr pbox; - cfbPrivGCPtr devPriv; - xPoint *ppt; - int x, y; - int r; - int off; - - devPriv = (cfbPrivGC *)(pGC->devPrivates[cfbGCPrivateIndex].ptr); - if (devPriv->rop == GXnoop) - return; - cclip = pGC->pCompositeClip; - GXDrawInit(gx,pGC->fgPixel,gx_solid_rop_table[pGC->alu],pGC->planemask); - gx->offx = pDrawable->x; - gx->offy = pDrawable->y; - for (nbox = REGION_NUM_RECTS(cclip), pbox = REGION_RECTS(cclip); - --nbox >= 0; - pbox++) - { - sunGXSetClip(gx,pbox); - if (mode != CoordModeOrigin) - { - x = 0; - y = 0; - for (ppt = pptInit, i = npt; --i >= 0;) - { - gx->apointy = y += ppt->y; - gx->apointx = x += ppt->x; - ++ppt; - GXDrawDone(gx,r); - } - } - else - { - for (ppt = pptInit, i = npt; --i >= 0;) - { - gx->apointy = ppt->y; - gx->apointx = ppt->x; - ++ppt; - GXDrawDone(gx,r); - } - } - } - GXWait(gx,r); - GXResetOff (gx); - GXResetClip(gx,pDrawable->pScreen); -} -#endif - -#include "mifillarc.h" - -#define FILLSPAN(gx,y,x1,x2,r) {\ - if (x2 >= x1) {\ - sunGXFillSpan(gx,y,x1,x2,r) \ - } \ -} - -#define FILLSLICESPANS(flip,y) \ - if (!flip) \ - { \ - FILLSPAN(gx,y,xl,xr,r) \ - } \ - else \ - { \ - xc = xorg - x; \ - FILLSPAN(gx, y, xc, xr, r) \ - xc += slw - 1; \ - FILLSPAN(gx, y, xl, xc, r) \ - } - -static void -sunGXFillEllipse (pDraw, gx, arc) - DrawablePtr pDraw; - sunGXPtr gx; - xArc *arc; -{ - int x, y, e; - int yk, xk, ym, xm, dx, dy, xorg, yorg; - int y_top, y_bot; - miFillArcRec info; - register int xpos; - int r; - int slw; - - miFillArcSetup(arc, &info); - MIFILLARCSETUP(); - y_top = yorg - y; - y_bot = yorg + y + dy; - while (y) - { - y_top++; - y_bot--; - MIFILLARCSTEP(slw); - if (!slw) - continue; - xpos = xorg - x; - sunGXFillSpan (gx,y_top,xpos,xpos+slw - 1,r); - if (miFillArcLower(slw)) - sunGXFillSpan (gx,y_bot,xpos,xpos+slw - 1,r); - } -} - - -static void -sunGXFillArcSlice (pDraw, pGC, gx, arc) - DrawablePtr pDraw; - GCPtr pGC; - sunGXPtr gx; - xArc *arc; -{ - int yk, xk, ym, xm, dx, dy, xorg, yorg, slw; - register int x, y, e; - miFillArcRec info; - miArcSliceRec slice; - int xl, xr, xc; - int y_top, y_bot; - int r; - - miFillArcSetup(arc, &info); - miFillArcSliceSetup(arc, &slice, pGC); - MIFILLARCSETUP(); - y_top = yorg - y; - y_bot = yorg + y + dy; - while (y > 0) - { - y_top++; - y_bot--; - MIFILLARCSTEP(slw); - MIARCSLICESTEP(slice.edge1); - MIARCSLICESTEP(slice.edge2); - if (miFillSliceUpper(slice)) - { - MIARCSLICEUPPER(xl, xr, slice, slw); - FILLSLICESPANS(slice.flip_top, y_top); - } - if (miFillSliceLower(slice)) - { - MIARCSLICELOWER(xl, xr, slice, slw); - FILLSLICESPANS(slice.flip_bot, y_bot); - } - } -} - -#define FAST_CIRCLES -#ifdef FAST_CIRCLES -#if (BITMAP_BIT_ORDER == MSBFirst) -#define Bits32(v) (v) -#define Bits16(v) (v) -#define Bits8(v) (v) -#else -#define FlipBits2(a) ((((a) & 0x1) << 1) | (((a) & 0x2) >> 1)) -#define FlipBits4(a) ((FlipBits2(a) << 2) | FlipBits2(a >> 2)) -#define FlipBits8(a) ((FlipBits4(a) << 4) | FlipBits4(a >> 4)) -#define FlipBits16(a) ((FlipBits8(a) << 8) | FlipBits8(a >> 8)) -#define FlipBits32(a) ((FlipBits16(a) << 16) | FlipBits16(a >> 16)) -#define Bits32(v) FlipBits32(v) -#define Bits16(v) FlipBits16(v) -#define Bits8(v) FlipBits8(v) -#endif - -#define B(x) Bits16(x) -#define DO_FILLED_ARCS -#include "circleset.h" -#undef B -#undef Bits8 -#undef Bits16 -#undef Bits32 -#define UNSET_CIRCLE if (old_width) \ - { \ - gx->alu = gx_solid_rop_table[pGC->alu]; \ - old_width = -old_width; \ - } - -#else -#define UNSET_CIRCLE -#endif - -void -sunGXPolyFillArc (pDraw, pGC, narcs, parcs) - DrawablePtr pDraw; - GCPtr pGC; - int narcs; - xArc *parcs; -{ - register xArc *arc; - register int i; - int x, y; - BoxRec box; - BoxPtr extents = NULL; - RegionPtr cclip; - register sunGXPtr gx = sunGXGetScreenPrivate (pDraw->pScreen); - sunGXPrivGCPtr gxPriv = sunGXGetGCPrivate (pGC); - cfbPrivGCPtr devPriv; - register int r; -#ifdef FAST_CIRCLES - int old_width = 0; -#endif - - GXDrawInit(gx,pGC->fgPixel,gx_solid_rop_table[pGC->alu]|POLY_O,pGC->planemask); - if (gxPriv->stipple) - GXStippleInit(gx,gxPriv->stipple); - devPriv = (cfbPrivGC *)(pGC->devPrivates[cfbGCPrivateIndex].ptr); - cclip = pGC->pCompositeClip; - GXSetOff(gx,pDraw->x,pDraw->y) - if (devPriv->oneRect) { - extents = &cclip->extents; - GXSetClip(gx,extents); - } - for (arc = parcs, i = narcs; --i >= 0; arc++) - { - if (miFillArcEmpty(arc)) - continue; - if (miCanFillArc(arc)) - { - x = arc->x; - y = arc->y; - if (!devPriv->oneRect) - { - box.x1 = x + pDraw->x; - box.y1 = y + pDraw->y; - box.x2 = box.x1 + (int)arc->width + 1; - box.y2 = box.y1 + (int)arc->height + 1; - } - if (devPriv->oneRect || - RECT_IN_REGION(pDraw->pScreen, cclip, &box) == rgnIN) - { - if ((arc->angle2 >= FULLCIRCLE) || - (arc->angle2 <= -FULLCIRCLE)) - { -#ifdef FAST_CIRCLES -/* who really needs fast filled circles? */ - if (arc->width == arc->height && arc->width <= 16 && - !gxPriv->stipple) - { - int offx, offy; - if (arc->width != old_width) - { - int i; - Uint *sp; - VUint *dp; - - if (old_width != -arc->width) - { - sp = (Uint *) filled_arcs[arc->width-1]; - dp = gx->pattern; - i = 8; - while (i--) - dp[i] = sp[i]; - } - gx->alu = gx_stipple_rop_table[pGC->alu]|GX_PATTERN_MASK; - old_width = arc->width; - } - offx = 16 - ((x + pDraw->x) & 0x0f); - offy = 16 - ((y + pDraw->y) & 0x0f); - gx->patalign = (offx << 16) | offy; - gx->arecty = y; - gx->arectx = x; - gx->arecty = y + old_width-1; - gx->arectx = x + old_width-1; - GXDrawDone (gx, r); - } - else -#endif - { - UNSET_CIRCLE - sunGXFillEllipse (pDraw, gx, arc); - } - } - else - { - UNSET_CIRCLE - sunGXFillArcSlice (pDraw, pGC, gx, arc); - } - continue; - } - } - UNSET_CIRCLE - GXWait (gx,r); - GXResetOff (gx); - if (devPriv->oneRect) - GXResetClip (gx, pDraw->pScreen); - miPolyFillArc(pDraw, pGC, 1, arc); - GXSetOff (gx, pDraw->x, pDraw->y); - if (devPriv->oneRect) - GXSetClip (gx, extents); - } - GXWait (gx, r); - GXResetOff (gx); - if (devPriv->oneRect) - GXResetClip (gx, pDraw->pScreen); -} - -void -sunGXFillPoly1Rect (pDrawable, pGC, shape, mode, count, ptsIn) - DrawablePtr pDrawable; - GCPtr pGC; - int count; - DDXPointPtr ptsIn; -{ - BoxPtr extents; - int x1, x2, x3, x4; - int y1, y2, y3, y4; - sunGXPtr gx = sunGXGetScreenPrivate (pDrawable->pScreen); - sunGXPrivGCPtr gxPriv = sunGXGetGCPrivate (pGC); - int r; - typedef struct { - Uint x; - Uint y; - Uint z; - } GXPointRec, *GXPointPtr; - GXPointPtr tri, qua; - - if (count < 3) - return; - if (shape != Convex && count > 4) - { - miFillPolygon (pDrawable, pGC, shape, mode, count, ptsIn); - return; - } - GXDrawInit(gx,pGC->fgPixel,gx_solid_rop_table[pGC->alu]|POLY_N,pGC->planemask); - if (gxPriv->stipple) - GXStippleInit(gx,gxPriv->stipple); - extents = &pGC->pCompositeClip->extents; - GXSetOff(gx,pDrawable->x, pDrawable->y); - GXSetClip(gx,extents); - if (mode == CoordModeOrigin) - { - tri = (GXPointPtr) &gx->atrix; - qua = (GXPointPtr) &gx->aquadx; - } - else - { - tri = (GXPointPtr) &gx->rtrix; - qua = (GXPointPtr) &gx->rquadx; - } - if (count == 3) { - gx->apointy = ptsIn[0].y; - gx->apointx = ptsIn[0].x; - tri->y = ptsIn[1].y; - tri->x = ptsIn[1].x; - tri->y = ptsIn[2].y; - tri->x = ptsIn[2].x; - GXDrawDone (gx, r); - } - else if (count == 4) - { - gx->apointy = ptsIn[0].y; - gx->apointx = ptsIn[0].x; - qua->y = ptsIn[1].y; - qua->x = ptsIn[1].x; - qua->y = ptsIn[2].y; - qua->x = ptsIn[2].x; - qua->y = ptsIn[3].y; - qua->x = ptsIn[3].x; - GXDrawDone (gx, r); - if (r < 0 && shape != Convex) - { - GXWait(gx,r); - GXResetOff(gx); - GXResetClip(gx,pDrawable->pScreen); - miFillPolygon (pDrawable, pGC, shape, mode, count, ptsIn); - return; - } - } - else - { - y1 = ptsIn[0].y; - x1 = ptsIn[0].x; - y2 = ptsIn[1].y; - x2 = ptsIn[1].x; - count -= 2; - ptsIn += 2; - while (count) { - x3 = ptsIn->x; - y3 = ptsIn->y; - ptsIn++; - count--; - gx->apointy = y1; - gx->apointx = x1; - if (count == 0) { - tri->y = y2; - tri->x = x2; - tri->y = y3; - tri->x = x3; - } - else - { - y4 = ptsIn->y; - x4 = ptsIn->x; - ptsIn++; - count--; - qua->y = y2; - qua->x = x2; - qua->y = y3; - qua->x = x3; - qua->y = y4; - qua->x = x4; - if (mode == CoordModeOrigin) - { - x2 = x4; - y2 = y4; - } - else - { - x2 = x2 + x3 + x4; - y2 = y2 + y3 + y4; - } - } - GXDrawDone (gx, r); - } - } - GXWait(gx,r); - GXResetOff(gx); - GXResetClip(gx,pDrawable->pScreen); -} - -/* - * Note that the GX does not allow CapNotLast, so the code fakes it. This is - * expensive to do as the GX is asynchronous and must be synced with GXWait - * before fetching and storing the final line point. If only the hardware was - * designed for X. - */ - -/* hard code the screen width; otherwise we'd have to check or mul */ - -#define WIDTH_MUL(y) (((y) << 10) + ((y) << 7)) -#define GX_WIDTH 1152 -#define WID_OK(s) ((s)->width == GX_WIDTH) - -void -sunGXPolySeg1Rect (pDrawable, pGC, nseg, pSeg) - DrawablePtr pDrawable; - GCPtr pGC; - int nseg; - xSegment *pSeg; -{ - sunGXPtr gx = sunGXGetScreenPrivate (pDrawable->pScreen); - sunGXPrivGCPtr gxPriv = sunGXGetGCPrivate (pGC); - BoxPtr extents; - int x, y; - int r; - unsigned char *baseAddr, *loAddr, *hiAddr, *saveAddr = 0, save = 0; - - GXDrawInit(gx,pGC->fgPixel,gx_solid_rop_table[pGC->alu]|POLY_O,pGC->planemask); - if (gxPriv->stipple) - GXStippleInit(gx,gxPriv->stipple); - GXSetOff (gx, pDrawable->x, pDrawable->y); - - extents = &pGC->pCompositeClip->extents; - GXSetClip (gx, extents); - if (pGC->capStyle == CapNotLast) - { - sunGXGetAddrRange(pDrawable,extents,baseAddr,loAddr,hiAddr); - while (nseg--) - { - gx->aliney = pSeg->y1; - gx->alinex = pSeg->x1; - y = pSeg->y2; - x = pSeg->x2; - saveAddr = baseAddr + WIDTH_MUL(y) + x; - if (saveAddr < loAddr || hiAddr < saveAddr) - saveAddr = 0; - else - save = *saveAddr; - gx->aliney = y; - gx->alinex = x; - GXDrawDone (gx, r); - if (saveAddr) - { - GXWait(gx,r); - *saveAddr = save; - } - pSeg++; - } - } - else - { - while (nseg--) - { - gx->aliney = pSeg->y1; - gx->alinex = pSeg->x1; - gx->aliney = pSeg->y2; - gx->alinex = pSeg->x2; - pSeg++; - GXDrawDone (gx, r); - } - } - GXWait (gx, r); - GXResetOff (gx); - GXResetClip (gx, pDrawable->pScreen); -} - -void -sunGXPolylines1Rect (pDrawable, pGC, mode, npt, ppt) - DrawablePtr pDrawable; - GCPtr pGC; - int mode; - int npt; - DDXPointPtr ppt; -{ - sunGXPtr gx = sunGXGetScreenPrivate (pDrawable->pScreen); - sunGXPrivGCPtr gxPriv = sunGXGetGCPrivate (pGC); - BoxPtr extents; - unsigned char *baseAddr, *loAddr, *hiAddr, *saveAddr, save = 0; - int r; - Bool careful; - Bool capNotLast; - - if (!--npt) - return; - GXDrawInit(gx,pGC->fgPixel,gx_solid_rop_table[pGC->alu]|POLY_O,pGC->planemask); - if (gxPriv->stipple) - GXStippleInit(gx,gxPriv->stipple); - careful = ((pGC->alu & 0xc) == 0x8 || (pGC->alu & 0x3) == 0x2); - capNotLast = pGC->capStyle == CapNotLast; - - extents = &pGC->pCompositeClip->extents; - GXSetOff (gx, pDrawable->x, pDrawable->y); - GXSetClip (gx, extents); - if (careful) - { - int x, y; - sunGXGetAddrRange (pDrawable, extents, baseAddr, loAddr, hiAddr); - gx->apointy = y = ppt->y; - gx->apointx = x = ppt->x; - ppt++; - while (npt--) - { - if (mode == CoordModeOrigin) - { - y = ppt->y; - x = ppt->x; - } - else - { - y += ppt->y; - x += ppt->x; - } - ppt++; - saveAddr = baseAddr + WIDTH_MUL(y) + x; - if (saveAddr < loAddr || hiAddr < saveAddr) - saveAddr = 0; - else - save = *saveAddr; - gx->aliney = y; - gx->alinex = x; - GXDrawDone (gx, r); - if (saveAddr) - { - GXWait(gx,r); - *saveAddr = save; - } - } - GXWait(gx,r); - } - else - { - int x, y; - if (capNotLast) - npt--; - if (mode == CoordModeOrigin) - { - x = y = 0; - gx->apointy = ppt->y; - gx->apointx = ppt->x; - ppt++; - while (npt--) - { - gx->aliney = ppt->y; - gx->alinex = ppt->x; - ++ppt; - GXDrawDone(gx,r); - } - } - else - { - y = gx->apointy = ppt->y; - x = gx->apointx = ppt->x; - ppt++; - while (npt--) - { - y += gx->rliney = ppt->y; - x += gx->rlinex = ppt->x; - ++ppt; - GXDrawDone(gx,r); - } - } - if (capNotLast) - { - sunGXGetAddrRange (pDrawable, extents, baseAddr, loAddr, hiAddr); - x += ppt->x; - y += ppt->y; - saveAddr = baseAddr + WIDTH_MUL(y) + x; - if (saveAddr < loAddr || hiAddr < saveAddr) - saveAddr = 0; - else - save = *saveAddr; - gx->aliney = y; - gx->alinex = x; - GXDrawDone(gx,r); - GXWait(gx,r); - if (saveAddr) - *saveAddr = save; - } - else - { - GXWait(gx,r); - } - } - GXResetOff (gx); - GXResetClip (gx, pDrawable->pScreen); -} - -void -sunGXPolyFillRect1Rect (pDrawable, pGC, nrect, prect) - DrawablePtr pDrawable; - GCPtr pGC; - int nrect; - xRectangle *prect; -{ - sunGXPtr gx = sunGXGetScreenPrivate (pDrawable->pScreen); - sunGXPrivGCPtr gxPriv = sunGXGetGCPrivate (pGC); - BoxPtr extents = &pGC->pCompositeClip->extents; - int r; - int x, y; - - GXDrawInit(gx,pGC->fgPixel,gx_solid_rop_table[pGC->alu]|POLY_N,pGC->planemask); - if (gxPriv->stipple) - GXStippleInit(gx,gxPriv->stipple); - GXSetOff (gx, pDrawable->x, pDrawable->y); - GXSetClip (gx, extents); - while (nrect--) - { - gx->arecty = y = prect->y; - gx->arectx = x = prect->x; - gx->arecty = y + (int) prect->height; - gx->arectx = x + (int) prect->width; - prect++; - GXDrawDone (gx, r); - } - GXWait (gx, r); - GXResetOff (gx); - GXResetClip (gx, pDrawable->pScreen); -} - -static void -sunGXPolyGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) - DrawablePtr pDrawable; - GCPtr pGC; - int x, y; - unsigned int nglyph; - CharInfoPtr *ppci; /* array of character info */ - pointer pglyphBase; -{ - sunGXPtr gx = sunGXGetScreenPrivate (pDrawable->pScreen); - int h; - int w; - CharInfoPtr pci; - unsigned long *bits; - register int r; - RegionPtr clip; - BoxPtr extents; - BoxRec box; - - clip = pGC->pCompositeClip; - extents = &clip->extents; - - if (REGION_NUM_RECTS(clip) == 1) - { - GXSetClip (gx, extents); - } - else - { - /* compute an approximate (but covering) bounding box */ - box.x1 = 0; - if ((ppci[0]->metrics.leftSideBearing < 0)) - box.x1 = ppci[0]->metrics.leftSideBearing; - h = nglyph - 1; - w = ppci[h]->metrics.rightSideBearing; - while (--h >= 0) - w += ppci[h]->metrics.characterWidth; - box.x2 = w; - box.y1 = -FONTMAXBOUNDS(pGC->font,ascent); - box.y2 = FONTMAXBOUNDS(pGC->font,descent); - - box.x1 += pDrawable->x + x; - box.x2 += pDrawable->x + x; - box.y1 += pDrawable->y + y; - box.y2 += pDrawable->y + y; - - switch (RECT_IN_REGION(pGC->pScreen, clip, &box)) - { - case rgnPART: - cfbPolyGlyphBlt8 (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); - case rgnOUT: - return; - } - } - - GXDrawInit (gx, pGC->fgPixel, - gx_stipple_rop_table[pGC->alu]|GX_PATTERN_ONES|POLY_N, - pGC->planemask); - gx->mode = GX_BLIT_NOSRC | GX_MODE_COLOR1; - x += pDrawable->x; - y += pDrawable->y; - - while (nglyph--) - { - pci = *ppci++; - gx->incx = 0; - gx->incy = 1; - gx->x0 = x + pci->metrics.leftSideBearing; - gx->x1 = (x + pci->metrics.rightSideBearing) - 1; - gx->y0 = y - pci->metrics.ascent; - h = pci->metrics.ascent + pci->metrics.descent; - bits = (unsigned long *) pci->bits; - while (h--) { - gx->font = *bits++; - } - x += pci->metrics.characterWidth; - } - GXWait (gx, r); - gx->mode = GX_BLIT_SRC | GX_MODE_COLOR8; - GXResetClip (gx, pDrawable->pScreen); -} - -static void -sunGXTEGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) - DrawablePtr pDrawable; - GCPtr pGC; - int x, y; - unsigned int nglyph; - CharInfoPtr *ppci; /* array of character info */ - pointer pglyphBase; /* start of array of glyphs */ -{ - sunGXPtr gx = sunGXGetScreenPrivate (pDrawable->pScreen); - int h, hTmp; - FontPtr pfont = pGC->font; - register int r; - unsigned long *char1, *char2, *char3, *char4; - int widthGlyphs, widthGlyph; - BoxRec bbox; - BoxPtr extents; - RegionPtr clip; - unsigned long rop; - - widthGlyph = FONTMAXBOUNDS(pfont,characterWidth); - h = FONTASCENT(pfont) + FONTDESCENT(pfont); - clip = pGC->pCompositeClip; - extents = &clip->extents; - - if (REGION_NUM_RECTS(clip) == 1) - { - GXSetClip (gx, extents); - } - else - { - bbox.x1 = x + pDrawable->x; - bbox.x2 = bbox.x1 + (widthGlyph * nglyph); - bbox.y1 = y + pDrawable->y - FONTASCENT(pfont); - bbox.y2 = bbox.y1 + h; - - switch (RECT_IN_REGION(pGC->pScreen, clip, &bbox)) - { - case rgnPART: - if (pglyphBase) - cfbPolyGlyphBlt8(pDrawable, pGC, x, y, nglyph, ppci, NULL); - else - miImageGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); - case rgnOUT: - return; - } - } - - rop = gx_opaque_stipple_rop_table[GXcopy] | GX_PATTERN_ONES; - if (pglyphBase) - rop = gx_stipple_rop_table[pGC->alu] | GX_PATTERN_ONES; - GXDrawInit (gx, pGC->fgPixel, rop, pGC->planemask); - gx->bg = pGC->bgPixel; - gx->mode = GX_BLIT_NOSRC | GX_MODE_COLOR1; - - y = y + pDrawable->y - FONTASCENT(pfont); - x += pDrawable->x; - -#define LoopIt(count, w, loadup, fetch) \ - while (nglyph >= count) \ - { \ - nglyph -= count; \ - gx->incx = 0; \ - gx->incy = 1; \ - gx->x0 = x; \ - gx->x1 = (x += w) - 1; \ - gx->y0 = y; \ - loadup \ - hTmp = h; \ - while (hTmp--) \ - gx->font = fetch; \ - } - - if (widthGlyph <= 8) - { - widthGlyphs = widthGlyph << 2; - LoopIt(4, widthGlyphs, - char1 = (unsigned long *) (*ppci++)->bits; - char2 = (unsigned long *) (*ppci++)->bits; - char3 = (unsigned long *) (*ppci++)->bits; - char4 = (unsigned long *) (*ppci++)->bits;, - (*char1++ | ((*char2++ | ((*char3++ | (*char4++ - >> widthGlyph)) - >> widthGlyph)) - >> widthGlyph))) - } - else if (widthGlyph <= 10) - { - widthGlyphs = (widthGlyph << 1) + widthGlyph; - LoopIt(3, widthGlyphs, - char1 = (unsigned long *) (*ppci++)->bits; - char2 = (unsigned long *) (*ppci++)->bits; - char3 = (unsigned long *) (*ppci++)->bits;, - (*char1++ | ((*char2++ | (*char3++ >> widthGlyph)) >> widthGlyph))) - } - else if (widthGlyph <= 16) - { - widthGlyphs = widthGlyph << 1; - LoopIt(2, widthGlyphs, - char1 = (unsigned long *) (*ppci++)->bits; - char2 = (unsigned long *) (*ppci++)->bits;, - (*char1++ | (*char2++ >> widthGlyph))) - } - while (nglyph--) { - gx->incx = 0; - gx->incy = 1; - gx->x0 = x; - gx->x1 = (x += widthGlyph) - 1; - gx->y0 = y; - char1 = (unsigned long *) (*ppci++)->bits; - hTmp = h; - while (hTmp--) - gx->font = *char1++; - } - gx->incx = 0; - gx->incy = 0; - GXWait (gx, r); - gx->mode = GX_BLIT_SRC | GX_MODE_COLOR8; - GXResetClip (gx, pDrawable->pScreen); -} - -static void -sunGXPolyTEGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) - DrawablePtr pDrawable; - GCPtr pGC; - int x, y; - unsigned int nglyph; - CharInfoPtr *ppci; /* array of character info */ - pointer pglyphBase; /* start of array of glyphs */ -{ - sunGXTEGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, (char *) 1); -} - -static void -sunGXFillBoxSolid (pDrawable, nBox, pBox, pixel) - DrawablePtr pDrawable; - int nBox; - BoxPtr pBox; - unsigned long pixel; -{ - register sunGXPtr gx = sunGXGetScreenPrivate (pDrawable->pScreen); - register int r; - - GXDrawInit(gx,pixel,gx_solid_rop_table[GXcopy]|POLY_N,~0); - while (nBox--) { - gx->arecty = pBox->y1; - gx->arectx = pBox->x1; - gx->arecty = pBox->y2; - gx->arectx = pBox->x2; - pBox++; - GXDrawDone(gx,r); - } - GXWait(gx,r); -} - -void -sunGXFillBoxStipple (pDrawable, nBox, pBox, stipple) - DrawablePtr pDrawable; - int nBox; - BoxPtr pBox; - sunGXStipplePtr stipple; -{ - register sunGXPtr gx = sunGXGetScreenPrivate (pDrawable->pScreen); - register int r; - int patx, paty; - - patx = 16 - (pDrawable->x & 0xf); - paty = 16 - (pDrawable->y & 0xf); - stipple->patalign = (patx << 16) | paty; - GXDrawInit(gx,0,gx_solid_rop_table[GXcopy]|POLY_N,~0); - GXStippleInit(gx, stipple); - while (nBox--) { - gx->arecty = pBox->y1; - gx->arectx = pBox->x1; - gx->arecty = pBox->y2; - gx->arectx = pBox->x2; - pBox++; - GXDrawDone(gx,r); - } - GXWait(gx,r); -} - -Bool -sunGXCheckTile (pPixmap, stipple) - PixmapPtr pPixmap; - sunGXStipplePtr stipple; -{ - unsigned short *sbits; - unsigned int fg = (unsigned int)~0, bg = (unsigned int)~0; - unsigned char *tilebitsLine, *tilebits, tilebit; - unsigned short sbit, mask; - int nbwidth; - int h, w; - int x, y; - int s_y, s_x; - - h = pPixmap->drawable.height; - if (h > 16 || (h & (h - 1))) - return FALSE; - w = pPixmap->drawable.width; - if (w > 16 || (w & (w - 1))) - return FALSE; - sbits = (unsigned short *) stipple->bits; - tilebitsLine = (unsigned char *) pPixmap->devPrivate.ptr; - nbwidth = pPixmap->devKind; - for (y = 0; y < h; y++) { - tilebits = tilebitsLine; - tilebitsLine += nbwidth; - sbit = 0; - mask = 1 << 15; - for (x = 0; x < w; x++) - { - tilebit = *tilebits++; - if (tilebit == fg) - sbit |= mask; - else if (tilebit != bg) - { - if (fg == ~0) - { - fg = tilebit; - sbit |= mask; - } - else if (bg == ~0) - { - bg = tilebit; - } - else - { - return FALSE; - } - } - mask >>= 1; - } - for (s_x = w; s_x < 16; s_x <<= 1) - sbit = sbit | (sbit >> s_x); - for (s_y = y; s_y < 16; s_y += h) - sbits[s_y] = sbit; - } - stipple->fore = fg; - stipple->back = bg; - return TRUE; -} - -Bool -sunGXCheckStipple (pPixmap, stipple) - PixmapPtr pPixmap; - sunGXStipplePtr stipple; -{ - unsigned short *sbits; - unsigned long *stippleBits; - unsigned long sbit, mask; - int h, w; - int y; - int s_y, s_x; - - h = pPixmap->drawable.height; - if (h > 16 || (h & (h - 1))) - return FALSE; - w = pPixmap->drawable.width; - if (w > 16 || (w & (w - 1))) - return FALSE; - sbits = (unsigned short *) stipple->bits; - stippleBits = (unsigned long *) pPixmap->devPrivate.ptr; - mask = ((1 << w) - 1) << (16 - w); - for (y = 0; y < h; y++) { - sbit = (*stippleBits++ >> 16) & mask; - for (s_x = w; s_x < 16; s_x <<= 1) - sbit = sbit | (sbit >> s_x); - for (s_y = y; s_y < 16; s_y += h) - sbits[s_y] = sbit; - } - return TRUE; -} - -/* cache one stipple; figuring out if we can use the stipple is as hard as - * computing it, so we just use this one and leave it here if it - * can't be used this time - */ - -static sunGXStipplePtr tmpStipple; - -Bool -sunGXCheckFill (pGC, pDrawable) - GCPtr pGC; - DrawablePtr pDrawable; -{ - sunGXPrivGCPtr gxPriv = sunGXGetGCPrivate (pGC); - sunGXStipplePtr stipple; - Uint alu; - int xrot, yrot; - - if (pGC->fillStyle == FillSolid) - { - if (gxPriv->stipple) - { - xfree (gxPriv->stipple); - gxPriv->stipple = 0; - } - return TRUE; - } - if (!(stipple = gxPriv->stipple)) - { - if (!tmpStipple) - { - tmpStipple = (sunGXStipplePtr) xalloc (sizeof *tmpStipple); - if (!tmpStipple) - return FALSE; - } - stipple = tmpStipple; - } - alu = gx_opaque_stipple_rop_table[pGC->alu]|GX_PATTERN_MASK; - switch (pGC->fillStyle) { - case FillTiled: - if (!sunGXCheckTile (pGC->tile.pixmap, stipple)) - { - if (gxPriv->stipple) - { - xfree (gxPriv->stipple); - gxPriv->stipple = 0; - } - return FALSE; - } - break; - case FillStippled: - alu = gx_stipple_rop_table[pGC->alu]|GX_PATTERN_MASK; - case FillOpaqueStippled: - if (!sunGXCheckStipple (pGC->stipple, stipple)) - { - if (gxPriv->stipple) - { - xfree (gxPriv->stipple); - gxPriv->stipple = 0; - } - return FALSE; - } - stipple->fore = pGC->fgPixel; - stipple->back = pGC->bgPixel; - break; - } - xrot = (pGC->patOrg.x + pDrawable->x) & 0xf; - yrot = (pGC->patOrg.y + pDrawable->y) & 0xf; -/* - stipple->patalign = ((16 - (xrot & 0xf)) << 16) | (16 - (yrot & 0xf)); -*/ - xrot = 16 - xrot; - yrot = 16 - yrot; - stipple->patalign = (xrot << 16) | yrot; - stipple->alu = alu; - gxPriv->stipple = stipple; - if (stipple == tmpStipple) - tmpStipple = 0; - return TRUE; -} - -void sunGXValidateGC (); -void sunGXDestroyGC (); - -GCFuncs sunGXGCFuncs = { - sunGXValidateGC, - miChangeGC, - miCopyGC, - sunGXDestroyGC, - miChangeClip, - miDestroyClip, - miCopyClip -}; - -GCOps sunGXTEOps1Rect = { - sunGXFillSpans, - cfbSetSpans, - cfbPutImage, - sunGXCopyArea, - sunGXCopyPlane, - cfbPolyPoint, - sunGXPolylines1Rect, - sunGXPolySeg1Rect, - miPolyRectangle, - cfbZeroPolyArcSS8Copy, - sunGXFillPoly1Rect, - sunGXPolyFillRect1Rect, - sunGXPolyFillArc, - miPolyText8, - miPolyText16, - miImageText8, - miImageText16, - sunGXTEGlyphBlt, - sunGXPolyTEGlyphBlt, - cfbPushPixels8 -#ifdef NEED_LINEHELPER - ,NULL -#endif -}; - -GCOps sunGXTEOps = { - sunGXFillSpans, - cfbSetSpans, - cfbPutImage, - sunGXCopyArea, - sunGXCopyPlane, - cfbPolyPoint, - cfbLineSS, - cfbSegmentSS, - miPolyRectangle, - cfbZeroPolyArcSS8Copy, - miFillPolygon, - sunGXPolyFillRect, - sunGXPolyFillArc, - miPolyText8, - miPolyText16, - miImageText8, - miImageText16, - sunGXTEGlyphBlt, - sunGXPolyTEGlyphBlt, - cfbPushPixels8 -#ifdef NEED_LINEHELPER - ,NULL -#endif -}; - -GCOps sunGXNonTEOps1Rect = { - sunGXFillSpans, - cfbSetSpans, - cfbPutImage, - sunGXCopyArea, - sunGXCopyPlane, - cfbPolyPoint, - sunGXPolylines1Rect, - sunGXPolySeg1Rect, - miPolyRectangle, - cfbZeroPolyArcSS8Copy, - sunGXFillPoly1Rect, - sunGXPolyFillRect1Rect, - sunGXPolyFillArc, - miPolyText8, - miPolyText16, - miImageText8, - miImageText16, - miImageGlyphBlt, - sunGXPolyGlyphBlt, - cfbPushPixels8 -#ifdef NEED_LINEHELPER - ,NULL -#endif -}; - -GCOps sunGXNonTEOps = { - sunGXFillSpans, - cfbSetSpans, - cfbPutImage, - sunGXCopyArea, - sunGXCopyPlane, - cfbPolyPoint, - cfbLineSS, - cfbSegmentSS, - miPolyRectangle, - cfbZeroPolyArcSS8Copy, - miFillPolygon, - sunGXPolyFillRect, - sunGXPolyFillArc, - miPolyText8, - miPolyText16, - miImageText8, - miImageText16, - miImageGlyphBlt, - sunGXPolyGlyphBlt, - cfbPushPixels8 -#ifdef NEED_LINEHELPER - ,NULL -#endif -}; - -#define FONTWIDTH(font) (FONTMAXBOUNDS(font,rightSideBearing) - \ - FONTMINBOUNDS(font,leftSideBearing)) - -GCOps * -sunGXMatchCommon (pGC, devPriv) - GCPtr pGC; - cfbPrivGCPtr devPriv; -{ - if (pGC->lineWidth != 0) - return 0; - if (pGC->lineStyle != LineSolid) - return 0; - if (pGC->fillStyle != FillSolid) - return 0; - if (devPriv->rop != GXcopy) - return 0; - if (!WID_OK(pGC->pScreen)) - return 0; - if (pGC->font && - FONTWIDTH (pGC->font) <= 32 && - FONTMINBOUNDS(pGC->font,characterWidth) >= 0) - { - if (TERMINALFONT(pGC->font)) - if (devPriv->oneRect) - return &sunGXTEOps1Rect; - else - return &sunGXTEOps; - else - if (devPriv->oneRect) - return &sunGXNonTEOps1Rect; - else - return &sunGXNonTEOps; - } - return 0; -} - -void -sunGXValidateGC (pGC, changes, pDrawable) - GCPtr pGC; - Mask changes; - DrawablePtr pDrawable; -{ - int mask; /* stateChanges */ - int index; /* used for stepping through bitfields */ - int new_rrop; - int new_line, new_text, new_fillspans, new_fillarea; - int new_rotate; - int xrot, yrot; - /* flags for changing the proc vector */ - cfbPrivGCPtr devPriv; - sunGXPrivGCPtr gxPriv; - int oneRect; - int canGX; - int widOK; - - gxPriv = sunGXGetGCPrivate (pGC); - widOK = WID_OK(pGC->pScreen); - if (pDrawable->type != DRAWABLE_WINDOW) - { - if (gxPriv->type == DRAWABLE_WINDOW) - { - extern GCOps cfbNonTEOps; - - miDestroyGCOps (pGC->ops); - pGC->ops = &cfbNonTEOps; - changes = (1 << (GCLastBit + 1)) - 1; - pGC->stateChanges = changes; - gxPriv->type = pDrawable->type; - } - cfbValidateGC (pGC, changes, pDrawable); - return; - } - if (gxPriv->type != DRAWABLE_WINDOW) - { - changes = (1 << (GCLastBit + 1)) - 1; - gxPriv->type = DRAWABLE_WINDOW; - } - - new_rotate = pGC->lastWinOrg.x != pDrawable->x || - pGC->lastWinOrg.y != pDrawable->y; - - pGC->lastWinOrg.x = pDrawable->x; - pGC->lastWinOrg.y = pDrawable->y; - - devPriv = ((cfbPrivGCPtr) (pGC->devPrivates[cfbGCPrivateIndex].ptr)); - - new_rrop = FALSE; - new_line = FALSE; - new_text = FALSE; - new_fillspans = FALSE; - new_fillarea = FALSE; - - /* - * if the client clip is different or moved OR the subwindowMode has - * changed OR the window's clip has changed since the last validation - * we need to recompute the composite clip - */ - - if ((changes & (GCClipXOrigin|GCClipYOrigin|GCClipMask|GCSubwindowMode)) || - (pDrawable->serialNumber != (pGC->serialNumber & DRAWABLE_SERIAL_BITS)) - ) - { - miComputeCompositeClip(pGC, pDrawable); - oneRect = REGION_NUM_RECTS(pGC->pCompositeClip) == 1; - if (oneRect != devPriv->oneRect) - { - new_line = TRUE; - new_fillarea = TRUE; - devPriv->oneRect = oneRect; - } - } - - mask = changes; - while (mask) { - index = lowbit (mask); - mask &= ~index; - - /* - * this switch acculmulates a list of which procedures might have - * to change due to changes in the GC. in some cases (e.g. - * changing one 16 bit tile for another) we might not really need - * a change, but the code is being paranoid. this sort of batching - * wins if, for example, the alu and the font have been changed, - * or any other pair of items that both change the same thing. - */ - switch (index) { - case GCFunction: - case GCForeground: - new_rrop = TRUE; - break; - case GCPlaneMask: - new_rrop = TRUE; - new_text = TRUE; - break; - case GCBackground: - break; - case GCLineStyle: - case GCLineWidth: - new_line = TRUE; - break; - case GCCapStyle: - break; - case GCJoinStyle: - break; - case GCFillStyle: - new_text = TRUE; - new_fillspans = TRUE; - new_line = TRUE; - new_fillarea = TRUE; - break; - case GCFillRule: - break; - case GCTile: - new_fillspans = TRUE; - new_fillarea = TRUE; - break; - - case GCStipple: - new_fillspans = TRUE; - new_fillarea = TRUE; - break; - - case GCTileStipXOrigin: - new_rotate = TRUE; - break; - - case GCTileStipYOrigin: - new_rotate = TRUE; - break; - - case GCFont: - new_text = TRUE; - break; - case GCSubwindowMode: - break; - case GCGraphicsExposures: - break; - case GCClipXOrigin: - break; - case GCClipYOrigin: - break; - case GCClipMask: - break; - case GCDashOffset: - break; - case GCDashList: - break; - case GCArcMode: - break; - default: - break; - } - } - - /* - * If the drawable has changed, check its depth & ensure suitable - * entries are in the proc vector. - */ - if (pDrawable->serialNumber != (pGC->serialNumber & (DRAWABLE_SERIAL_BITS))) { - new_fillspans = TRUE; /* deal with FillSpans later */ - } - - if ((new_rotate || new_fillspans)) - { - Bool new_pix = FALSE; - xrot = pGC->patOrg.x + pDrawable->x; - yrot = pGC->patOrg.y + pDrawable->y; - - if (!sunGXCheckFill (pGC, pDrawable)) - { - switch (pGC->fillStyle) - { - case FillTiled: - if (!pGC->tileIsPixel) - { - int width = pGC->tile.pixmap->drawable.width * PSZ; - - if ((width <= 32) && !(width & (width - 1))) - { - cfbCopyRotatePixmap(pGC->tile.pixmap, - &pGC->pRotatedPixmap, - xrot, yrot); - new_pix = TRUE; - } - } - break; - case FillStippled: - case FillOpaqueStippled: - { - int width = pGC->stipple->drawable.width; - - if ((width <= 32) && !(width & (width - 1))) - { - mfbCopyRotatePixmap(pGC->stipple, - &pGC->pRotatedPixmap, xrot, yrot); - new_pix = TRUE; - } - } - break; - } - } - if (!new_pix && pGC->pRotatedPixmap) - { - cfbDestroyPixmap(pGC->pRotatedPixmap); - pGC->pRotatedPixmap = (PixmapPtr) NULL; - } - } - - if (new_rrop) - { - int old_rrop; - - if (gxPriv->stipple) - { - if (pGC->fillStyle == FillStippled) - gxPriv->stipple->alu = gx_stipple_rop_table[pGC->alu]|GX_PATTERN_MASK; - else - gxPriv->stipple->alu = gx_opaque_stipple_rop_table[pGC->alu]|GX_PATTERN_MASK; - if (pGC->fillStyle != FillTiled) - { - gxPriv->stipple->fore = pGC->fgPixel; - gxPriv->stipple->back = pGC->bgPixel; - } - } - old_rrop = devPriv->rop; - devPriv->rop = cfbReduceRasterOp (pGC->alu, pGC->fgPixel, - pGC->planemask, - &devPriv->and, &devPriv->xor); - if (old_rrop == devPriv->rop) - new_rrop = FALSE; - else - { - new_line = TRUE; - new_text = TRUE; - new_fillspans = TRUE; - new_fillarea = TRUE; - } - } - - if (new_rrop || new_fillspans || new_text || new_fillarea || new_line) - { - GCOps *newops; - - if ((newops = sunGXMatchCommon (pGC, devPriv))) - { - if (pGC->ops->devPrivate.val) - miDestroyGCOps (pGC->ops); - pGC->ops = newops; - new_rrop = new_line = new_fillspans = new_text = new_fillarea = 0; - } - else - { - if (!pGC->ops->devPrivate.val) - { - pGC->ops = miCreateGCOps (pGC->ops); - pGC->ops->devPrivate.val = 1; - } - } - } - - canGX = pGC->fillStyle == FillSolid || gxPriv->stipple; - - /* deal with the changes we've collected */ - if (new_line) - { - pGC->ops->FillPolygon = miFillPolygon; - if (devPriv->oneRect && canGX) - pGC->ops->FillPolygon = sunGXFillPoly1Rect; - if (pGC->lineWidth == 0) - { - if ((pGC->lineStyle == LineSolid) && (pGC->fillStyle == FillSolid)) - { - switch (devPriv->rop) - { - case GXxor: - pGC->ops->PolyArc = cfbZeroPolyArcSS8Xor; - break; - case GXcopy: - pGC->ops->PolyArc = cfbZeroPolyArcSS8Copy; - break; - default: - pGC->ops->PolyArc = cfbZeroPolyArcSS8General; - break; - } - } - else - pGC->ops->PolyArc = miZeroPolyArc; - } - else - pGC->ops->PolyArc = miPolyArc; - pGC->ops->PolySegment = miPolySegment; - switch (pGC->lineStyle) - { - case LineSolid: - if(pGC->lineWidth == 0) - { - if (devPriv->oneRect && canGX && widOK) - { - pGC->ops->PolySegment = sunGXPolySeg1Rect; - pGC->ops->Polylines = sunGXPolylines1Rect; - } - else if (pGC->fillStyle == FillSolid) - { - if (devPriv->oneRect) - { - pGC->ops->Polylines = cfb8LineSS1Rect; - pGC->ops->PolySegment = cfb8SegmentSS1Rect; - } - else - { - pGC->ops->Polylines = cfbLineSS; - pGC->ops->PolySegment = cfbSegmentSS; - } - } - else - pGC->ops->Polylines = miZeroLine; - } - else - pGC->ops->Polylines = miWideLine; - break; - case LineOnOffDash: - case LineDoubleDash: - if (pGC->lineWidth == 0 && pGC->fillStyle == FillSolid) - { - pGC->ops->Polylines = cfbLineSD; - pGC->ops->PolySegment = cfbSegmentSD; - } else - pGC->ops->Polylines = miWideDash; - break; - } - } - - if (new_text && (pGC->font)) - { - if (FONTWIDTH(pGC->font) > 32 || - FONTMINBOUNDS(pGC->font,characterWidth) < 0) - { - pGC->ops->PolyGlyphBlt = miPolyGlyphBlt; - pGC->ops->ImageGlyphBlt = miImageGlyphBlt; - } - else - { - if (pGC->fillStyle == FillSolid) - { - if (TERMINALFONT (pGC->font)) - pGC->ops->PolyGlyphBlt = sunGXPolyTEGlyphBlt; - else - pGC->ops->PolyGlyphBlt = sunGXPolyGlyphBlt; - } - else - pGC->ops->PolyGlyphBlt = miPolyGlyphBlt; - /* special case ImageGlyphBlt for terminal emulator fonts */ - if (TERMINALFONT(pGC->font)) - pGC->ops->ImageGlyphBlt = sunGXTEGlyphBlt; - else - pGC->ops->ImageGlyphBlt = miImageGlyphBlt; - } - } - - - if (new_fillspans) { - if (canGX) - pGC->ops->FillSpans = sunGXFillSpans; - else switch (pGC->fillStyle) { - case FillTiled: - if (pGC->pRotatedPixmap) - { - if (pGC->alu == GXcopy && (pGC->planemask & PMSK) == PMSK) - pGC->ops->FillSpans = cfbTile32FSCopy; - else - pGC->ops->FillSpans = cfbTile32FSGeneral; - } - else - pGC->ops->FillSpans = cfbUnnaturalTileFS; - break; - case FillStippled: - if (pGC->pRotatedPixmap) - pGC->ops->FillSpans = cfb8Stipple32FS; - else - pGC->ops->FillSpans = cfbUnnaturalStippleFS; - break; - case FillOpaqueStippled: - if (pGC->pRotatedPixmap) - pGC->ops->FillSpans = cfb8OpaqueStipple32FS; - else - pGC->ops->FillSpans = cfbUnnaturalStippleFS; - break; - default: - FatalError("cfbValidateGC: illegal fillStyle\n"); - } - } /* end of new_fillspans */ - - if (new_fillarea) { - pGC->ops->PolyFillRect = cfbPolyFillRect; - pGC->ops->PolyFillArc = miPolyFillArc; - if (canGX) - { - pGC->ops->PolyFillArc = sunGXPolyFillArc; - pGC->ops->PolyFillRect = sunGXPolyFillRect; - if (devPriv->oneRect) - pGC->ops->PolyFillRect = sunGXPolyFillRect1Rect; - } - pGC->ops->PushPixels = mfbPushPixels; - if (pGC->fillStyle == FillSolid && devPriv->rop == GXcopy) - pGC->ops->PushPixels = cfbPushPixels8; - } -} - -void -sunGXDestroyGC (pGC) - GCPtr pGC; -{ - sunGXPrivGCPtr gxPriv = sunGXGetGCPrivate (pGC); - - if (gxPriv->stipple) - xfree (gxPriv->stipple); - miDestroyGC (pGC); -} - -Bool -sunGXCreateGC (pGC) - GCPtr pGC; -{ - sunGXPrivGCPtr gxPriv; - if (pGC->depth == 1) - return mfbCreateGC (pGC); - if (!cfbCreateGC (pGC)) - return FALSE; - pGC->ops = &sunGXNonTEOps; - pGC->funcs = &sunGXGCFuncs; - gxPriv = sunGXGetGCPrivate(pGC); - gxPriv->type = DRAWABLE_WINDOW; - gxPriv->stipple = 0; - return TRUE; -} - -Bool -sunGXCreateWindow (pWin) - WindowPtr pWin; -{ - if (!cfbCreateWindow (pWin)) - return FALSE; - pWin->devPrivates[sunGXWindowPrivateIndex].ptr = 0; - return TRUE; -} - -Bool -sunGXDestroyWindow (pWin) - WindowPtr pWin; -{ - sunGXStipplePtr stipple = sunGXGetWindowPrivate(pWin); - xfree (stipple); - return cfbDestroyWindow (pWin); -} - -Bool -sunGXChangeWindowAttributes (pWin, mask) - WindowPtr pWin; - Mask mask; -{ - sunGXStipplePtr stipple; - Mask index; - WindowPtr pBgWin; - register cfbPrivWin *pPrivWin; - int width; - - pPrivWin = (cfbPrivWin *)(pWin->devPrivates[cfbWindowPrivateIndex].ptr); - /* - * When background state changes from ParentRelative and - * we had previously rotated the fast border pixmap to match - * the parent relative origin, rerotate to match window - */ - if (mask & (CWBackPixmap | CWBackPixel) && - pWin->backgroundState != ParentRelative && - pPrivWin->fastBorder && - (pPrivWin->oldRotate.x != pWin->drawable.x || - pPrivWin->oldRotate.y != pWin->drawable.y)) - { - cfbXRotatePixmap(pPrivWin->pRotatedBorder, - pWin->drawable.x - pPrivWin->oldRotate.x); - cfbYRotatePixmap(pPrivWin->pRotatedBorder, - pWin->drawable.y - pPrivWin->oldRotate.y); - pPrivWin->oldRotate.x = pWin->drawable.x; - pPrivWin->oldRotate.y = pWin->drawable.y; - } - while (mask) - { - index = lowbit(mask); - mask &= ~index; - switch (index) - { - case CWBackPixmap: - stipple = sunGXGetWindowPrivate(pWin); - if (pWin->backgroundState == None || - pWin->backgroundState == ParentRelative) - { - pPrivWin->fastBackground = FALSE; - if (stipple) - { - xfree (stipple); - sunGXSetWindowPrivate(pWin,0); - } - /* Rotate border to match parent origin */ - if (pWin->backgroundState == ParentRelative && - pPrivWin->pRotatedBorder) - { - for (pBgWin = pWin->parent; - pBgWin->backgroundState == ParentRelative; - pBgWin = pBgWin->parent); - cfbXRotatePixmap(pPrivWin->pRotatedBorder, - pBgWin->drawable.x - pPrivWin->oldRotate.x); - cfbYRotatePixmap(pPrivWin->pRotatedBorder, - pBgWin->drawable.y - pPrivWin->oldRotate.y); - } - - break; - } - if (!stipple) - { - if (!tmpStipple) - tmpStipple = (sunGXStipplePtr) xalloc (sizeof *tmpStipple); - stipple = tmpStipple; - } - if (stipple && sunGXCheckTile (pWin->background.pixmap, stipple)) - { - stipple->alu = gx_opaque_stipple_rop_table[GXcopy]|GX_PATTERN_MASK; - pPrivWin->fastBackground = FALSE; - if (stipple == tmpStipple) - { - sunGXSetWindowPrivate(pWin, stipple); - tmpStipple = 0; - } - break; - } - if ((stipple = sunGXGetWindowPrivate(pWin))) - { - xfree (stipple); - sunGXSetWindowPrivate(pWin,0); - } - if (((width = (pWin->background.pixmap->drawable.width * PSZ)) <= 32) && - !(width & (width - 1))) - { - cfbCopyRotatePixmap(pWin->background.pixmap, - &pPrivWin->pRotatedBackground, - pWin->drawable.x, - pWin->drawable.y); - if (pPrivWin->pRotatedBackground) - { - pPrivWin->fastBackground = TRUE; - pPrivWin->oldRotate.x = pWin->drawable.x; - pPrivWin->oldRotate.y = pWin->drawable.y; - } - else - { - pPrivWin->fastBackground = FALSE; - } - break; - } - pPrivWin->fastBackground = FALSE; - break; - - case CWBackPixel: - pPrivWin->fastBackground = FALSE; - break; - - case CWBorderPixmap: - /* don't bother with accelerator for border tiles (just lazy) */ - if (((width = (pWin->border.pixmap->drawable.width * PSZ)) <= 32) && - !(width & (width - 1))) - { - for (pBgWin = pWin; - pBgWin->backgroundState == ParentRelative; - pBgWin = pBgWin->parent); - cfbCopyRotatePixmap(pWin->border.pixmap, - &pPrivWin->pRotatedBorder, - pBgWin->drawable.x, - pBgWin->drawable.y); - if (pPrivWin->pRotatedBorder) - { - pPrivWin->fastBorder = TRUE; - pPrivWin->oldRotate.x = pBgWin->drawable.x; - pPrivWin->oldRotate.y = pBgWin->drawable.y; - } - else - { - pPrivWin->fastBorder = TRUE; - } - } - else - { - pPrivWin->fastBorder = FALSE; - } - break; - case CWBorderPixel: - pPrivWin->fastBorder = FALSE; - break; - } - } - return (TRUE); -} - -void -sunGXPaintWindow(pWin, pRegion, what) - WindowPtr pWin; - RegionPtr pRegion; - int what; -{ - register cfbPrivWin *pPrivWin; - sunGXStipplePtr stipple; - WindowPtr pBgWin; - pPrivWin = (cfbPrivWin *)(pWin->devPrivates[cfbWindowPrivateIndex].ptr); - - switch (what) { - case PW_BACKGROUND: - stipple = sunGXGetWindowPrivate(pWin); - switch (pWin->backgroundState) { - case None: - return; - case ParentRelative: - do { - pWin = pWin->parent; - } while (pWin->backgroundState == ParentRelative); - (*pWin->drawable.pScreen->PaintWindowBackground)(pWin, pRegion, - what); - return; - case BackgroundPixmap: - if (stipple) - { - sunGXFillBoxStipple ((DrawablePtr)pWin, - (int)REGION_NUM_RECTS(pRegion), - REGION_RECTS(pRegion), - stipple); - } - else if (pPrivWin->fastBackground) - { - cfbFillBoxTile32 ((DrawablePtr)pWin, - (int)REGION_NUM_RECTS(pRegion), - REGION_RECTS(pRegion), - pPrivWin->pRotatedBackground); - } - else - { - cfbFillBoxTileOdd ((DrawablePtr)pWin, - (int)REGION_NUM_RECTS(pRegion), - REGION_RECTS(pRegion), - pWin->background.pixmap, - (int) pWin->drawable.x, (int) pWin->drawable.y); - } - return; - case BackgroundPixel: - sunGXFillBoxSolid((DrawablePtr)pWin, - (int)REGION_NUM_RECTS(pRegion), - REGION_RECTS(pRegion), - pWin->background.pixel); - return; - } - break; - case PW_BORDER: - if (pWin->borderIsPixel) - { - sunGXFillBoxSolid((DrawablePtr)pWin, - (int)REGION_NUM_RECTS(pRegion), - REGION_RECTS(pRegion), - pWin->border.pixel); - return; - } - else if (pPrivWin->fastBorder) - { - cfbFillBoxTile32 ((DrawablePtr)pWin, - (int)REGION_NUM_RECTS(pRegion), - REGION_RECTS(pRegion), - pPrivWin->pRotatedBorder); - return; - } - else - { - for (pBgWin = pWin; - pBgWin->backgroundState == ParentRelative; - pBgWin = pBgWin->parent); - - cfbFillBoxTileOdd ((DrawablePtr)pWin, - (int)REGION_NUM_RECTS(pRegion), - REGION_RECTS(pRegion), - pWin->border.pixmap, - (int) pBgWin->drawable.x, - (int) pBgWin->drawable.y); - return; - } - break; - } -} - -void -sunGXCopyWindow(pWin, ptOldOrg, prgnSrc) - WindowPtr pWin; - DDXPointRec ptOldOrg; - RegionPtr prgnSrc; -{ - DDXPointPtr pptSrc; - register DDXPointPtr ppt; - RegionPtr prgnDst; - register BoxPtr pbox; - register int dx, dy; - register int i, nbox; - WindowPtr pwinRoot; - extern WindowPtr *WindowTable; - - pwinRoot = WindowTable[pWin->drawable.pScreen->myNum]; - - prgnDst = REGION_CREATE(pWin->drawable.pScreen, NULL, 1); - - dx = ptOldOrg.x - pWin->drawable.x; - dy = ptOldOrg.y - pWin->drawable.y; - REGION_TRANSLATE(pWin->drawable.pScreen, prgnSrc, -dx, -dy); - REGION_INTERSECT(pWin->drawable.pScreen, prgnDst, &pWin->borderClip, prgnSrc); - - pbox = REGION_RECTS(prgnDst); - nbox = REGION_NUM_RECTS(prgnDst); - if(!(pptSrc = (DDXPointPtr )ALLOCATE_LOCAL(nbox * sizeof(DDXPointRec)))) - return; - ppt = pptSrc; - - for (i = nbox; --i >= 0; ppt++, pbox++) - { - ppt->x = pbox->x1 + dx; - ppt->y = pbox->y1 + dy; - } - - sunGXDoBitblt ((DrawablePtr)pwinRoot, (DrawablePtr)pwinRoot, - GXcopy, prgnDst, pptSrc, ~0L); - DEALLOCATE_LOCAL(pptSrc); - REGION_DESTROY(pWin->drawable.pScreen, prgnDst); -} - -Bool -sunGXInit ( - ScreenPtr pScreen, - fbFd *fb) -{ - sunGXPtr gx; - Uint mode; - register long r; - - if (serverGeneration != sunGXGeneration) - { - sunGXScreenPrivateIndex = AllocateScreenPrivateIndex(); - if (sunGXScreenPrivateIndex == -1) - return FALSE; - sunGXGCPrivateIndex = AllocateGCPrivateIndex (); - sunGXWindowPrivateIndex = AllocateWindowPrivateIndex (); - sunGXGeneration = serverGeneration; - } - if (!AllocateGCPrivate(pScreen, sunGXGCPrivateIndex, sizeof (sunGXPrivGCRec))) - return FALSE; - if (!AllocateWindowPrivate(pScreen, sunGXWindowPrivateIndex, 0)) - return FALSE; - gx = (sunGXPtr) fb->fb; - mode = gx->mode; - GXWait(gx,r); - mode &= ~( GX_BLIT_ALL | - GX_MODE_ALL | - GX_DRAW_ALL | - GX_BWRITE0_ALL | - GX_BWRITE1_ALL | - GX_BREAD_ALL | - GX_BDISP_ALL); - mode |= GX_BLIT_SRC | - GX_MODE_COLOR8 | - GX_DRAW_RENDER | - GX_BWRITE0_ENABLE | - GX_BWRITE1_DISABLE | - GX_BREAD_0 | - GX_BDISP_0; - gx->mode = mode; - gx->clip = 0; - gx->offx = 0; - gx->offy = 0; - gx->clipminx = 0; - gx->clipminy = 0; - gx->clipmaxx = fb->info.fb_width - 1; - gx->clipmaxy = fb->info.fb_height - 1; - pScreen->devPrivates[sunGXScreenPrivateIndex].ptr = (pointer) gx; - /* - * Replace various screen functions - */ - pScreen->CreateGC = sunGXCreateGC; - pScreen->CreateWindow = sunGXCreateWindow; - pScreen->ChangeWindowAttributes = sunGXChangeWindowAttributes; - pScreen->DestroyWindow = sunGXDestroyWindow; - pScreen->PaintWindowBackground = sunGXPaintWindow; - pScreen->PaintWindowBorder = sunGXPaintWindow; - pScreen->CopyWindow = sunGXCopyWindow; - return TRUE; -} diff --git a/nx-X11/programs/Xserver/hw/sun/sunGX.h b/nx-X11/programs/Xserver/hw/sun/sunGX.h deleted file mode 100644 index ebf1da19f..000000000 --- a/nx-X11/programs/Xserver/hw/sun/sunGX.h +++ /dev/null @@ -1,238 +0,0 @@ -/* - * $Xorg: sunGX.h,v 1.4 2001/02/09 02:04:44 xorgcvs Exp $ - * -Copyright 1991, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - * - * Author: Keith Packard, MIT X Consortium - */ -/* $XFree86: xc/programs/Xserver/hw/sun/sunGX.h,v 1.3 2001/07/29 05:01:13 tsi Exp $ */ - -typedef unsigned int Uint; -typedef volatile Uint VUint; - -/* modes */ -#define GX_INDEX(n) ((n) << 4) -#define GX_INDEX_ALL 0x00000030 -#define GX_INDEX_MOD 0x00000040 -#define GX_BDISP_0 0x00000080 -#define GX_BDISP_1 0x00000100 -#define GX_BDISP_ALL 0x00000180 -#define GX_BREAD_0 0x00000200 -#define GX_BREAD_1 0x00000400 -#define GX_BREAD_ALL 0x00000600 -#define GX_BWRITE1_ENABLE 0x00000800 -#define GX_BWRITE1_DISABLE 0x00001000 -#define GX_BWRITE1_ALL 0x00001800 -#define GX_BWRITE0_ENABLE 0x00002000 -#define GX_BWRITE0_DISABLE 0x00004000 -#define GX_BWRITE0_ALL 0x00006000 -#define GX_DRAW_RENDER 0x00008000 -#define GX_DRAW_PICK 0x00010000 -#define GX_DRAW_ALL 0x00018000 -#define GX_MODE_COLOR8 0x00020000 -#define GX_MODE_COLOR1 0x00040000 -#define GX_MODE_HRMONO 0x00060000 -#define GX_MODE_ALL 0x00060000 -#define GX_VBLANK 0x00080000 -#define GX_BLIT_NOSRC 0x00100000 -#define GX_BLIT_SRC 0x00200000 -#define GX_BLIT_ALL 0x00300000 - -/* rasterops */ -#define GX_ROP_CLEAR 0x0 -#define GX_ROP_INVERT 0x1 -#define GX_ROP_NOOP 0x2 -#define GX_ROP_SET 0x3 - -#define GX_ROP_00_0(rop) ((rop) << 0) -#define GX_ROP_00_1(rop) ((rop) << 2) -#define GX_ROP_01_0(rop) ((rop) << 4) -#define GX_ROP_01_1(rop) ((rop) << 6) -#define GX_ROP_10_0(rop) ((rop) << 8) -#define GX_ROP_10_1(rop) ((rop) << 10) -#define GX_ROP_11_0(rop) ((rop) << 12) -#define GX_ROP_11_1(rop) ((rop) << 14) -#define GX_PLOT_PLOT 0x00000000 -#define GX_PLOT_UNPLOT 0x00020000 -#define GX_RAST_BOOL 0x00000000 -#define GX_RAST_LINEAR 0x00040000 -#define GX_ATTR_UNSUPP 0x00400000 -#define GX_ATTR_SUPP 0x00800000 -#define GX_POLYG_OVERLAP 0x01000000 -#define GX_POLYG_NONOVERLAP 0x02000000 -#define GX_PATTERN_ZEROS 0x04000000 -#define GX_PATTERN_ONES 0x08000000 -#define GX_PATTERN_MASK 0x0c000000 -#define GX_PIXEL_ZEROS 0x10000000 -#define GX_PIXEL_ONES 0x20000000 -#define GX_PIXEL_MASK 0x30000000 -#define GX_PLANE_ZEROS 0x40000000 -#define GX_PLANE_ONES 0x80000000 -#define GX_PLANE_MASK 0xc0000000 - -typedef struct _sunGX { - Uint junk0[1]; - VUint mode; - VUint clip; - Uint junk1[1]; - VUint s; - VUint draw; - VUint blit; - VUint font; - Uint junk2[24]; - VUint x0, y0, z0, color0; - VUint x1, y1, z1, color1; - VUint x2, y2, z2, color2; - VUint x3, y3, z3, color3; - VUint offx, offy; - Uint junk3[2]; - VUint incx, incy; - Uint junk4[2]; - VUint clipminx, clipminy; - Uint junk5[2]; - VUint clipmaxx, clipmaxy; - Uint junk6[2]; - VUint fg; - VUint bg; - VUint alu; - VUint pm; - VUint pixelm; - Uint junk7[2]; - VUint patalign; - VUint pattern[8]; - Uint junk8[432]; - VUint apointx, apointy, apointz; - Uint junk9[1]; - VUint rpointx, rpointy, rpointz; - Uint junk10[5]; - VUint pointr, pointg, pointb, pointa; - VUint alinex, aliney, alinez; - Uint junk11[1]; - VUint rlinex, rliney, rlinez; - Uint junk12[5]; - VUint liner, lineg, lineb, linea; - VUint atrix, atriy, atriz; - Uint junk13[1]; - VUint rtrix, rtriy, rtriz; - Uint junk14[5]; - VUint trir, trig, trib, tria; - VUint aquadx, aquady, aquadz; - Uint junk15[1]; - VUint rquadx, rquady, rquadz; - Uint junk16[5]; - VUint quadr, quadg, quadb, quada; - VUint arectx, arecty, arectz; - Uint junk17[1]; - VUint rrectx, rrecty, rrectz; - Uint junk18[5]; - VUint rectr, rectg, rectb, recta; -} sunGX, *sunGXPtr; - -/* Macros */ - -#define GX_ROP_USE_PIXELMASK 0x30000000 - -#define GX_BLT_INPROGRESS 0x20000000 - -#define GX_INPROGRESS 0x10000000 -#define GX_FULL 0x20000000 - -#define GXWait(gx,r)\ - do\ - (r) = (int) (gx)->s; \ - while ((r) & GX_INPROGRESS) - -#define GXDrawDone(gx,r) \ - do \ - (r) = (int) (gx)->draw; \ - while ((r) < 0 && ((r) & GX_FULL)) - -#define GXBlitDone(gx,r)\ - do\ - (r)= (int) (gx)->blit; \ - while ((r) < 0 && ((r) & GX_BLT_INPROGRESS)) - -#define GXBlitInit(gx,rop,pmsk) {\ - gx->fg = 0xff;\ - gx->bg = 0x00;\ - gx->pixelm = ~0;\ - gx->s = 0;\ - gx->alu = rop;\ - gx->pm = pmsk;\ - gx->clip = 0;\ -} - -#define GXDrawInit(gx,fore,rop,pmsk) {\ - gx->fg = fore;\ - gx->bg = 0x00; \ - gx->pixelm = ~0; \ - gx->s = 0; \ - gx->alu = rop; \ - gx->pm = pmsk; \ - gx->clip = 0;\ -} - -#define GXStippleInit(gx,stipple) {\ - int _i; \ - Uint *sp; \ - VUint *dp; \ - _i = 8; \ - sp = stipple->bits; \ - dp = gx->pattern; \ - while (_i--) { \ - dp[_i] = sp[_i]; \ - } \ - gx->fg = stipple->fore; \ - gx->bg = stipple->back; \ - gx->patalign = stipple->patalign; \ - gx->alu = stipple->alu; \ -} - -extern int sunGXScreenPrivateIndex; -extern int sunGXGCPrivateIndex; -extern int sunGXWindowPrivateIndex; - -#define sunGXGetScreenPrivate(s) ((sunGXPtr) \ - (s)->devPrivates[sunGXScreenPrivateIndex].ptr) - -typedef struct _sunGXStipple { - Uint fore, back; - Uint patalign; - Uint alu; - Uint bits[8]; /* actually 16 shorts */ -} sunGXStippleRec, *sunGXStipplePtr; - -typedef struct _sunGXPrivGC { - int type; - sunGXStipplePtr stipple; -} sunGXPrivGCRec, *sunGXPrivGCPtr; - -#define sunGXGetGCPrivate(g) ((sunGXPrivGCPtr) \ - (g)->devPrivates[sunGXGCPrivateIndex].ptr) - -#define sunGXGetWindowPrivate(w) ((sunGXStipplePtr) \ - (w)->devPrivates[sunGXWindowPrivateIndex].ptr) - -#define sunGXSetWindowPrivate(w,p) (\ - (w)->devPrivates[sunGXWindowPrivateIndex].ptr = (pointer) p) - diff --git a/nx-X11/programs/Xserver/hw/sun/sunInit.c b/nx-X11/programs/Xserver/hw/sun/sunInit.c deleted file mode 100644 index 62cc8c76a..000000000 --- a/nx-X11/programs/Xserver/hw/sun/sunInit.c +++ /dev/null @@ -1,960 +0,0 @@ -/* $Xorg: sunInit.c,v 1.4 2000/08/17 19:48:29 cpqbld Exp $ */ -/* - * sunInit.c -- - * Initialization functions for screen/keyboard/mouse, etc. - * - * Copyright 1987 by the Regents of the University of California - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies. The University of California - * makes no representations about the suitability of this - * software for any purpose. It is provided "as is" without - * express or implied warranty. - * - * - */ -/* $XFree86: xc/programs/Xserver/hw/sun/sunInit.c,v 3.12 2002/12/06 02:11:44 tsi Exp $ */ - -/************************************************************ -Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this -software and its documentation for any purpose and without -fee is hereby granted, provided that the above copyright no- -tice appear in all copies and that both that copyright no- -tice and this permission notice appear in supporting docu- -mentation, and that the names of Sun or The Open Group -not be used in advertising or publicity pertaining to -distribution of the software without specific prior -written permission. Sun and The Open Group make no -representations about the suitability of this software for -any purpose. It is provided "as is" without any express or -implied warranty. - -SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT- -NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE LI- -ABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH -THE USE OR PERFORMANCE OF THIS SOFTWARE. - -*******************************************************/ - -#include "sun.h" -#include "gcstruct.h" -#include "mi.h" -#include "mibstore.h" -#include "cfb.h" -#include "cfb16.h" -#include "cfb32.h" - -/* maximum pixmap depth */ -#ifndef SUNMAXDEPTH -#define SUNMAXDEPTH 8 -#endif - -#ifdef i386 /* { */ -#define BW2I NULL -#else /* }{ */ -extern Bool sunBW2Init( - int /* screen */, - ScreenPtr /* pScreen */, - int /* argc */, - char** /* argv */ -); -#define BW2I sunBW2Init -#endif /* } */ - - -#if SUNMAXDEPTH == 1 /* { */ -#define CG2I NULL -#define CG3I NULL -#define CG4I NULL -#define CG6I NULL -#define CG8I NULL -#define TCXI NULL -#else /* }{ */ -extern Bool sunCG3Init( - int /* screen */, - ScreenPtr /* pScreen */, - int /* argc */, - char** /* argv */ -); -#define CG3I sunCG3Init -#if defined(i386) || defined(__bsdi__) /* { */ -#define CG2I NULL -#define CG4I NULL -#else /* }{ */ -#ifdef INCLUDE_CG2_HEADER -extern Bool sunCG2Init( - int /* screen */, - ScreenPtr /* pScreen */, - int /* argc */, - char** /* argv */ -); -#define CG2I sunCG2Init -#endif /* INCLUDE_CG2_HEADER */ -extern Bool sunCG4Init( - int /* screen */, - ScreenPtr /* pScreen */, - int /* argc */, - char** /* argv */ -); -#define CG4I sunCG4Init -#endif /* } */ -#ifdef FBTYPE_SUNFAST_COLOR /* { */ -extern Bool sunCG6Init( - int /* screen */, - ScreenPtr /* pScreen */, - int /* argc */, - char** /* argv */ -); -#define CG6I sunCG6Init -#else /* }{ */ -#define CG6I NULL -#endif /* } */ -#ifdef XFBTYPE_TCX /* { */ -extern Bool sunTCXInit( - int /* screen */, - ScreenPtr /* pScreen */, - int /* argc */, - char** /* argv */ -); -#define TCXI sunTCXInit -#else /* }{ */ -#define TCXI NULL -#endif /* } */ -#if SUNMAXDEPTH > 8 /* { */ -#ifdef FBTYPE_MEMCOLOR /* { */ -extern Bool sunCG8Init( - int /* screen */, - ScreenPtr /* pScreen */, - int /* argc */, - char** /* argv */ -); -#define CG8I sunCG8Init -#else /* }{ */ -#define CG8I NULL -#endif /* } */ -#else /* }{ */ -#define CG8I NULL -#endif /* } */ - -#endif /* } */ - -extern KeySymsRec sunKeySyms[]; -extern SunModmapRec *sunModMaps[]; -extern int sunMaxLayout; -extern KeySym* sunType4KeyMaps[]; -extern SunModmapRec* sunType4ModMaps[]; - -static Bool sunDevsInited = FALSE; - -Bool sunAutoRepeatHandlersInstalled; /* FALSE each time InitOutput called */ -Bool sunSwapLkeys = FALSE; -Bool sunFlipPixels = FALSE; -Bool sunFbInfo = FALSE; -Bool sunCG4Frob = FALSE; -Bool sunNoGX = FALSE; - -sunKbdPrivRec sunKbdPriv = { - -1, /* fd */ - -1, /* type */ - -1, /* layout */ - 0, /* click */ - (Leds)0, /* leds */ -}; - -sunPtrPrivRec sunPtrPriv = { - -1, /* fd */ - 0 /* Current button state */ -}; - -/* - * The name member in the following table corresponds to the - * FBTYPE_* macros defined in /usr/include/sun/fbio.h file - */ -sunFbDataRec sunFbData[XFBTYPE_LASTPLUSONE] = { - { NULL, "SUN1BW (bw1)" }, - { NULL, "SUN1COLOR (cg1)" }, - { BW2I, "SUN2BW (bw2)" }, -#ifdef INCLUDE_CG2_HEADER - { CG2I, "SUN2COLOR (cg2)" }, -#endif /* INCLUDE_CG2_HEADER */ - { NULL, "SUN2GP (gp1/gp2)" }, - { NULL, "SUN5COLOR (cg5/386i accel)" }, - { CG3I, "SUN3COLOR (cg3)" }, - { CG8I, "MEMCOLOR (cg8)" }, - { CG4I, "SUN4COLOR (cg4)" }, - { NULL, "NOTSUN1" }, - { NULL, "NOTSUN2" }, - { NULL, "NOTSUN3" } -#ifndef i386 /* { */ - ,{ CG6I, "SUNFAST_COLOR (cg6/gx)" }, - { NULL, "SUNROP_COLOR (cg9)" }, - { NULL, "SUNFB_VIDEO" }, - { NULL, "SUNGIFB" }, - { NULL, "SUNPLAS" }, -#ifdef FBTYPE_SUNGP3 - { NULL, "SUNGP3 (cg12/gs)" }, -#endif -#ifdef FBTYPE_SUNGT - { NULL, "SUNGT (gt)" }, -#endif -#ifdef FBTYPE_SUNLEO - { NULL, "SUNLEO (zx)" }, -#endif -#ifdef FBTYPE_MDICOLOR - { NULL, "MDICOLOR (cgfourteen)" }, -#endif -#ifdef XFBTYPE_TCX - { TCXI, "TCX (tcx)" }, -#endif -#endif /* } */ -}; - -/* - * a list of devices to try if there is no environment or command - * line list of devices - */ -#if SUNMAXDEPTH == 1 /* { */ -static char *fallbackList[] = { - BWTWO0DEV, BWTWO1DEV, BWTWO2DEV -}; -#else /* }{ */ -static char *fallbackList[] = { -#ifndef i386 /* { */ - CGTWO0DEV, CGTWO1DEV, CGTWO2DEV, -#if (MAXSCREENS == 4) - CGTWO3DEV, -#endif -#endif /* } */ - CGTHREE0DEV, -#ifndef i386 /* { */ - CGTHREE1DEV, CGTHREE2DEV, -#if (MAXSCREENS == 4) - CGTHREE3DEV, -#endif -#endif /* } */ -#ifdef FBTYPE_SUNFAST_COLOR /* { */ - CGSIX0DEV, CGSIX1DEV, CGSIX2DEV, -#if (MAXSCREENS == 4) - CGSIX3DEV, -#endif -#endif /* } */ -#ifndef i386 /* { */ - CGFOUR0DEV, BWTWO0DEV, BWTWO1DEV, BWTWO2DEV, -#if (MAXSCREENS == 4) - BWTWO3DEV, -#endif -#endif /* } */ -#if SUNMAXDEPTH > 8 /* { */ - CGEIGHT0DEV, -#if 0 -#ifdef XFBTYPE_TCX - TCX0DEV, -#endif -#endif -#endif /* } */ - "/dev/fb" -}; -#endif /* } */ - -#define FALLBACK_LIST_LEN sizeof fallbackList / sizeof fallbackList[0] - -fbFd sunFbs[MAXSCREENS]; - -static PixmapFormatRec formats[] = { - { 1, 1, BITMAP_SCANLINE_PAD } /* 1-bit deep */ -#if SUNMAXDEPTH > 1 - ,{ 8, 8, BITMAP_SCANLINE_PAD} /* 8-bit deep */ -#if SUNMAXDEPTH > 8 - ,{ 12, 24, BITMAP_SCANLINE_PAD } /* 12-bit deep */ - ,{ 24, 32, BITMAP_SCANLINE_PAD } /* 24-bit deep */ -#endif -#endif -}; -#define NUMFORMATS (sizeof formats)/(sizeof formats[0]) - -/* - * OpenFrameBuffer -- - * Open a frame buffer according to several rules. - * Find the device to use by looking in the sunFbData table, - * an XDEVICE envariable, a -dev switch or using /dev/fb if trying - * to open screen 0 and all else has failed. - * - * Results: - * The fd of the framebuffer. - */ -static int OpenFrameBuffer(device, screen) - char *device; /* e.g. "/dev/cgtwo0" */ - int screen; /* what screen am I going to be */ -{ - int ret = TRUE; - struct fbgattr *fbattr; - static int devFbUsed; - - sunFbs[screen].fd = -1; - if (strcmp (device, "/dev/fb") == 0 && devFbUsed) - return FALSE; - if (access (device, R_OK | W_OK) == -1) - return FALSE; - if ((sunFbs[screen].fd = open(device, O_RDWR, 0)) == -1) - ret = FALSE; - else { - fbattr = (struct fbgattr *) xalloc (sizeof (struct fbgattr)); - if (ioctl(sunFbs[screen].fd, FBIOGATTR, fbattr) == -1) { - /* - This is probably a bwtwo; the $64,000 question is: - is it the mono plane of a cgfour, or is it really a - real bwtwo? If there is only a cgfour in the box or - only a bwtwo in the box, then it isn't a problem. If - it's a 3/60, which has a bwtwo on the mother board *and* - a cgfour, then things get tricky because there's no way - to tell if the bwtwo is really being emulated by the cgfour. - */ - xfree (fbattr); - fbattr = NULL; - if (ioctl(sunFbs[screen].fd, FBIOGTYPE, &sunFbs[screen].info) == -1) { - Error("unable to get frame buffer attributes"); - (void) close(sunFbs[screen].fd); - sunFbs[screen].fd = -1; - return FALSE; - } - } - if (ret) { - devFbUsed = TRUE; - if (fbattr) { - if (fbattr->fbtype.fb_type >= XFBTYPE_LASTPLUSONE) { - ErrorF ("%s is an unknown framebuffer type\n", device); - (void) close(sunFbs[screen].fd); - sunFbs[screen].fd = -1; - return FALSE; - } - sunFbs[screen].info = fbattr->fbtype; - } - sunFbs[screen].fbPriv = (pointer) fbattr; - if (fbattr && !sunFbData[fbattr->fbtype.fb_type].init) { - int _i; - ret = FALSE; - for (_i = 0; _i < FB_ATTR_NEMUTYPES; _i++) { - if (sunFbData[fbattr->emu_types[_i]].init) { - sunFbs[screen].info.fb_type = fbattr->emu_types[_i]; - ret = TRUE; - if (sunFbInfo) - ErrorF ("%s is emulating a %s\n", device, - sunFbData[fbattr->fbtype.fb_type].name); - break; - } - } - } - if (sunFbInfo) - ErrorF ("%s is really a %s\n", device, - sunFbData[fbattr ? fbattr->fbtype.fb_type : sunFbs[screen].info.fb_type].name); - } - } - if (!ret) - sunFbs[screen].fd = -1; - return ret; -} - -/*- - *----------------------------------------------------------------------- - * SigIOHandler -- - * Signal handler for SIGIO - input is available. - * - * Results: - * sunSigIO is set - ProcessInputEvents() will be called soon. - * - * Side Effects: - * None - * - *----------------------------------------------------------------------- - */ -/*ARGSUSED*/ -static void SigIOHandler(sig) - int sig; -{ - int olderrno = errno; - sunEnqueueEvents (); - errno = olderrno; -} - -/*- - *----------------------------------------------------------------------- - * sunNonBlockConsoleOff -- - * Turn non-blocking mode on the console off, so you don't get logged - * out when the server exits. - * - * Results: - * None. - * - * Side Effects: - * None. - * - *----------------------------------------------------------------------- - */ -void sunNonBlockConsoleOff( -#if defined(SVR4) || defined(CSRG_BASED) - void -#else - char* arg -#endif -) -{ - register int i; - - i = fcntl(2, F_GETFL, 0); - if (i >= 0) - (void) fcntl(2, F_SETFL, i & ~FNDELAY); -} - -static char** GetDeviceList (argc, argv) - int argc; - char **argv; -{ - int i; - char *envList = NULL; - char *cmdList = NULL; - char **deviceList = (char **)NULL; - - for (i = 1; i < argc; i++) - if (strcmp (argv[i], "-dev") == 0 && i+1 < argc) { - cmdList = argv[i + 1]; - break; - } - if (!cmdList) - envList = getenv ("XDEVICE"); - - if (cmdList || envList) { - char *_tmpa; - char *_tmpb; - int _i1; - deviceList = (char **) xalloc ((MAXSCREENS + 1) * sizeof (char *)); - _tmpa = (cmdList) ? cmdList : envList; - for (_i1 = 0; _i1 < MAXSCREENS; _i1++) { - _tmpb = strtok (_tmpa, ":"); - if (_tmpb) - deviceList[_i1] = _tmpb; - else - deviceList[_i1] = NULL; - _tmpa = NULL; - } - deviceList[MAXSCREENS] = NULL; - } - if (!deviceList) { - /* no environment and no cmdline, so default */ - deviceList = - (char **) xalloc ((FALLBACK_LIST_LEN + 1) * sizeof (char *)); - for (i = 0; i < FALLBACK_LIST_LEN; i++) - deviceList[i] = fallbackList[i]; - deviceList[FALLBACK_LIST_LEN] = NULL; - } - return deviceList; -} - -static void getKbdType() -{ -/* - * The Sun 386i has system include files that preclude this pre SunOS 4.1 - * test for the presence of a type 4 keyboard however it really doesn't - * matter since no 386i has ever been shipped with a type 3 keyboard. - * SunOS 4.1 no longer needs this kludge. - */ -#if !defined(i386) && !defined(KIOCGKEY) -#define TYPE4KEYBOARDOVERRIDE -#endif - - int ii; - - for (ii = 0; ii < 3; ii++) { - sunKbdWait(); - (void) ioctl (sunKbdPriv.fd, KIOCTYPE, &sunKbdPriv.type); -#ifdef TYPE4KEYBOARDOVERRIDE - /* - * Magic. Look for a key which is non-existent on a real type - * 3 keyboard but does exist on a type 4 keyboard. - */ - if (sunKbdPriv.type == KB_SUN3) { - struct kiockeymap key; - - key.kio_tablemask = 0; - key.kio_station = 118; - if (ioctl(sunKbdPriv.fd, KIOCGKEY, &key) == -1) { - Error( "ioctl KIOCGKEY" ); - FatalError("Can't KIOCGKEY on fd %d\n", sunKbdPriv.fd); - } - if (key.kio_entry != HOLE) - sunKbdPriv.type = KB_SUN4; - } -#endif - switch (sunKbdPriv.type) { - case KB_SUN2: - case KB_SUN3: - case KB_SUN4: return; - default: - sunChangeKbdTranslation(sunKbdPriv.fd, FALSE); - continue; - } - } - FatalError ("Unsupported keyboard type %d\n", sunKbdPriv.type); -} - -void OsVendorInit( - void -) -{ - static int inited; - if (!inited) { -#ifndef i386 - struct rlimit rl; - - /* - * one per client, one per screen, one per listen endpoint, - * keyboard, mouse, and stderr - */ - int maxfds = MAXCLIENTS + MAXSCREENS + 5; - - if (getrlimit (RLIMIT_NOFILE, &rl) == 0) { - rl.rlim_cur = maxfds < rl.rlim_max ? maxfds : rl.rlim_max; - (void) setrlimit (RLIMIT_NOFILE, &rl); - } -#endif - sunKbdPriv.fd = open ("/dev/kbd", O_RDWR, 0); - if (sunKbdPriv.fd < 0) - FatalError ("Cannot open /dev/kbd, error %d\n", errno); - sunPtrPriv.fd = open ("/dev/mouse", O_RDWR, 0); - if (sunPtrPriv.fd < 0) - FatalError ("Cannot open /dev/mouse, error %d\n", errno); - getKbdType (); - if (sunKbdPriv.type == KB_SUN4) { - (void) ioctl (sunKbdPriv.fd, KIOCLAYOUT, &sunKbdPriv.layout); - if (sunKbdPriv.layout < 0 || - sunKbdPriv.layout > sunMaxLayout || - sunType4KeyMaps[sunKbdPriv.layout] == NULL) - FatalError ("Unsupported keyboard type 4 layout %d\n", - sunKbdPriv.layout); - sunKeySyms[KB_SUN4].map = sunType4KeyMaps[sunKbdPriv.layout]; - sunModMaps[KB_SUN4] = sunType4ModMaps[sunKbdPriv.layout]; - } - inited = 1; - } -} - -#ifdef DDXOSFATALERROR -void OsVendorFatalError(void) -{ -} -#endif - -/*- - *----------------------------------------------------------------------- - * InitOutput -- - * Initialize screenInfo for all actually accessible framebuffers. - * The - * - * Results: - * screenInfo init proc field set - * - * Side Effects: - * None - * - *----------------------------------------------------------------------- - */ - -void InitOutput(pScreenInfo, argc, argv) - ScreenInfo *pScreenInfo; - int argc; - char **argv; -{ - int i, scr; - int nonBlockConsole = 0; - char **devList; - static int setup_on_exit = 0; - extern Bool RunFromSmartParent; - - if (!monitorResolution) - monitorResolution = 90; - if (RunFromSmartParent) - nonBlockConsole = 1; - for (i = 1; i < argc; i++) { - if (!strcmp(argv[i],"-debug")) - nonBlockConsole = 0; - } - - /* - * Writes to /dev/console can block - causing an - * excess of error messages to hang the server in - * deadlock. So....... - */ - if (nonBlockConsole) { - if (!setup_on_exit) { -#if defined(SVR4) || defined(CSRG_BASED) - if (atexit(sunNonBlockConsoleOff)) -#else - if (on_exit(sunNonBlockConsoleOff, (char *)0)) -#endif - ErrorF("InitOutput: can't register NBIO exit handler\n"); - - setup_on_exit = 1; - } - i = fcntl(2, F_GETFL, 0); - if (i >= 0) - i = fcntl(2, F_SETFL, i | FNDELAY); - if (i < 0) { - Error("fcntl"); - ErrorF("InitOutput: can't put stderr in non-block mode\n"); - } - } - pScreenInfo->imageByteOrder = IMAGE_BYTE_ORDER; - pScreenInfo->bitmapScanlineUnit = BITMAP_SCANLINE_UNIT; - pScreenInfo->bitmapScanlinePad = BITMAP_SCANLINE_PAD; - pScreenInfo->bitmapBitOrder = BITMAP_BIT_ORDER; - - pScreenInfo->numPixmapFormats = NUMFORMATS; - for (i=0; i< NUMFORMATS; i++) - pScreenInfo->formats[i] = formats[i]; -#ifdef XKB - if (noXkbExtension) -#endif - sunAutoRepeatHandlersInstalled = FALSE; - if (!sunDevsInited) { - /* first time ever */ - for (scr = 0; scr < MAXSCREENS; scr++) - sunFbs[scr].fd = -1; - devList = GetDeviceList (argc, argv); - for (i = 0, scr = 0; devList[i] != NULL && scr < MAXSCREENS; i++) - if (OpenFrameBuffer (devList[i], scr)) - scr++; - sunDevsInited = TRUE; - xfree (devList); - } - for (scr = 0; scr < MAXSCREENS; scr++) - if (sunFbs[scr].fd != -1) - (void) AddScreen (sunFbData[sunFbs[scr].info.fb_type].init, - argc, argv); - (void) OsSignal(SIGWINCH, SIG_IGN); -} - -/*- - *----------------------------------------------------------------------- - * InitInput -- - * Initialize all supported input devices...what else is there - * besides pointer and keyboard? - * - * Results: - * None. - * - * Side Effects: - * Two DeviceRec's are allocated and registered as the system pointer - * and keyboard devices. - * - *----------------------------------------------------------------------- - */ -void InitInput(argc, argv) - int argc; - char **argv; -{ - pointer p, k; - extern Bool mieqInit(); - - p = AddInputDevice(sunMouseProc, TRUE); - k = AddInputDevice(sunKbdProc, TRUE); - if (!p || !k) - FatalError("failed to create input devices in InitInput"); - - RegisterPointerDevice(p); - RegisterKeyboardDevice(k); - miRegisterPointerDevice(screenInfo.screens[0], p); - (void) mieqInit (k, p); -#define SET_FLOW(fd) fcntl(fd, F_SETFL, FNDELAY | FASYNC) -#ifdef SVR4 - (void) OsSignal(SIGPOLL, SigIOHandler); -#define WANT_SIGNALS(fd) ioctl(fd, I_SETSIG, S_INPUT | S_HIPRI) -#else - (void) OsSignal(SIGIO, SigIOHandler); -#define WANT_SIGNALS(fd) fcntl(fd, F_SETOWN, getpid()) -#endif - if (sunKbdPriv.fd >= 0) { - if (SET_FLOW(sunKbdPriv.fd) == -1 || WANT_SIGNALS(sunKbdPriv.fd) == -1) { - (void) close (sunKbdPriv.fd); - sunKbdPriv.fd = -1; - FatalError("Async kbd I/O failed in InitInput"); - } - } - if (sunPtrPriv.fd >= 0) { - if (SET_FLOW(sunPtrPriv.fd) == -1 || WANT_SIGNALS(sunPtrPriv.fd) == -1) { - (void) close (sunPtrPriv.fd); - sunPtrPriv.fd = -1; - FatalError("Async mouse I/O failed in InitInput"); - } - } -} - - -#if SUNMAXDEPTH == 8 - -Bool -sunCfbSetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, width, bpp) - register ScreenPtr pScreen; - pointer pbits; /* pointer to screen bitmap */ - int xsize, ysize; /* in pixels */ - int dpix, dpiy; /* dots per inch */ - int width; /* pixel width of frame buffer */ - int bpp; /* bits per pixel of root */ -{ - return cfbSetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, - width); -} - -Bool -sunCfbFinishScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width, bpp) - register ScreenPtr pScreen; - pointer pbits; /* pointer to screen bitmap */ - int xsize, ysize; /* in pixels */ - int dpix, dpiy; /* dots per inch */ - int width; /* pixel width of frame buffer */ - int bpp; /* bits per pixel of root */ -{ - return cfbFinishScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, - width); -} - -Bool -sunCfbScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width, bpp) - register ScreenPtr pScreen; - pointer pbits; /* pointer to screen bitmap */ - int xsize, ysize; /* in pixels */ - int dpix, dpiy; /* dots per inch */ - int width; /* pixel width of frame buffer */ - int bpp; /* bits per pixel of root */ -{ - return cfbScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width); -} - -#else /* SUNMAXDEPTH != 8 */ -#if SUNMAXDEPTH == 32 - -static Bool -sunCfbCreateGC(pGC) - GCPtr pGC; -{ - if (pGC->depth == 1) - { - return mfbCreateGC (pGC); - } - else if (pGC->depth <= 8) - { - return cfbCreateGC (pGC); - } - else if (pGC->depth <= 16) - { - return cfb16CreateGC (pGC); - } - else if (pGC->depth <= 32) - { - return cfb32CreateGC (pGC); - } - return FALSE; -} - -static void -sunCfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart) - DrawablePtr pDrawable; /* drawable from which to get bits */ - int wMax; /* largest value of all *pwidths */ - register DDXPointPtr ppt; /* points to start copying from */ - int *pwidth; /* list of number of bits to copy */ - int nspans; /* number of scanlines to copy */ - char *pdstStart; /* where to put the bits */ -{ - switch (pDrawable->bitsPerPixel) { - case 1: - mfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); - break; - case 8: - cfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); - break; - case 16: - cfb16GetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); - break; - case 32: - cfb32GetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); - break; - } - return; -} - -static void -sunCfbGetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine) - DrawablePtr pDrawable; - int sx, sy, w, h; - unsigned int format; - unsigned long planeMask; - char *pdstLine; -{ - switch (pDrawable->bitsPerPixel) - { - case 1: - mfbGetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); - break; - case 8: - cfbGetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); - break; - case 16: - cfb16GetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); - break; - case 32: - cfb32GetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); - break; - } -} - -Bool -sunCfbSetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, width, bpp) - register ScreenPtr pScreen; - pointer pbits; /* pointer to screen bitmap */ - int xsize, ysize; /* in pixels */ - int dpix, dpiy; /* dots per inch */ - int width; /* pixel width of frame buffer */ - int bpp; /* bits per pixel of root */ -{ - int ret; - - switch (bpp) { - case 8: - ret = cfbSetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, width); - break; - case 16: - ret = cfb16SetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, width); - break; - case 32: - ret = cfb32SetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, width); - break; - default: - return FALSE; - } - pScreen->CreateGC = sunCfbCreateGC; - pScreen->GetImage = sunCfbGetImage; - pScreen->GetSpans = sunCfbGetSpans; - return ret; -} - -/* Adapt cfb logic */ -#undef CFB_NEED_SCREEN_PRIVATE -#if !defined(SINGLEDEPTH) || defined(FORDE_SEPARATE_PRIVATE) -#define CFB_NEED_SCREEN_PRIVATE -#endif - -extern BSFuncRec cfbBSFuncRec, cfb16BSFuncRec, cfb32BSFuncRec; -extern Bool cfbCloseScreen(), cfb16CloseScreen(), cfb32CloseScreen(); -#ifdef CFB_NEED_SCREEN_PRIVATE -extern int cfb16ScreenPrivateIndex, cfb32ScreenPrivateIndex; -#endif - -Bool -sunCfbFinishScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width, bpp) - register ScreenPtr pScreen; - pointer pbits; /* pointer to screen bitmap */ - int xsize, ysize; /* in pixels */ - int dpix, dpiy; /* dots per inch */ - int width; /* pixel width of frame buffer */ - int bpp; -{ -#ifdef CFB_NEED_SCREEN_PRIVATE - pointer oldDevPrivate; -#endif - VisualPtr visuals; - int nvisuals; - DepthPtr depths; - int ndepths; - VisualID defaultVisual; - int rootdepth = 0; - - if (!cfbInitVisuals(&visuals, &depths, &nvisuals, &ndepths, - &rootdepth, &defaultVisual, 1 << (bpp - 1), 8)) - return FALSE; -#ifdef CFB_NEED_SCREEN_PRIVATE - oldDevPrivate = pScreen->devPrivate; -#endif - if (! miScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width, - rootdepth, ndepths, depths, - defaultVisual, nvisuals, visuals)) - return FALSE; - switch (bpp) - { - case 8: - pScreen->CloseScreen = cfbCloseScreen; - pScreen->BackingStoreFuncs = cfbBSFuncRec; - break; - case 16: - pScreen->CloseScreen = cfb16CloseScreen; - pScreen->BackingStoreFuncs = cfb16BSFuncRec; -#ifdef CFB_NEED_SCREEN_PRIVATE - pScreen->devPrivates[cfb16ScreenPrivateIndex].ptr = - pScreen->devPrivate; - pScreen->devPrivate = oldDevPrivate; -#endif - break; - case 32: - pScreen->CloseScreen = cfb32CloseScreen; - pScreen->BackingStoreFuncs = cfb32BSFuncRec; -#ifdef CFB_NEED_SCREEN_PRIVATE - pScreen->devPrivates[cfb32ScreenPrivateIndex].ptr = - pScreen->devPrivate; - pScreen->devPrivate = oldDevPrivate; -#endif - break; - } - return TRUE; -} - - -Bool -sunCfbScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width, bpp) - register ScreenPtr pScreen; - pointer pbits; /* pointer to screen bitmap */ - int xsize, ysize; /* in pixels */ - int dpix, dpiy; /* dots per inch */ - int width; /* pixel width of frame buffer */ - int bpp; -{ - if (!sunCfbSetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, - width, bpp)) - return FALSE; - return sunCfbFinishScreenInit(pScreen, pbits, xsize, ysize, dpix, - dpiy, width, bpp); -} - -#endif /* SUNMAXDEPTH == 32 */ -#endif /* SUNMAXDEPTH */ - -#ifdef DPMSExtension -/************************************************************** - * DPMSSet(), DPMSGet(), DPMSSupported() - * - * stubs - * - ***************************************************************/ - -void DPMSSet (level) - int level; -{ -} - -int DPMSGet (level) - int* level; -{ - return -1; -} - -Bool DPMSSupported () -{ - return FALSE; -} -#endif diff --git a/nx-X11/programs/Xserver/hw/sun/sunIo.c b/nx-X11/programs/Xserver/hw/sun/sunIo.c deleted file mode 100644 index e8bc68887..000000000 --- a/nx-X11/programs/Xserver/hw/sun/sunIo.c +++ /dev/null @@ -1,305 +0,0 @@ -/* $Xorg: sunIo.c,v 1.4 2001/03/07 17:34:19 pookie Exp $ */ -/*- - * sunIo.c -- - * Functions to handle input from the keyboard and mouse. - * - * Copyright 1987 by the Regents of the University of California - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies. The University of California - * makes no representations about the suitability of this - * software for any purpose. It is provided "as is" without - * express or implied warranty. - * - * - */ -/* $XFree86: xc/programs/Xserver/hw/sun/sunIo.c,v 3.9 2001/12/19 21:28:45 dawes Exp $ */ - -/************************************************************ -Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this -software and its documentation for any purpose and without -fee is hereby granted, provided that the above copyright no- -tice appear in all copies and that both that copyright no- -tice and this permission notice appear in supporting docu- -mentation, and that the names of Sun or The Open Group -not be used in advertising or publicity pertaining to -distribution of the software without specific prior -written permission. Sun and The Open Group make no -representations about the suitability of this software for -any purpose. It is provided "as is" without any express or -implied warranty. - -SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT- -NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE LI- -ABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH -THE USE OR PERFORMANCE OF THIS SOFTWARE. - -********************************************************/ - -#define NEED_EVENTS -#include "sun.h" -#include "mi.h" - -/*- - *----------------------------------------------------------------------- - * ProcessInputEvents -- - * Retrieve all waiting input events and pass them to DIX in their - * correct chronological order. Only reads from the system pointer - * and keyboard. - * - * Results: - * None. - * - * Side Effects: - * Events are passed to the DIX layer. - * - *----------------------------------------------------------------------- - */ -void -ProcessInputEvents () -{ - mieqProcessInputEvents (); - miPointerUpdate (); -} - -/* - *----------------------------------------------------------------------- - * sunEnqueueEvents - * When a SIGIO is received, read device hard events and - * enqueue them using the mi event queue - */ - -void sunEnqueueEvents ( - void -) -{ - Firm_event *ptrEvents, /* Current pointer event */ - *kbdEvents; /* Current keyboard event */ - int numPtrEvents, /* Number of remaining pointer events */ - numKbdEvents; /* Number of remaining keyboard events */ - int nPE, /* Original number of pointer events */ - nKE; /* Original number of keyboard events */ - Bool PtrAgain, /* need to (re)read */ - KbdAgain; /* need to (re)read */ - DeviceIntPtr pPointer; - DeviceIntPtr pKeyboard; - sunKbdPrivPtr kbdPriv; - sunPtrPrivPtr ptrPriv; - - pPointer = (DeviceIntPtr)LookupPointerDevice(); - pKeyboard = (DeviceIntPtr)LookupKeyboardDevice(); - ptrPriv = (sunPtrPrivPtr) pPointer->public.devicePrivate; - kbdPriv = (sunKbdPrivPtr) pKeyboard->public.devicePrivate; - if (!pPointer->public.on || !pKeyboard->public.on) - return; - - numPtrEvents = 0; - ptrEvents = NULL; - PtrAgain = TRUE; - numKbdEvents = 0; - kbdEvents = NULL; - KbdAgain = TRUE; - - /* - * So long as one event from either device remains unprocess, we loop: - * Take the oldest remaining event and pass it to the proper module - * for processing. The DDXEvent will be sent to ProcessInput by the - * function called. - */ - while (1) { - /* - * Get events from both the pointer and the keyboard, storing the number - * of events gotten in nPE and nKE and keeping the start of both arrays - * in pE and kE - */ - if ((numPtrEvents == 0) && PtrAgain) { - ptrEvents = sunMouseGetEvents (ptrPriv->fd, pPointer->public.on, - &nPE, &PtrAgain); - numPtrEvents = nPE; - } - if ((numKbdEvents == 0) && KbdAgain) { - kbdEvents = sunKbdGetEvents (kbdPriv->fd, pKeyboard->public.on, - &nKE, &KbdAgain); - numKbdEvents = nKE; - } - if ((numPtrEvents == 0) && (numKbdEvents == 0)) - break; - if (numPtrEvents && numKbdEvents) { - if (timercmp (&kbdEvents->time, &ptrEvents->time, <)) { - sunKbdEnqueueEvent (pKeyboard, kbdEvents); - numKbdEvents--; - kbdEvents++; - } else { - sunMouseEnqueueEvent (pPointer, ptrEvents); - numPtrEvents--; - ptrEvents++; - } - } else if (numKbdEvents) { - sunKbdEnqueueEvent (pKeyboard, kbdEvents); - numKbdEvents--; - kbdEvents++; - } else { - sunMouseEnqueueEvent (pPointer, ptrEvents); - numPtrEvents--; - ptrEvents++; - } - } -} - -/* - * DDX - specific abort routine. Called by AbortServer(). - */ -void AbortDDX() -{ - int i; - ScreenPtr pScreen; - DevicePtr devPtr; - -#ifdef SVR4 - (void) OsSignal (SIGPOLL, SIG_IGN); -#else - (void) OsSignal (SIGIO, SIG_IGN); -#endif - devPtr = LookupKeyboardDevice(); - if (devPtr) - (void) sunChangeKbdTranslation (((sunKbdPrivPtr)(devPtr->devicePrivate))->fd, FALSE); -#if defined(SVR4) || defined(CSRG_BASED) - sunNonBlockConsoleOff (); -#else - sunNonBlockConsoleOff (NULL); -#endif - for (i = 0; i < screenInfo.numScreens; i++) - { - pScreen = screenInfo.screens[i]; - (*pScreen->SaveScreen) (pScreen, SCREEN_SAVER_OFF); - sunDisableCursor (pScreen); - } -} - -/* Called by GiveUp(). */ -void -ddxGiveUp() -{ - AbortDDX (); -} - -/* ddxInitGlobals - called by |InitGlobals| from os/util.c */ -void ddxInitGlobals(void) -{ -} - -int -ddxProcessArgument (argc, argv, i) - int argc; - char *argv[]; - int i; -{ - extern void UseMsg(); - extern int XprintOptions(int, char **, int); - -#ifdef XKB - int noxkb = 0, n; - /* - * peek in argv and see if -kb because noXkbExtension won't - * get set until too late to useful here. - */ - for (n = 1; n < argc; n++) - if (strcmp (argv[n], "-kb") == 0) - noxkb = 1; - - if (noxkb) -#endif - if (strcmp (argv[i], "-ar1") == 0) { /* -ar1 int */ - if (++i >= argc) UseMsg (); - sunAutoRepeatInitiate = 1000 * (long)atoi(argv[i]); /* cvt to usec */ - if (sunAutoRepeatInitiate > 1000000) - sunAutoRepeatInitiate = 999000; - return 2; - } -#ifdef XKB - if (noxkb) -#endif - if (strcmp (argv[i], "-ar2") == 0) { /* -ar2 int */ - if (++i >= argc) UseMsg (); - sunAutoRepeatDelay = 1000 * (long)atoi(argv[i]); /* cvt to usec */ - if (sunAutoRepeatDelay > 1000000) - sunAutoRepeatDelay = 999000; - return 2; - } - if (strcmp (argv[i], "-swapLkeys") == 0) { /* -swapLkeys */ - sunSwapLkeys = TRUE; - return 1; - } - if (strcmp (argv[i], "-debug") == 0) { /* -debug */ - return 1; - } - if (strcmp (argv[i], "-dev") == 0) { /* -dev /dev/mumble */ - if (++i >= argc) UseMsg (); - return 2; - } - if (strcmp (argv[i], "-mono") == 0) { /* -mono */ - return 1; - } - if (strcmp (argv[i], "-zaphod") == 0) { /* -zaphod */ - sunActiveZaphod = FALSE; - return 1; - } - if (strcmp (argv[i], "-flipPixels") == 0) { /* -flipPixels */ - sunFlipPixels = TRUE; - return 1; - } - if (strcmp (argv[i], "-fbinfo") == 0) { /* -fbinfo */ - sunFbInfo = TRUE; - return 1; - } - if (strcmp (argv[i], "-kbd") == 0) { /* -kbd */ - if (++i >= argc) UseMsg(); - return 2; - } - if (strcmp (argv[i], "-protect") == 0) { /* -protect */ - if (++i >= argc) UseMsg(); - return 2; - } - if (strcmp (argv[i], "-cg4frob") == 0) { - sunCG4Frob = TRUE; - return 1; - } - if (strcmp (argv[i], "-noGX") == 0) { - sunNoGX = TRUE; - return 1; - } - if (strcmp(argv[i], "-XpFile") == 0) { - return XprintOptions(argc, argv, i) - i; - } - return 0; -} - -void -ddxUseMsg() -{ -#ifndef XKB - ErrorF("-ar1 int set autorepeat initiate time\n"); - ErrorF("-ar2 int set autorepeat interval time\n"); -#endif - ErrorF("-swapLkeys swap keysyms on L1..L10\n"); - ErrorF("-debug disable non-blocking console mode\n"); - ErrorF("-dev fn[:fn][:fn] name of device[s] to open\n"); - ErrorF("-mono force monochrome-only screen\n"); - ErrorF("-zaphod disable active Zaphod mode\n"); - ErrorF("-fbinfo tell more about the found frame buffer(s)\n"); -#ifdef UNDOCUMENTED - ErrorF("-cg4frob don't use the mono plane of the cgfour\n"); - ErrorF("-noGX treat the GX as a dumb frame buffer\n"); -#endif - ErrorF("-XpFile specifies an alternate `Xprinters' file (Xprt only)\n"); -} diff --git a/nx-X11/programs/Xserver/hw/sun/sunKbd.c b/nx-X11/programs/Xserver/hw/sun/sunKbd.c deleted file mode 100644 index a11026d6f..000000000 --- a/nx-X11/programs/Xserver/hw/sun/sunKbd.c +++ /dev/null @@ -1,1071 +0,0 @@ -/* $Xorg: sunKbd.c,v 1.3 2000/08/17 19:48:30 cpqbld Exp $ */ -/*- - * Copyright 1987 by the Regents of the University of California - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies. The University of California - * makes no representations about the suitability of this - * software for any purpose. It is provided "as is" without - * express or implied warranty. - */ - -/************************************************************ -Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this -software and its documentation for any purpose and without -fee is hereby granted, provided that the above copyright no- -tice appear in all copies and that both that copyright no- -tice and this permission notice appear in supporting docu- -mentation, and that the names of Sun or The Open Group -not be used in advertising or publicity pertaining to -distribution of the software without specific prior -written permission. Sun and The Open Group make no -representations about the suitability of this software for -any purpose. It is provided "as is" without any express or -implied warranty. - -SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT- -NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE LI- -ABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH -THE USE OR PERFORMANCE OF THIS SOFTWARE. - -********************************************************/ -/* $XFree86: xc/programs/Xserver/hw/sun/sunKbd.c,v 1.8 2001/10/28 03:33:11 tsi Exp $ */ - -#define NEED_EVENTS -#include "sun.h" -#include "keysym.h" -#include "Sunkeysym.h" -#include "mi.h" - -#ifdef XKB -#include -#include -#include -#endif - -#define SUN_LED_MASK 0x0f -#define MIN_KEYCODE 7 /* necessary to avoid the mouse buttons */ -#define MAX_KEYCODE 255 /* limited by the protocol */ -#ifndef KB_SUN4 -#define KB_SUN4 4 -#endif - -#define AUTOREPEAT_INITIATE 400 -#define AUTOREPEAT_DELAY 50 - -#define tvminus(tv, tv1, tv2) /* tv = tv1 - tv2 */ \ - if ((tv1).tv_usec < (tv2).tv_usec) { \ - (tv1).tv_usec += 1000000; \ - (tv1).tv_sec -= 1; \ - } \ - (tv).tv_usec = (tv1).tv_usec - (tv2).tv_usec; \ - (tv).tv_sec = (tv1).tv_sec - (tv2).tv_sec; - -#define tvplus(tv, tv1, tv2) /* tv = tv1 + tv2 */ \ - (tv).tv_sec = (tv1).tv_sec + (tv2).tv_sec; \ - (tv).tv_usec = (tv1).tv_usec + (tv2).tv_usec; \ - if ((tv).tv_usec > 1000000) { \ - (tv).tv_usec -= 1000000; \ - (tv).tv_sec += 1; \ - } - -extern KeySymsRec sunKeySyms[]; -extern SunModmapRec* sunModMaps[]; - -long sunAutoRepeatInitiate = 1000 * AUTOREPEAT_INITIATE; -long sunAutoRepeatDelay = 1000 * AUTOREPEAT_DELAY; - -static int autoRepeatKeyDown = 0; -static int autoRepeatReady; -static int autoRepeatFirst; -#if defined(_LP64) || defined(_I32LPx) -static struct timeval32 autoRepeatLastKeyDownTv; -static struct timeval32 autoRepeatDeltaTv; -#else -static struct timeval autoRepeatLastKeyDownTv; -static struct timeval autoRepeatDeltaTv; -#endif - -void sunKbdWait() -{ - static struct timeval lastChngKbdTransTv; - struct timeval tv; - struct timeval lastChngKbdDeltaTv; - unsigned int lastChngKbdDelta; - - X_GETTIMEOFDAY(&tv); - if (!lastChngKbdTransTv.tv_sec) - lastChngKbdTransTv = tv; - tvminus(lastChngKbdDeltaTv, tv, lastChngKbdTransTv); - lastChngKbdDelta = TVTOMILLI(lastChngKbdDeltaTv); - if (lastChngKbdDelta < 750) { - unsigned wait; - /* - * We need to guarantee at least 750 milliseconds between - * calls to KIOCTRANS. YUCK! - */ - wait = (750L - lastChngKbdDelta) * 1000L; - usleep (wait); - X_GETTIMEOFDAY(&tv); - } - lastChngKbdTransTv = tv; -} - -static void SwapLKeys(keysyms) - KeySymsRec* keysyms; -{ - unsigned int i; - KeySym k; - - for (i = 2; i < keysyms->maxKeyCode * keysyms->mapWidth; i++) - if (keysyms->map[i] == XK_L1 || - keysyms->map[i] == XK_L2 || - keysyms->map[i] == XK_L3 || - keysyms->map[i] == XK_L4 || - keysyms->map[i] == XK_L5 || - keysyms->map[i] == XK_L6 || - keysyms->map[i] == XK_L7 || - keysyms->map[i] == XK_L8 || - keysyms->map[i] == XK_L9 || - keysyms->map[i] == XK_L10) { - /* yes, I could have done a clever two line swap! */ - k = keysyms->map[i - 2]; - keysyms->map[i - 2] = keysyms->map[i]; - keysyms->map[i] = k; - } -} - -static void SetLights (ctrl, fd) - KeybdCtrl* ctrl; - int fd; -{ -#ifdef KIOCSLED - static unsigned char led_tab[16] = { - 0, - LED_NUM_LOCK, - LED_SCROLL_LOCK, - LED_SCROLL_LOCK | LED_NUM_LOCK, - LED_COMPOSE, - LED_COMPOSE | LED_NUM_LOCK, - LED_COMPOSE | LED_SCROLL_LOCK, - LED_COMPOSE | LED_SCROLL_LOCK | LED_NUM_LOCK, - LED_CAPS_LOCK, - LED_CAPS_LOCK | LED_NUM_LOCK, - LED_CAPS_LOCK | LED_SCROLL_LOCK, - LED_CAPS_LOCK | LED_SCROLL_LOCK | LED_NUM_LOCK, - LED_CAPS_LOCK | LED_COMPOSE, - LED_CAPS_LOCK | LED_COMPOSE | LED_NUM_LOCK, - LED_CAPS_LOCK | LED_COMPOSE | LED_SCROLL_LOCK, - LED_CAPS_LOCK | LED_COMPOSE | LED_SCROLL_LOCK | LED_NUM_LOCK - }; - if (ioctl (fd, KIOCSLED, (caddr_t)&led_tab[ctrl->leds & 0x0f]) == -1) - Error("Failed to set keyboard lights"); -#endif -} - - -static void ModLight (device, on, led) - DeviceIntPtr device; - Bool on; - int led; -{ - KeybdCtrl* ctrl = &device->kbdfeed->ctrl; - sunKbdPrivPtr pPriv = (sunKbdPrivPtr) device->public.devicePrivate; - - if(on) { - ctrl->leds |= led; - pPriv->leds |= led; - } else { - ctrl->leds &= ~led; - pPriv->leds &= ~led; - } - SetLights (ctrl, pPriv->fd); -} - -/*- - *----------------------------------------------------------------------- - * sunBell -- - * Ring the terminal/keyboard bell - * - * Results: - * Ring the keyboard bell for an amount of time proportional to - * "loudness." - * - * Side Effects: - * None, really... - * - *----------------------------------------------------------------------- - */ - -static void bell ( - int fd, - int duration) -{ - int kbdCmd; /* Command to give keyboard */ - - kbdCmd = KBD_CMD_BELL; - if (ioctl (fd, KIOCCMD, &kbdCmd) == -1) { - Error("Failed to activate bell"); - return; - } - if (duration) usleep (duration); - kbdCmd = KBD_CMD_NOBELL; - if (ioctl (fd, KIOCCMD, &kbdCmd) == -1) - Error ("Failed to deactivate bell"); -} - -static void sunBell ( - int percent, - DeviceIntPtr device, - pointer ctrl, - int unused) -{ - KeybdCtrl* kctrl = (KeybdCtrl*) ctrl; - sunKbdPrivPtr pPriv = (sunKbdPrivPtr) device->public.devicePrivate; - - if (percent == 0 || kctrl->bell == 0) - return; - - bell (pPriv->fd, kctrl->bell_duration * 1000); -} - -static void sunEnqueueEvent (xE) - xEvent* xE; -{ -#ifndef i386 - sigset_t holdmask; - -#ifdef SVR4 - (void) sigaddset (&holdmask, SIGPOLL); -#else - (void) sigaddset (&holdmask, SIGIO); -#endif - (void) sigprocmask (SIG_BLOCK, &holdmask, (sigset_t*)NULL); - mieqEnqueue (xE); - (void) sigprocmask (SIG_UNBLOCK, &holdmask, (sigset_t*)NULL); -#else - int oldmask = sigblock (sigmask (SIGIO)); - - mieqEnqueue (xE); - sigsetmask (oldmask); -#endif -} - - -#define XLED_NUM_LOCK 0x1 -#define XLED_COMPOSE 0x4 -#define XLED_SCROLL_LOCK 0x2 -#define XLED_CAPS_LOCK 0x8 - -static KeyCode LookupKeyCode (keysym, keysymsrec) - KeySym keysym; - KeySymsPtr keysymsrec; -{ - KeyCode i; - int ii, index = 0; - - for (i = keysymsrec->minKeyCode; i < keysymsrec->maxKeyCode; i++) - for (ii = 0; ii < keysymsrec->mapWidth; ii++) - if (keysymsrec->map[index++] == keysym) - return i; - return 0; -} - -static void pseudoKey(device, down, keycode) - DeviceIntPtr device; - Bool down; - KeyCode keycode; -{ - int bit; - CARD8 modifiers; - CARD16 mask; - BYTE* kptr; - - kptr = &device->key->down[keycode >> 3]; - bit = 1 << (keycode & 7); - modifiers = device->key->modifierMap[keycode]; - if (down) { - /* fool dix into thinking this key is now "down" */ - int i; - *kptr |= bit; - device->key->prev_state = device->key->state; - for (i = 0, mask = 1; modifiers; i++, mask <<= 1) - if (mask & modifiers) { - device->key->modifierKeyCount[i]++; - device->key->state += mask; - modifiers &= ~mask; - } - } else { - /* fool dix into thinking this key is now "up" */ - if (*kptr & bit) { - int i; - *kptr &= ~bit; - device->key->prev_state = device->key->state; - for (i = 0, mask = 1; modifiers; i++, mask <<= 1) - if (mask & modifiers) { - if (--device->key->modifierKeyCount[i] <= 0) { - device->key->state &= ~mask; - device->key->modifierKeyCount[i] = 0; - } - modifiers &= ~mask; - } - } - } -} - -static void DoLEDs(device, ctrl, pPriv) - DeviceIntPtr device; /* Keyboard to alter */ - KeybdCtrl* ctrl; - sunKbdPrivPtr pPriv; -{ -#ifdef XKB - if (noXkbExtension) { -#endif - if ((ctrl->leds & XLED_CAPS_LOCK) && !(pPriv->leds & XLED_CAPS_LOCK)) - pseudoKey(device, TRUE, - LookupKeyCode(XK_Caps_Lock, &device->key->curKeySyms)); - - if (!(ctrl->leds & XLED_CAPS_LOCK) && (pPriv->leds & XLED_CAPS_LOCK)) - pseudoKey(device, FALSE, - LookupKeyCode(XK_Caps_Lock, &device->key->curKeySyms)); - - if ((ctrl->leds & XLED_NUM_LOCK) && !(pPriv->leds & XLED_NUM_LOCK)) - pseudoKey(device, TRUE, - LookupKeyCode(XK_Num_Lock, &device->key->curKeySyms)); - - if (!(ctrl->leds & XLED_NUM_LOCK) && (pPriv->leds & XLED_NUM_LOCK)) - pseudoKey(device, FALSE, - LookupKeyCode(XK_Num_Lock, &device->key->curKeySyms)); - - if ((ctrl->leds & XLED_SCROLL_LOCK) && !(pPriv->leds & XLED_SCROLL_LOCK)) - pseudoKey(device, TRUE, - LookupKeyCode(XK_Scroll_Lock, &device->key->curKeySyms)); - - if (!(ctrl->leds & XLED_SCROLL_LOCK) && (pPriv->leds & XLED_SCROLL_LOCK)) - pseudoKey(device, FALSE, - LookupKeyCode(XK_Scroll_Lock, &device->key->curKeySyms)); - - if ((ctrl->leds & XLED_COMPOSE) && !(pPriv->leds & XLED_COMPOSE)) - pseudoKey(device, TRUE, - LookupKeyCode(SunXK_Compose, &device->key->curKeySyms)); - - if (!(ctrl->leds & XLED_COMPOSE) && (pPriv->leds & XLED_COMPOSE)) - pseudoKey(device, FALSE, - LookupKeyCode(SunXK_Compose, &device->key->curKeySyms)); -#ifdef XKB - } -#endif - pPriv->leds = ctrl->leds & 0x0f; - SetLights (ctrl, pPriv->fd); -} - -/*- - *----------------------------------------------------------------------- - * sunKbdCtrl -- - * Alter some of the keyboard control parameters - * - * Results: - * None. - * - * Side Effects: - * Some... - * - *----------------------------------------------------------------------- - */ - -static void sunKbdCtrl ( - DeviceIntPtr device, - KeybdCtrl* ctrl) -{ - sunKbdPrivPtr pPriv = (sunKbdPrivPtr) device->public.devicePrivate; - - if (pPriv->fd < 0) return; - - if (ctrl->click != pPriv->click) { - int kbdClickCmd; - - pPriv->click = ctrl->click; - kbdClickCmd = pPriv->click ? KBD_CMD_CLICK : KBD_CMD_NOCLICK; - if (ioctl (pPriv->fd, KIOCCMD, &kbdClickCmd) == -1) - Error("Failed to set keyclick"); - } - if ((pPriv->type == KB_SUN4) && (pPriv->leds != (ctrl->leds & 0x0f))) - DoLEDs(device, ctrl, pPriv); -} - -/*- - *----------------------------------------------------------------------- - * sunInitKbdNames -- - * Handle the XKB initialization - * - * Results: - * None. - * - * Comments: - * This function needs considerable work, in conjunctions with - * the need to add geometry descriptions of Sun Keyboards. - * It would also be nice to have #defines for all the keyboard - * layouts so that we don't have to have these hard-coded - * numbers. - * - *----------------------------------------------------------------------- - */ -#ifdef XKB -static void sunInitKbdNames ( - XkbComponentNamesRec* names, - sunKbdPrivPtr pKbd) -{ -#ifndef XKBBUFSIZE -#define XKBBUFSIZE 64 -#endif - static char keycodesbuf[XKBBUFSIZE]; - static char geometrybuf[XKBBUFSIZE]; - static char symbolsbuf[XKBBUFSIZE]; - - names->keymap = NULL; - names->compat = "compat/complete"; - names->types = "types/complete"; - names->keycodes = keycodesbuf; - names->geometry = geometrybuf; - names->symbols = symbolsbuf; - (void) strcpy (keycodesbuf, "keycodes/"); - (void) strcpy (geometrybuf, "geometry/"); - (void) strcpy (symbolsbuf, "symbols/"); - - /* keycodes & geometry */ - switch (pKbd->type) { - case KB_SUN2: - (void) strcat (names->keycodes, "sun(type2)"); - (void) strcat (names->geometry, "sun(type2)"); - (void) strcat (names->symbols, "us(sun2)"); - break; - case KB_SUN3: - (void) strcat (names->keycodes, "sun(type3)"); - (void) strcat (names->geometry, "sun(type3)"); - (void) strcat (names->symbols, "us(sun3)"); - break; - case KB_SUN4: - /* First, catch "fully known" models */ - switch (pKbd->layout) { - case 11: /* type4, Sweden */ - (void) strcat (names->geometry, "sun(type4_se)"); - (void) strcat (names->keycodes, - "sun(type4_se_swapctl)"); - (void) strcat (names->symbols, - "sun/se(sun4)+se(fixdollar)"); - return; - break; - case 43: /* type5/5c, Sweden */ - (void) strcat (names->geometry, "sun(type5c_se)"); - (void) strcat (names->keycodes, "sun(type5_se)"); - (void) strcat (names->symbols, - "sun/se(sun5)+se(fixdollar)"); - return; - break; - case 90: /* "Compact 1", Sweden (???) */ - break; /* No specific mapping, yet */ - default: - break; - } - - if (pKbd->layout == 19) { - (void) strcat (names->keycodes, "sun(US101A)"); - (void) strcat (names->geometry, "pc101-NG"); /* XXX */ - (void) strcat (names->symbols, "us(pc101)"); - } else if (pKbd->layout < 33) { - (void) strcat (names->keycodes, "sun(type4)"); - (void) strcat (names->geometry, "sun(type4)"); - if (sunSwapLkeys) - (void) strcat (names->symbols, "sun/us(sun4ol)"); - else - (void) strcat (names->symbols, "sun/us(sun4)"); - } else { - (void) strcat (names->keycodes, "sun(type5)"); - - switch (pKbd->layout) { - case 33: case 80: /* U.S. */ - case 47: case 94: /* Korea */ - case 48: case 95: /* Taiwan */ - case 49: case 96: /* Japan */ - (void) strcat (names->geometry, "sun(type5)"); - break; - case 34: case 81: /* U.S. Unix */ - (void) strcat (names->geometry, "sun(type5unix)"); - break; - default: - (void) strcat (names->geometry, "sun(type5euro)"); - } - - if (sunSwapLkeys) - (void) strcat (names->symbols, "sun/us(sun5ol)"); - else - (void) strcat (names->symbols, "sun/us(sun5)"); - } - break; - default: - names->keycodes = names->geometry = NULL; - break; - } - - /* extra symbols */ - - if (pKbd->type == KB_SUN4) { - switch (pKbd->layout) { - case 4: case 36: case 83: - case 5: case 37: case 84: - case 6: case 38: case 85: - case 8: case 40: case 87: - case 9: case 41: case 88: - case 10: case 42: case 89: -/* case 11: case 43: case 90: */ /* handled earlier */ - case 12: case 44: case 91: - case 13: case 45: case 92: - case 14: case 46: case 93: - (void) strcat (names->symbols, "+iso9995-3(basic)"); break; - } - } - - if (pKbd->type == KB_SUN4) { - switch (pKbd->layout) { - case 0: case 1: case 33: case 34: case 80: case 81: - break; - case 3: - (void) strcat (names->symbols, "+ca"); break; - case 4: case 36: case 83: - (void) strcat (names->symbols, "+dk"); break; - case 5: case 37: case 84: - (void) strcat (names->symbols, "+de"); break; - case 6: case 38: case 85: - (void) strcat (names->symbols, "+it"); break; - case 8: case 40: case 87: - (void) strcat (names->symbols, "+no"); break; - case 9: case 41: case 88: - (void) strcat (names->symbols, "+pt"); break; - case 10: case 42: case 89: - (void) strcat (names->symbols, "+es"); break; - /* case 11: case 43: */ /* handled earlier */ - case 90: - (void) strcat (names->symbols, "+se"); break; - case 12: case 44: case 91: - (void) strcat (names->symbols, "+fr_CH"); break; - case 13: case 45: case 92: - (void) strcat (names->symbols, "+de_CH"); break; - case 14: case 46: case 93: - (void) strcat (names->symbols, "+gb"); break; /* s/b en_UK */ - case 52: - (void) strcat (names->symbols, "+pl"); break; - case 53: - (void) strcat (names->symbols, "+cs"); break; - case 54: - (void) strcat (names->symbols, "+ru"); break; -#if 0 - /* don't have symbols defined for these yet, let them default */ - case 2: - (void) strcat (names->symbols, "+fr_BE"); break; - case 7: case 39: case 86: - (void) strcat (names->symbols, "+nl"); break; - case 50: case 97: - (void) strcat (names->symbols, "+fr_CA"); break; - case 16: case 47: case 94: - (void) strcat (names->symbols, "+ko"); break; - case 17: case 48: case 95: - (void) strcat (names->symbols, "+tw"); break; - case 32: case 49: case 96: - (void) strcat (names->symbols, "+jp"); break; - case 51: - (void) strcat (names->symbols, "+hu"); break; -#endif - /* - * by setting the symbols to NULL XKB will use the symbols in - * the "default" keymap. - */ - default: - names->symbols = NULL; return; break; - } - } -} -#endif /* XKB */ - -/*- - *----------------------------------------------------------------------- - * sunKbdProc -- - * Handle the initialization, etc. of a keyboard. - * - * Results: - * None. - * - *----------------------------------------------------------------------- - */ - -int sunKbdProc ( - DeviceIntPtr device, - int what) -{ - int i; - DevicePtr pKeyboard = (DevicePtr) device; - sunKbdPrivPtr pPriv; - KeybdCtrl* ctrl = &device->kbdfeed->ctrl; - extern int XkbDfltRepeatDelay, XkbDfltRepeatInterval; - - static CARD8 *workingModMap = NULL; - static KeySymsRec *workingKeySyms; - - switch (what) { - case DEVICE_INIT: - if (pKeyboard != LookupKeyboardDevice()) { - ErrorF ("Cannot open non-system keyboard\n"); - return (!Success); - } - - if (!workingKeySyms) { - workingKeySyms = &sunKeySyms[sunKbdPriv.type]; - - if (sunKbdPriv.type == KB_SUN4 && sunSwapLkeys) - SwapLKeys(workingKeySyms); - - if (workingKeySyms->minKeyCode < MIN_KEYCODE) { - workingKeySyms->minKeyCode += MIN_KEYCODE; - workingKeySyms->maxKeyCode += MIN_KEYCODE; - } - if (workingKeySyms->maxKeyCode > MAX_KEYCODE) - workingKeySyms->maxKeyCode = MAX_KEYCODE; - } - - if (!workingModMap) { - workingModMap=(CARD8 *)xalloc(MAP_LENGTH); - (void) memset(workingModMap, 0, MAP_LENGTH); - for(i=0; sunModMaps[sunKbdPriv.type][i].key != 0; i++) - workingModMap[sunModMaps[sunKbdPriv.type][i].key + MIN_KEYCODE] = - sunModMaps[sunKbdPriv.type][i].modifiers; - } - - (void) memset ((void *) defaultKeyboardControl.autoRepeats, - ~0, sizeof defaultKeyboardControl.autoRepeats); - -#ifdef XKB - if (noXkbExtension) { - sunAutoRepeatInitiate = XkbDfltRepeatDelay * 1000; - sunAutoRepeatDelay = XkbDfltRepeatInterval * 1000; -#endif - autoRepeatKeyDown = 0; -#ifdef XKB - } -#endif - pKeyboard->devicePrivate = (pointer)&sunKbdPriv; - pKeyboard->on = FALSE; - -#ifdef XKB - if (noXkbExtension) { -#endif - InitKeyboardDeviceStruct(pKeyboard, - workingKeySyms, workingModMap, - sunBell, sunKbdCtrl); -#ifdef XKB - } else { - XkbComponentNamesRec names; - sunInitKbdNames (&names, &sunKbdPriv); - XkbInitKeyboardDeviceStruct((DeviceIntPtr) pKeyboard, &names, - workingKeySyms, workingModMap, - sunBell, sunKbdCtrl); - } -#endif - break; - - case DEVICE_ON: - pPriv = (sunKbdPrivPtr)pKeyboard->devicePrivate; - /* - * Set the keyboard into "direct" mode and turn on - * event translation. - */ - if (sunChangeKbdTranslation(pPriv->fd,TRUE) == -1) - FatalError("Can't set keyboard translation\n"); - AddEnabledDevice(pPriv->fd); - pKeyboard->on = TRUE; - break; - - case DEVICE_CLOSE: - case DEVICE_OFF: - pPriv = (sunKbdPrivPtr)pKeyboard->devicePrivate; - if (pPriv->type == KB_SUN4) { - /* dumb bug in Sun's keyboard! Turn off LEDS before resetting */ - pPriv->leds = 0; - ctrl->leds = 0; - SetLights(ctrl, pPriv->fd); - } - /* - * Restore original keyboard directness and translation. - */ - if (sunChangeKbdTranslation(pPriv->fd,FALSE) == -1) - FatalError("Can't reset keyboard translation\n"); - RemoveEnabledDevice(pPriv->fd); - pKeyboard->on = FALSE; - break; - default: - FatalError("Unknown keyboard operation\n"); - } - return Success; -} - -/*- - *----------------------------------------------------------------------- - * sunKbdGetEvents -- - * Return the events waiting in the wings for the given keyboard. - * - * Results: - * A pointer to an array of Firm_events or (Firm_event *)0 if no events - * The number of events contained in the array. - * A boolean as to whether more events might be available. - * - * Side Effects: - * None. - *----------------------------------------------------------------------- - */ - -Firm_event* sunKbdGetEvents ( - int fd, - Bool on, - int* pNumEvents, - Bool* pAgain) -{ - int nBytes; /* number of bytes of events available. */ - static Firm_event evBuf[MAXEVENTS]; /* Buffer for Firm_events */ - - if ((nBytes = read (fd, evBuf, sizeof(evBuf))) == -1) { - if (errno == EWOULDBLOCK) { - *pNumEvents = 0; - *pAgain = FALSE; - } else { - Error ("Reading keyboard"); - FatalError ("Could not read the keyboard"); - } - } else { - if (on) { - *pNumEvents = nBytes / sizeof (Firm_event); - *pAgain = (nBytes == sizeof (evBuf)); - } else { - *pNumEvents = 0; - *pAgain = FALSE; - } - } - return evBuf; -} - -/*- - *----------------------------------------------------------------------- - * sunKbdEnqueueEvent -- - * - *----------------------------------------------------------------------- - */ -static xEvent autoRepeatEvent; -static int composeCount; - -static Bool DoSpecialKeys(device, xE, fe) - DeviceIntPtr device; - xEvent* xE; - Firm_event* fe; -{ - int shift_index, map_index, bit; - KeySym ksym; - BYTE* kptr; - sunKbdPrivPtr pPriv = (sunKbdPrivPtr)device->public.devicePrivate; - BYTE keycode = xE->u.u.detail; - CARD8 keyModifiers = device->key->modifierMap[keycode]; - - /* look up the present idea of the keysym */ - shift_index = 0; - if (device->key->state & ShiftMask) - shift_index ^= 1; - if (device->key->state & LockMask) - shift_index ^= 1; - map_index = (fe->id - 1) * device->key->curKeySyms.mapWidth; - ksym = device->key->curKeySyms.map[shift_index + map_index]; - if (ksym == NoSymbol) - ksym = device->key->curKeySyms.map[map_index]; - - /* - * Toggle functionality is hardcoded. This is achieved by always - * discarding KeyReleases on these keys, and converting every other - * KeyPress into a KeyRelease. - */ - if (xE->u.u.type == KeyRelease - && (ksym == XK_Num_Lock - || ksym == XK_Scroll_Lock - || ksym == SunXK_Compose - || (keyModifiers & LockMask))) - return TRUE; - - kptr = &device->key->down[keycode >> 3]; - bit = 1 << (keycode & 7); - if ((*kptr & bit) && - (ksym == XK_Num_Lock || ksym == XK_Scroll_Lock || - ksym == SunXK_Compose || (keyModifiers & LockMask))) - xE->u.u.type = KeyRelease; - - if (pPriv->type == KB_SUN4) { - if (ksym == XK_Num_Lock) { - ModLight (device, xE->u.u.type == KeyPress, XLED_NUM_LOCK); - } else if (ksym == XK_Scroll_Lock) { - ModLight (device, xE->u.u.type == KeyPress, XLED_SCROLL_LOCK); - } else if (ksym == SunXK_Compose) { - ModLight (device, xE->u.u.type == KeyPress, XLED_COMPOSE); - if (xE->u.u.type == KeyPress) composeCount = 2; - else composeCount = 0; - } else if (keyModifiers & LockMask) { - ModLight (device, xE->u.u.type == KeyPress, XLED_CAPS_LOCK); - } - if (xE->u.u.type == KeyRelease) { - if (composeCount > 0 && --composeCount == 0) { - pseudoKey(device, FALSE, - LookupKeyCode(SunXK_Compose, &device->key->curKeySyms)); - ModLight (device, FALSE, XLED_COMPOSE); - } - } - } - - if ((xE->u.u.type == KeyPress) && (keyModifiers == 0)) { - /* initialize new AutoRepeater event & mark AutoRepeater on */ - autoRepeatEvent = *xE; - autoRepeatFirst = TRUE; - autoRepeatKeyDown++; - autoRepeatLastKeyDownTv = fe->time; - } - return FALSE; -} - -void sunKbdEnqueueEvent ( - DeviceIntPtr device, - Firm_event *fe) -{ - xEvent xE; - BYTE keycode; - CARD8 keyModifiers; - - keycode = (fe->id & 0x7f) + MIN_KEYCODE; - - keyModifiers = device->key->modifierMap[keycode]; -#ifdef XKB - if (noXkbExtension) { -#endif - if (autoRepeatKeyDown && (keyModifiers == 0) && - ((fe->value == VKEY_DOWN) || (keycode == autoRepeatEvent.u.u.detail))) { - /* - * Kill AutoRepeater on any real non-modifier key down, or auto key up - */ - autoRepeatKeyDown = 0; - } -#ifdef XKB - } -#endif - xE.u.keyButtonPointer.time = TVTOMILLI(fe->time); - xE.u.u.type = ((fe->value == VKEY_UP) ? KeyRelease : KeyPress); - xE.u.u.detail = keycode; -#ifdef XKB - if (noXkbExtension) { -#endif - if (DoSpecialKeys(device, &xE, fe)) - return; -#ifdef XKB - } -#endif /* ! XKB */ - mieqEnqueue (&xE); -} - -void sunEnqueueAutoRepeat () -{ - int delta; - int i, mask; - DeviceIntPtr device = (DeviceIntPtr)LookupKeyboardDevice(); - KeybdCtrl* ctrl = &device->kbdfeed->ctrl; - sunKbdPrivPtr pPriv = (sunKbdPrivPtr) device->public.devicePrivate; - - if (ctrl->autoRepeat != AutoRepeatModeOn) { - autoRepeatKeyDown = 0; - return; - } - i=(autoRepeatEvent.u.u.detail >> 3); - mask=(1 << (autoRepeatEvent.u.u.detail & 7)); - if (!(ctrl->autoRepeats[i] & mask)) { - autoRepeatKeyDown = 0; - return; - } - - /* - * Generate auto repeat event. XXX one for now. - * Update time & pointer location of saved KeyPress event. - */ - - delta = TVTOMILLI(autoRepeatDeltaTv); - autoRepeatFirst = FALSE; - - /* - * Fake a key up event and a key down event - * for the last key pressed. - */ - autoRepeatEvent.u.keyButtonPointer.time += delta; - autoRepeatEvent.u.u.type = KeyRelease; - - /* - * hold off any more inputs while we get these safely queued up - * further SIGIO are - */ - sunEnqueueEvent (&autoRepeatEvent); - autoRepeatEvent.u.u.type = KeyPress; - sunEnqueueEvent (&autoRepeatEvent); - if (ctrl->click) bell (pPriv->fd, 0); - - /* Update time of last key down */ - tvplus(autoRepeatLastKeyDownTv, autoRepeatLastKeyDownTv, - autoRepeatDeltaTv); -} - -/*- - *----------------------------------------------------------------------- - * sunChangeKbdTranslation - * Makes operating system calls to set keyboard translation - * and direction on or off. - * - * Results: - * -1 if failure, else 0. - * - * Side Effects: - * Changes kernel management of keyboard. - * - *----------------------------------------------------------------------- - */ -int sunChangeKbdTranslation( - int fd, - Bool makeTranslated) - -{ - int tmp; -#ifndef i386 /* { */ - sigset_t hold_mask, old_mask; -#else /* }{ */ - int old_mask; -#endif /* } */ - int toread; - char junk[8192]; - -#ifndef i386 /* { */ - (void) sigfillset(&hold_mask); - (void) sigprocmask(SIG_BLOCK, &hold_mask, &old_mask); -#else /* }{ */ - old_mask = sigblock (~0); -#endif /* } */ - sunKbdWait(); - if (makeTranslated) { - /* - * Next set the keyboard into "direct" mode and turn on - * event translation. If either of these fails, we can't go - * on. - */ - tmp = 1; - if (ioctl (fd, KIOCSDIRECT, &tmp) == -1) { - Error ("Setting keyboard direct mode"); - return -1; - } - tmp = TR_UNTRANS_EVENT; - if (ioctl (fd, KIOCTRANS, &tmp) == -1) { - Error ("Setting keyboard translation"); - ErrorF ("sunChangeKbdTranslation: kbdFd=%d\n", fd); - return -1; - } - } else { - /* - * Next set the keyboard into "indirect" mode and turn off - * event translation. - */ - tmp = 0; - (void)ioctl (fd, KIOCSDIRECT, &tmp); - tmp = TR_ASCII; - (void)ioctl (fd, KIOCTRANS, &tmp); - } - if (ioctl (fd, FIONREAD, &toread) != -1 && toread > 0) { - while (toread) { - tmp = toread; - if (toread > sizeof (junk)) - tmp = sizeof (junk); - (void) read (fd, junk, tmp); - toread -= tmp; - } - } -#ifndef i386 /* { */ - (void) sigprocmask(SIG_SETMASK, &old_mask, (sigset_t *)NULL); -#else /* }{ */ - sigsetmask (old_mask); -#endif /* } */ - return 0; -} - -/*ARGSUSED*/ -Bool LegalModifier(key, pDev) - unsigned int key; - DevicePtr pDev; -{ - return TRUE; -} - -/*ARGSUSED*/ -void sunBlockHandler(nscreen, pbdata, pptv, pReadmask) - int nscreen; - pointer pbdata; - struct timeval **pptv; - pointer pReadmask; -{ - KeybdCtrl* ctrl = &((DeviceIntPtr)LookupKeyboardDevice())->kbdfeed->ctrl; - static struct timeval artv = { 0, 0 }; /* autorepeat timeval */ - - if (!autoRepeatKeyDown) - return; - - if (ctrl->autoRepeat != AutoRepeatModeOn) - return; - - if (autoRepeatFirst == TRUE) - artv.tv_usec = sunAutoRepeatInitiate; - else - artv.tv_usec = sunAutoRepeatDelay; - *pptv = &artv; - -} - -/*ARGSUSED*/ -void sunWakeupHandler(nscreen, pbdata, err, pReadmask) - int nscreen; - pointer pbdata; - unsigned long err; - pointer pReadmask; -{ - KeybdCtrl* ctrl = &((DeviceIntPtr)LookupKeyboardDevice())->kbdfeed->ctrl; - struct timeval tv; - - if (ctrl->autoRepeat != AutoRepeatModeOn) - return; - - if (autoRepeatKeyDown) { - X_GETTIMEOFDAY(&tv); - tvminus(autoRepeatDeltaTv, tv, autoRepeatLastKeyDownTv); - if (autoRepeatDeltaTv.tv_sec > 0 || - (!autoRepeatFirst && autoRepeatDeltaTv.tv_usec > - sunAutoRepeatDelay) || - (autoRepeatDeltaTv.tv_usec > - sunAutoRepeatInitiate)) - autoRepeatReady++; - } - - if (autoRepeatReady) - { - sunEnqueueAutoRepeat (); - autoRepeatReady = 0; - } -} diff --git a/nx-X11/programs/Xserver/hw/sun/sunKeyMap.c b/nx-X11/programs/Xserver/hw/sun/sunKeyMap.c deleted file mode 100644 index 33300fcb6..000000000 --- a/nx-X11/programs/Xserver/hw/sun/sunKeyMap.c +++ /dev/null @@ -1,5797 +0,0 @@ -/* $Xorg: sunKeyMap.c,v 1.3 2000/08/17 19:48:30 cpqbld Exp $ */ -/************************************************************ -Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this -software and its documentation for any purpose and without -fee is hereby granted, provided that the above copyright no- -tice appear in all copies and that both that copyright no- -tice and this permission notice appear in supporting docu- -mentation, and that the names of Sun or The Open Group -not be used in advertising or publicity pertaining to -distribution of the software without specific prior -written permission. Sun and The Open Group make no -representations about the suitability of this software for -any purpose. It is provided "as is" without any express or -implied warranty. - -SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT- -NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE LI- -ABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH -THE USE OR PERFORMANCE OF THIS SOFTWARE. - -********************************************************/ -/* $XFree86: xc/programs/Xserver/hw/sun/sunKeyMap.c,v 1.3 2001/01/17 22:36:50 dawes Exp $ */ - -#include "sun.h" -#define XK_KATAKANA -#include "keysym.h" -#include "Sunkeysym.h" - -/* - By default all keyboards are hardcoded on the theory that people - might remove /usr/openwin making it impossible to parse the files - in /usr/openwin/share/etc/keytables. -*/ -#define CAN4 -#define CANFR5 -#define DEN4 -#define DEN5 -#define FR5 -#define FRBE4 -#define GER4 -#define GER5 -#define ITALY4 -#define ITALY5 -#define JAPAN4 -#define JAPAN5 -#define KOREA4 -#define KOREA5 -#define NETH4 -#define NETH5 -#define NORW4 -#define NORW5 -#define PORT4 -#define PORT5 -#define SPAIN5 -#define SPAINLATAM4 -#define SWED5 -#define SWEDFIN4 -#define SWFR4 -#define SWFR5 -#define SWGE4 -#define SWGE5 -#define TAI4 -#define TAI5 -#define UK4 -#define UK5 -#define US101A -#define US2 -#define US3 -#define US4 -#define US5 -#define US_UNIX5 - -/* - * XXX - Its not clear what to map these to for now. - * keysyms.h doesn't define enough function key names. - */ - -#ifndef XK_L1 -#define XK_L1 XK_Cancel -#define XK_L2 XK_Redo -#define XK_R1 NoSymbol -#define XK_R2 NoSymbol -#define XK_R3 NoSymbol -#define XK_L3 XK_Menu -#define XK_L4 XK_Undo -#define XK_R4 NoSymbol -#define XK_R5 NoSymbol -#define XK_R6 NoSymbol -#define XK_L5 XK_Insert -#define XK_L6 XK_Select -#define XK_R7 NoSymbol -#define XK_R8 XK_Up -#define XK_R9 NoSymbol -#define XK_L7 XK_Execute -#define XK_L8 XK_Print -#define XK_R10 XK_Left -#define XK_R11 XK_Home -#define XK_R12 XK_Right -#define XK_L9 XK_Find -#define XK_L10 XK_Help -#define XK_R13 NoSymbol -#define XK_R14 XK_Down -#define XK_R15 NoSymbol -#endif - -/* twm and Motif have hard-coded dependencies on Meta being Mod1 :-( */ -#if 0 -/* This set has optimal characteristics for use in the Toolkit... */ -#define Meta_Mask Mod1Mask -#define Mode_switch_Mask Mod2Mask -#define Num_Lock_Mask Mod3Mask -#define Alt_Mask Mod4Mask -#else -/* but this set is compatible with what we shipped in R6. */ -#define Meta_Mask Mod1Mask -#define Mode_switch_Mask Mod2Mask -#define Alt_Mask Mod3Mask -#define Num_Lock_Mask Mod4Mask -#endif - -#ifdef US2 - -static KeySym US2Keymap[] = { - XK_L1, NoSymbol, /* 0x1 */ - NoSymbol, NoSymbol, /* 0x2 */ - XK_L2, NoSymbol, /* 0x3 */ - NoSymbol, NoSymbol, /* 0x4 */ - XK_F1, NoSymbol, /* 0x5 */ - XK_F2, NoSymbol, /* 0x6 */ - NoSymbol, NoSymbol, /* 0x7 */ - XK_F3, NoSymbol, /* 0x8 */ - NoSymbol, NoSymbol, /* 0x9 */ - XK_F4, NoSymbol, /* 0xa */ - NoSymbol, NoSymbol, /* 0xb */ - XK_F5, NoSymbol, /* 0xc */ - NoSymbol, NoSymbol, /* 0xd */ - XK_F6, NoSymbol, /* 0xe */ - NoSymbol, NoSymbol, /* 0xf */ - XK_F7, NoSymbol, /* 0x10 */ - XK_F8, NoSymbol, /* 0x11 */ - XK_F9, NoSymbol, /* 0x12 */ - XK_Break, NoSymbol, /* 0x13 */ - NoSymbol, NoSymbol, /* 0x14 */ - XK_R1, NoSymbol, /* 0x15 */ - XK_R2, NoSymbol, /* 0x16 */ - XK_R3, NoSymbol, /* 0x17 */ - NoSymbol, NoSymbol, /* 0x18 */ - XK_L3, NoSymbol, /* 0x19 */ - XK_L4, NoSymbol, /* 0x1a */ - NoSymbol, NoSymbol, /* 0x1b */ - NoSymbol, NoSymbol, /* 0x1c */ - XK_Escape, NoSymbol, /* 0x1d */ - XK_1, XK_exclam, /* 0x1e */ - XK_2, XK_at, /* 0x1f */ - XK_3, XK_numbersign, /* 0x20 */ - XK_4, XK_dollar, /* 0x21 */ - XK_5, XK_percent, /* 0x22 */ - XK_6, XK_asciicircum, /* 0x23 */ - XK_7, XK_ampersand, /* 0x24 */ - XK_8, XK_asterisk, /* 0x25 */ - XK_9, XK_parenleft, /* 0x26 */ - XK_0, XK_parenright, /* 0x27 */ - XK_minus, XK_underscore, /* 0x28 */ - XK_equal, XK_plus, /* 0x29 */ - XK_grave, XK_asciitilde, /* 0x2a */ - XK_BackSpace, NoSymbol, /* 0x2b */ - NoSymbol, NoSymbol, /* 0x2c */ - XK_R4, NoSymbol, /* 0x2d */ - XK_R5, NoSymbol, /* 0x2e */ - XK_R6, NoSymbol, /* 0x2f */ - NoSymbol, NoSymbol, /* 0x30 */ - XK_L5, NoSymbol, /* 0x31 */ - NoSymbol, NoSymbol, /* 0x32 */ - XK_L6, NoSymbol, /* 0x33 */ - NoSymbol, NoSymbol, /* 0x34 */ - XK_Tab, NoSymbol, /* 0x35 */ - XK_Q, NoSymbol, /* 0x36 */ - XK_W, NoSymbol, /* 0x37 */ - XK_E, NoSymbol, /* 0x38 */ - XK_R, NoSymbol, /* 0x39 */ - XK_T, NoSymbol, /* 0x3a */ - XK_Y, NoSymbol, /* 0x3b */ - XK_U, NoSymbol, /* 0x3c */ - XK_I, NoSymbol, /* 0x3d */ - XK_O, NoSymbol, /* 0x3e */ - XK_P, NoSymbol, /* 0x3f */ - XK_bracketleft, XK_braceleft, /* 0x40 */ - XK_bracketright, XK_braceright, /* 0x41 */ - XK_Delete, NoSymbol, /* 0x42 */ - NoSymbol, NoSymbol, /* 0x43 */ - XK_R7, NoSymbol, /* 0x44 */ - XK_Up, XK_R8, /* 0x45 */ - XK_R9, NoSymbol, /* 0x46 */ - NoSymbol, NoSymbol, /* 0x47 */ - XK_L7, NoSymbol, /* 0x48 */ - XK_L8, NoSymbol, /* 0x49 */ - NoSymbol, NoSymbol, /* 0x4a */ - NoSymbol, NoSymbol, /* 0x4b */ - XK_Control_L, NoSymbol, /* 0x4c */ - XK_A, NoSymbol, /* 0x4d */ - XK_S, NoSymbol, /* 0x4e */ - XK_D, NoSymbol, /* 0x4f */ - XK_F, NoSymbol, /* 0x50 */ - XK_G, NoSymbol, /* 0x51 */ - XK_H, NoSymbol, /* 0x52 */ - XK_J, NoSymbol, /* 0x53 */ - XK_K, NoSymbol, /* 0x54 */ - XK_L, NoSymbol, /* 0x55 */ - XK_semicolon, XK_colon, /* 0x56 */ - XK_apostrophe, XK_quotedbl, /* 0x57 */ - XK_backslash, XK_bar, /* 0x58 */ - XK_Return, NoSymbol, /* 0x59 */ - NoSymbol, NoSymbol, /* 0x5a */ - XK_Left, XK_R10, /* 0x5b */ - XK_R11, NoSymbol, /* 0x5c */ - XK_Right, XK_R12, /* 0x5d */ - NoSymbol, NoSymbol, /* 0x5e */ - XK_L9, NoSymbol, /* 0x5f */ - NoSymbol, NoSymbol, /* 0x60 */ - XK_L10, NoSymbol, /* 0x61 */ - NoSymbol, NoSymbol, /* 0x62 */ - XK_Shift_L, NoSymbol, /* 0x63 */ - XK_Z, NoSymbol, /* 0x64 */ - XK_X, NoSymbol, /* 0x65 */ - XK_C, NoSymbol, /* 0x66 */ - XK_V, NoSymbol, /* 0x67 */ - XK_B, NoSymbol, /* 0x68 */ - XK_N, NoSymbol, /* 0x69 */ - XK_M, NoSymbol, /* 0x6a */ - XK_comma, XK_less, /* 0x6b */ - XK_period, XK_greater, /* 0x6c */ - XK_slash, XK_question, /* 0x6d */ - XK_Shift_R, NoSymbol, /* 0x6e */ - XK_Linefeed, NoSymbol, /* 0x6f */ - XK_R13, NoSymbol, /* 0x70 */ - XK_Down, XK_R14, /* 0x71 */ - XK_R15, NoSymbol, /* 0x72 */ - NoSymbol, NoSymbol, /* 0x73 */ - NoSymbol, NoSymbol, /* 0x74 */ - NoSymbol, NoSymbol, /* 0x75 */ - NoSymbol, NoSymbol, /* 0x76 */ - NoSymbol, NoSymbol, /* 0x77 */ - XK_Meta_L, NoSymbol, /* 0x78 */ - XK_space, NoSymbol, /* 0x79 */ - XK_Meta_R, NoSymbol, /* 0x7a */ - NoSymbol, NoSymbol, /* 0x7b */ - NoSymbol, NoSymbol, /* 0x7c */ - NoSymbol, NoSymbol, /* 0x7d */ - NoSymbol, NoSymbol, /* 0x7e */ - NoSymbol, NoSymbol, /* 0x7f */ -}; - -static SunModmapRec US2Modmap[] = { - { 99, ShiftMask }, - { 110, ShiftMask }, - { 76, ControlMask }, - { 120, Meta_Mask }, - { 122, Meta_Mask }, - { 0, 0 } -}; - -#else - -#define US2Keymap NULL -#define US2Modmap NULL - -#endif /* US2 */ - -#ifdef US3 - -static KeySym US3Keymap[] = { - XK_L1, NoSymbol, /* 0x1 */ - NoSymbol, NoSymbol, /* 0x2 */ - XK_L2, NoSymbol, /* 0x3 */ - NoSymbol, NoSymbol, /* 0x4 */ - XK_F1, NoSymbol, /* 0x5 */ - XK_F2, NoSymbol, /* 0x6 */ - NoSymbol, NoSymbol, /* 0x7 */ - XK_F3, NoSymbol, /* 0x8 */ - NoSymbol, NoSymbol, /* 0x9 */ - XK_F4, NoSymbol, /* 0xa */ - NoSymbol, NoSymbol, /* 0xb */ - XK_F5, NoSymbol, /* 0xc */ - NoSymbol, NoSymbol, /* 0xd */ - XK_F6, NoSymbol, /* 0xe */ - NoSymbol, NoSymbol, /* 0xf */ - XK_F7, NoSymbol, /* 0x10 */ - XK_F8, NoSymbol, /* 0x11 */ - XK_F9, NoSymbol, /* 0x12 */ - XK_Alt_R, NoSymbol, /* 0x13 */ - NoSymbol, NoSymbol, /* 0x14 */ - XK_R1, NoSymbol, /* 0x15 */ - XK_R2, NoSymbol, /* 0x16 */ - XK_R3, NoSymbol, /* 0x17 */ - NoSymbol, NoSymbol, /* 0x18 */ - XK_L3, NoSymbol, /* 0x19 */ - XK_L4, NoSymbol, /* 0x1a */ - NoSymbol, NoSymbol, /* 0x1b */ - NoSymbol, NoSymbol, /* 0x1c */ - XK_Escape, NoSymbol, /* 0x1d */ - XK_1, XK_exclam, /* 0x1e */ - XK_2, XK_at, /* 0x1f */ - XK_3, XK_numbersign, /* 0x20 */ - XK_4, XK_dollar, /* 0x21 */ - XK_5, XK_percent, /* 0x22 */ - XK_6, XK_asciicircum, /* 0x23 */ - XK_7, XK_ampersand, /* 0x24 */ - XK_8, XK_asterisk, /* 0x25 */ - XK_9, XK_parenleft, /* 0x26 */ - XK_0, XK_parenright, /* 0x27 */ - XK_minus, XK_underscore, /* 0x28 */ - XK_equal, XK_plus, /* 0x29 */ - XK_grave, XK_asciitilde, /* 0x2a */ - XK_BackSpace, NoSymbol, /* 0x2b */ - NoSymbol, NoSymbol, /* 0x2c */ - XK_R4, NoSymbol, /* 0x2d */ - XK_R5, NoSymbol, /* 0x2e */ - XK_R6, NoSymbol, /* 0x2f */ - NoSymbol, NoSymbol, /* 0x30 */ - XK_L5, NoSymbol, /* 0x31 */ - NoSymbol, NoSymbol, /* 0x32 */ - XK_L6, NoSymbol, /* 0x33 */ - NoSymbol, NoSymbol, /* 0x34 */ - XK_Tab, NoSymbol, /* 0x35 */ - XK_Q, NoSymbol, /* 0x36 */ - XK_W, NoSymbol, /* 0x37 */ - XK_E, NoSymbol, /* 0x38 */ - XK_R, NoSymbol, /* 0x39 */ - XK_T, NoSymbol, /* 0x3a */ - XK_Y, NoSymbol, /* 0x3b */ - XK_U, NoSymbol, /* 0x3c */ - XK_I, NoSymbol, /* 0x3d */ - XK_O, NoSymbol, /* 0x3e */ - XK_P, NoSymbol, /* 0x3f */ - XK_bracketleft, XK_braceleft, /* 0x40 */ - XK_bracketright, XK_braceright, /* 0x41 */ - XK_Delete, NoSymbol, /* 0x42 */ - NoSymbol, NoSymbol, /* 0x43 */ - XK_R7, NoSymbol, /* 0x44 */ - XK_Up, XK_R8, /* 0x45 */ - XK_R9, NoSymbol, /* 0x46 */ - NoSymbol, NoSymbol, /* 0x47 */ - XK_L7, NoSymbol, /* 0x48 */ - XK_L8, NoSymbol, /* 0x49 */ - NoSymbol, NoSymbol, /* 0x4a */ - NoSymbol, NoSymbol, /* 0x4b */ - XK_Control_L, NoSymbol, /* 0x4c */ - XK_A, NoSymbol, /* 0x4d */ - XK_S, NoSymbol, /* 0x4e */ - XK_D, NoSymbol, /* 0x4f */ - XK_F, NoSymbol, /* 0x50 */ - XK_G, NoSymbol, /* 0x51 */ - XK_H, NoSymbol, /* 0x52 */ - XK_J, NoSymbol, /* 0x53 */ - XK_K, NoSymbol, /* 0x54 */ - XK_L, NoSymbol, /* 0x55 */ - XK_semicolon, XK_colon, /* 0x56 */ - XK_apostrophe, XK_quotedbl, /* 0x57 */ - XK_backslash, XK_bar, /* 0x58 */ - XK_Return, NoSymbol, /* 0x59 */ - NoSymbol, NoSymbol, /* 0x5a */ - XK_Left, XK_R10, /* 0x5b */ - XK_R11, NoSymbol, /* 0x5c */ - XK_Right, XK_R12, /* 0x5d */ - NoSymbol, NoSymbol, /* 0x5e */ - XK_L9, NoSymbol, /* 0x5f */ - NoSymbol, NoSymbol, /* 0x60 */ - XK_L10, NoSymbol, /* 0x61 */ - NoSymbol, NoSymbol, /* 0x62 */ - XK_Shift_L, NoSymbol, /* 0x63 */ - XK_Z, NoSymbol, /* 0x64 */ - XK_X, NoSymbol, /* 0x65 */ - XK_C, NoSymbol, /* 0x66 */ - XK_V, NoSymbol, /* 0x67 */ - XK_B, NoSymbol, /* 0x68 */ - XK_N, NoSymbol, /* 0x69 */ - XK_M, NoSymbol, /* 0x6a */ - XK_comma, XK_less, /* 0x6b */ - XK_period, XK_greater, /* 0x6c */ - XK_slash, XK_question, /* 0x6d */ - XK_Shift_R, NoSymbol, /* 0x6e */ - XK_Linefeed, NoSymbol, /* 0x6f */ - XK_R13, NoSymbol, /* 0x70 */ - XK_Down, XK_R14, /* 0x71 */ - XK_R15, NoSymbol, /* 0x72 */ - NoSymbol, NoSymbol, /* 0x73 */ - NoSymbol, NoSymbol, /* 0x74 */ - NoSymbol, NoSymbol, /* 0x75 */ - NoSymbol, NoSymbol, /* 0x76 */ - XK_Caps_Lock, NoSymbol, /* 0x77 */ - XK_Meta_L, NoSymbol, /* 0x78 */ - XK_space, NoSymbol, /* 0x79 */ - XK_Meta_R, NoSymbol, /* 0x7a */ - NoSymbol, NoSymbol, /* 0x7b */ - NoSymbol, NoSymbol, /* 0x7c */ - NoSymbol, NoSymbol, /* 0x7d */ - NoSymbol, NoSymbol, /* 0x7e */ - NoSymbol, NoSymbol, /* 0x7f */ -}; - -static SunModmapRec US3Modmap[] = { - { 99, ShiftMask }, - { 110, ShiftMask }, - { 76, ControlMask }, - { 119, LockMask }, - { 120, Meta_Mask }, - { 122, Meta_Mask }, - { 0, 0 } -}; - -#else - -#define US3Keymap NULL -#define US3Modmap NULL - -#endif /* US3 */ - -KeySymsRec sunKeySyms[] = { - /* map minKeyCode maxKC width */ - { (KeySym *)NULL, 0, 0, 0 }, - { (KeySym *)NULL, 0, 0, 0 }, - { US2Keymap, 1, 0x7a, 2 }, - { US3Keymap, 1, 0x7a, 2 }, - { (KeySym *)NULL, 1, 0x7d, 4 } -}; - -SunModmapRec *sunModMaps[] = { - NULL, - NULL, - US2Modmap, - US3Modmap, - NULL -}; - -static SunModmapRec Generic5Modmap[] = { - { 99, ShiftMask }, - { 110, ShiftMask }, - { 119, LockMask }, - { 76, ControlMask }, - { 120, Meta_Mask }, - { 122, Meta_Mask }, - { 13, Mode_switch_Mask }, - { 98, Num_Lock_Mask }, - { 19, Alt_Mask }, - { 0, 0} -}; - -#if defined(DEN4) || defined(SWEDFIN4) || defined(SWFR4) || defined(SWGE4) - -static SunModmapRec DenSwedFinSw4Modmap[] = { - { 99, ShiftMask }, - { 110, ShiftMask }, - { 76, LockMask }, - { 119, ControlMask }, - { 120, Meta_Mask }, - { 122, Meta_Mask }, - { 67, Mode_switch_Mask }, - { 98, Num_Lock_Mask }, - { 19, Alt_Mask }, - { 0, 0 } -}; - -#endif - -#if defined(FRBE4) || defined(NETH4) - -static SunModmapRec FrBeNeth4Modmap[] = { - { 99, ShiftMask }, - { 110, ShiftMask }, - { 13, LockMask }, - { 76, ControlMask }, - { 120, Meta_Mask }, - { 122, Meta_Mask }, - { 119, Mode_switch_Mask }, - { 98, Num_Lock_Mask }, - { 19, Alt_Mask }, - { 0, 0 } -}; - -#endif - -#if defined(ITALY4) || defined(NORW4) || defined(PORT4) || defined(SPAINLATAM4) - -static SunModmapRec ItNorPortSp4Modmap[] = { - { 99, ShiftMask }, - { 110, ShiftMask }, - { 76, LockMask }, - { 119, ControlMask }, - { 120, Meta_Mask }, - { 122, Meta_Mask }, - { 13, Mode_switch_Mask }, - { 98, Num_Lock_Mask }, - { 19, Alt_Mask }, - { 0, 0 } -}; - -#endif - -#ifdef CAN4 - -static KeySym Canada4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 9*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 11*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - XK_Control_R, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_degree, NoSymbol, XK_notsign, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_numbersign, NoSymbol, NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_question, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_ampersand, XK_braceleft, NoSymbol, /* 36*/ - XK_8, XK_asterisk, XK_bracketleft, NoSymbol, /* 37*/ - XK_9, XK_parenleft, XK_bracketright,NoSymbol, /* 38*/ - XK_0, XK_parenright, XK_braceright, NoSymbol, /* 39*/ - XK_minus, XK_underscore, XK_bar, NoSymbol, /* 40*/ - XK_equal, XK_plus, NoSymbol, NoSymbol, /* 41*/ - XK_Agrave, NoSymbol, XK_grave, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, XK_KP_Equal, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, XK_KP_Divide, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, XK_KP_Multiply, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - SunXK_FA_Circum,SunXK_FA_Diaeresis,XK_asciicircum,NoSymbol, /* 64*/ - XK_Ccedilla, NoSymbol, XK_asciitilde, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, XK_Prior, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_semicolon, XK_colon, NoSymbol, NoSymbol, /* 86*/ - XK_Egrave, NoSymbol, NoSymbol, NoSymbol, /* 87*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, XK_guillemotleft,NoSymbol, /*100*/ - XK_X, NoSymbol, XK_guillemotright,NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_apostrophe, XK_less, NoSymbol, /*107*/ - XK_period, NoSymbol, XK_greater, NoSymbol, /*108*/ - XK_Eacute, NoSymbol, XK_slash, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_Ugrave, NoSymbol, XK_backslash, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -static SunModmapRec Canada4Modmap[] = { - { 99, ShiftMask }, - { 110, ShiftMask }, - { 76, LockMask }, - { 13, ControlMask }, - { 120, Meta_Mask }, - { 122, Meta_Mask }, - { 119, Mode_switch_Mask }, - { 98, Num_Lock_Mask }, - { 19, Alt_Mask }, - { 0, 0} -}; - -#else - -#define Canada4Keymap NULL -#define Canada4Modmap NULL - -#endif /* CANADA4 */ - -#ifdef CANFR5 - -static KeySym CanadaFr5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, XK_Break, XK_R1, XK_R1, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, XK_R3, XK_R3, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, XK_plusminus, NoSymbol, /* 30*/ - XK_2, XK_at, NoSymbol, NoSymbol, /* 31*/ - XK_3, XK_numbersign, XK_sterling, NoSymbol, /* 32*/ - XK_4, XK_dollar, XK_cent, NoSymbol, /* 33*/ - XK_5, XK_percent, XK_currency, NoSymbol, /* 34*/ - XK_6, XK_question, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_ampersand, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_asterisk, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenleft, XK_bracketleft, NoSymbol, /* 38*/ - XK_0, XK_parenright, XK_bracketright,NoSymbol, /* 39*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /* 40*/ - XK_equal, XK_plus, XK_notsign, NoSymbol, /* 41*/ - XK_slash, XK_backslash, XK_bar, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, XK_R5, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, XK_R6, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift,NoSymbol,NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, XK_paragraph, NoSymbol, /* 63*/ - SunXK_FA_Circum,SunXK_FA_Diaeresis,SunXK_FA_Grave,NoSymbol, /* 64*/ - XK_Ccedilla, NoSymbol, XK_asciitilde, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, XK_R4, XK_R4, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_semicolon, XK_colon, XK_degree, NoSymbol, /* 86*/ - XK_Egrave, NoSymbol, NoSymbol, NoSymbol, /* 87*/ - XK_Agrave, NoSymbol, NoSymbol, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, XK_guillemotleft,NoSymbol, /*100*/ - XK_X, NoSymbol, XK_guillemotright,NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, XK_mu, NoSymbol, /*106*/ - XK_comma, XK_quoteright, XK_less, NoSymbol, /*107*/ - XK_period, XK_quotedbl, XK_greater, NoSymbol, /*108*/ - XK_Eacute, NoSymbol, XK_quoteleft, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_Uacute, NoSymbol, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define CanadaFr5Modmap Generic5Modmap - -#else - -#define CanadaFr5Keymap NULL -#define CanadaFr5Modmap NULL - -#endif /* CANFR5 */ - - -#ifdef DEN4 - -static KeySym Denmark4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - XK_asciitilde, XK_asciicircum, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, XK_R1, XK_Pause, NoSymbol, /* 21*/ - XK_Print, XK_R2, XK_Print, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_numbersign, XK_sterling, NoSymbol, /* 32*/ - XK_4, XK_currency, XK_dollar, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_ampersand, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_slash, XK_braceleft, NoSymbol, /* 36*/ - XK_8, XK_parenleft, XK_bracketleft, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_bracketright,NoSymbol, /* 38*/ - XK_0, XK_equal, XK_braceright, NoSymbol, /* 39*/ - XK_plus, XK_question, NoSymbol, NoSymbol, /* 40*/ - SunXK_FA_Acute, SunXK_FA_Grave, XK_bar, NoSymbol, /* 41*/ - XK_apostrophe, XK_asterisk, XK_grave, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_Aring, NoSymbol, NoSymbol, NoSymbol, /* 64*/ - SunXK_FA_Diaeresis,SunXK_FA_Circum,SunXK_FA_Tilde,NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_AE, NoSymbol, NoSymbol, NoSymbol, /* 86*/ - XK_Ooblique, NoSymbol, NoSymbol, NoSymbol, /* 87*/ - XK_onehalf, XK_section, NoSymbol, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, XK_backslash, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define Denmark4Modmap DenSwedFinSw4Modmap - -#else - -#define Denmark4Keymap NULL -#define Denmark4Modmap NULL - -#endif /* DENMARK4 */ - - -#ifdef DEN5 - -static KeySym Denmark5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_numbersign, XK_sterling, NoSymbol, /* 32*/ - XK_4, XK_currency, XK_dollar, NoSymbol, /* 33*/ - XK_5, XK_percent, XK_asciitilde, NoSymbol, /* 34*/ - XK_6, XK_ampersand, XK_asciicircum, NoSymbol, /* 35*/ - XK_7, XK_slash, XK_braceleft, NoSymbol, /* 36*/ - XK_8, XK_parenleft, XK_bracketleft, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_bracketright,NoSymbol, /* 38*/ - XK_0, XK_equal, XK_braceright, NoSymbol, /* 39*/ - XK_plus, XK_question, NoSymbol, NoSymbol, /* 40*/ - SunXK_FA_Acute, SunXK_FA_Grave, XK_bar, NoSymbol, /* 41*/ - XK_onehalf, XK_section, NoSymbol, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_Aring, NoSymbol, NoSymbol, NoSymbol, /* 64*/ - SunXK_FA_Diaeresis,SunXK_FA_Circum,SunXK_FA_Tilde,NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_AE, NoSymbol, NoSymbol, NoSymbol, /* 86*/ - XK_Ooblique, NoSymbol, NoSymbol, NoSymbol, /* 87*/ - XK_apostrophe, XK_asterisk, XK_grave, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, XK_backslash, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define Denmark5Modmap Generic5Modmap - -#else - -#define Denmark5Keymap NULL -#define Denmark5Modmap NULL - -#endif /* DEN5 */ - - -#ifdef FR5 - -static KeySym France5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_ampersand, XK_1, NoSymbol, NoSymbol, /* 30*/ - XK_eacute, XK_2, XK_asciitilde, NoSymbol, /* 31*/ - XK_quotedbl, XK_3, XK_numbersign, NoSymbol, /* 32*/ - XK_apostrophe, XK_4, XK_braceleft, NoSymbol, /* 33*/ - XK_parenleft, XK_5, XK_bracketleft, NoSymbol, /* 34*/ - XK_minus, XK_6, XK_bar, NoSymbol, /* 35*/ - XK_egrave, XK_7, XK_grave, NoSymbol, /* 36*/ - XK_underscore, XK_8, XK_backslash, NoSymbol, /* 37*/ - XK_ccedilla, XK_9, XK_asciicircum, NoSymbol, /* 38*/ - XK_agrave, XK_0, XK_at, NoSymbol, /* 39*/ - XK_parenright, XK_degree, XK_bracketright,NoSymbol, /* 40*/ - XK_equal, XK_plus, XK_braceright, NoSymbol, /* 41*/ - XK_twosuperior, NoSymbol, NoSymbol, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - SunXK_FA_Circum,SunXK_FA_Diaeresis,NoSymbol, NoSymbol, /* 64*/ - XK_dollar, XK_sterling, XK_currency, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /* 86*/ - XK_ugrave, XK_percent, NoSymbol, NoSymbol, /* 87*/ - XK_asterisk, XK_mu, NoSymbol, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_comma, XK_question, NoSymbol, NoSymbol, /*106*/ - XK_semicolon, XK_period, NoSymbol, NoSymbol, /*107*/ - XK_colon, XK_slash, NoSymbol, NoSymbol, /*108*/ - XK_exclam, XK_section, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, XK_Next, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define France5Modmap Generic5Modmap - -#else - -#define France5Keymap NULL -#define France5Modmap NULL - -#endif /* FRANCE5 */ - - -#ifdef FRBE4 - -static KeySym FranceBelg4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - XK_bracketright,XK_braceright, XK_guillemotright,NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_ampersand, XK_1, NoSymbol, NoSymbol, /* 30*/ - XK_eacute, XK_2, XK_twosuperior, NoSymbol, /* 31*/ - XK_quotedbl, XK_3, XK_threesuperior,NoSymbol, /* 32*/ - XK_apostrophe, XK_4, XK_acute, NoSymbol, /* 33*/ - XK_parenleft, XK_5, NoSymbol, NoSymbol, /* 34*/ - XK_section, XK_6, XK_asciicircum, NoSymbol, /* 35*/ - XK_egrave, XK_7, NoSymbol, NoSymbol, /* 36*/ - XK_exclam, XK_8, XK_sterling, NoSymbol, /* 37*/ - XK_ccedilla, XK_9, XK_backslash, NoSymbol, /* 38*/ - XK_agrave, XK_0, NoSymbol, NoSymbol, /* 39*/ - XK_parenright, XK_degree, XK_asciitilde, NoSymbol, /* 40*/ - XK_minus, XK_underscore, XK_numbersign, NoSymbol, /* 41*/ - XK_asterisk, XK_bar, XK_currency, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, XK_KP_Equal, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, XK_KP_Divide, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, XK_KP_Multiply, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - SunXK_FA_Circum,SunXK_FA_Diaeresis,NoSymbol, NoSymbol, /* 64*/ - XK_grave, XK_dollar, XK_at, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, XK_KP_Subtract, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_M, NoSymbol, XK_mu, NoSymbol, /* 86*/ - XK_ugrave, XK_percent, NoSymbol, NoSymbol, /* 87*/ - XK_bracketleft, XK_braceleft, XK_guillemotleft,NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, XK_KP_Enter, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_comma, XK_question, NoSymbol, NoSymbol, /*106*/ - XK_semicolon, XK_period, NoSymbol, NoSymbol, /*107*/ - XK_colon, XK_slash, NoSymbol, NoSymbol, /*108*/ - XK_equal, XK_plus, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, XK_KP_Add, NoSymbol, NoSymbol, /*125*/ -}; - -#define FranceBelg4Modmap FrBeNeth4Modmap - -#else - -#define FranceBelg4Keymap NULL -#define FranceBelg4Modmap NULL - -#endif /* FRANCEBELG4 */ - - -#ifdef GER4 - -static KeySym Germany4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - XK_Alt_R, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - XK_bracketright,XK_braceright,XK_guillemotright,NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Scroll_Lock, NoSymbol, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_twosuperior, NoSymbol, /* 31*/ - XK_3, XK_section, XK_threesuperior,NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_ampersand, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_slash, XK_degree, NoSymbol, /* 36*/ - XK_8, XK_parenleft, XK_grave, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_apostrophe, NoSymbol, /* 38*/ - XK_0, XK_equal, XK_bar, NoSymbol, /* 39*/ - XK_ssharp, XK_question, XK_backslash, NoSymbol, /* 40*/ - SunXK_FA_Acute, SunXK_FA_Grave, NoSymbol, NoSymbol, /* 41*/ - XK_numbersign, XK_asciicircum, XK_at, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Delete, XK_KP_Decimal, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_Udiaeresis, NoSymbol, NoSymbol, NoSymbol, /* 64*/ - XK_plus, XK_asterisk, XK_asciitilde, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, XK_KP_Subtract, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_Odiaeresis, NoSymbol, NoSymbol, NoSymbol, /* 86*/ - XK_Adiaeresis, NoSymbol, NoSymbol, NoSymbol, /* 87*/ - XK_bracketleft, XK_braceleft, XK_guillemotleft,NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, XK_mu, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -static SunModmapRec Germany4Modmap[] = { - { 99, ShiftMask }, - { 110, ShiftMask }, - { 76, LockMask }, - { 119, ControlMask }, - { 120, Meta_Mask }, - { 122, Meta_Mask }, - { 19, Mode_switch_Mask }, - { 98, Num_Lock_Mask }, - { 13, Alt_Mask }, - { 0, 0 } -}; - -#else - -#define Germany4Keymap NULL -#define Germany4Modmap NULL - -#endif /* GERMANY4 */ - - -#ifdef GER5 - -static KeySym Germany5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_twosuperior, NoSymbol, /* 31*/ - XK_3, XK_section, XK_threesuperior,NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_ampersand, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_slash, XK_braceleft, NoSymbol, /* 36*/ - XK_8, XK_parenleft, XK_bracketleft, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_bracketright,NoSymbol, /* 38*/ - XK_0, XK_equal, XK_braceright, NoSymbol, /* 39*/ - XK_ssharp, XK_question, XK_backslash, NoSymbol, /* 40*/ - SunXK_FA_Acute, SunXK_FA_Grave, NoSymbol, NoSymbol, /* 41*/ - XK_asciicircum, XK_degree, NoSymbol, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Separator,NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_q, XK_Q, XK_at, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_Udiaeresis, NoSymbol, NoSymbol, NoSymbol, /* 64*/ - XK_plus, XK_asterisk, XK_asciitilde, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_Odiaeresis, NoSymbol, NoSymbol, NoSymbol, /* 86*/ - XK_Adiaeresis, NoSymbol, NoSymbol, NoSymbol, /* 87*/ - XK_numbersign, XK_apostrophe, XK_grave, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_m, XK_M, XK_mu, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, XK_bar, NoSymbol, /*124*/ - XK_KP_Add, XK_KP_Add, NoSymbol, NoSymbol, /*125*/ -}; - -#define Germany5Modmap Generic5Modmap - -#else - -#define Germany5Keymap NULL -#define Germany5Modmap NULL - -#endif /* GERMANY5 */ - - -#ifdef ITALY4 - -static KeySym Italy4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - XK_bracketright,XK_braceright, XK_guillemotright,NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_twosuperior, NoSymbol, /* 31*/ - XK_3, XK_sterling, XK_threesuperior,NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_ampersand, XK_notsign, NoSymbol, /* 35*/ - XK_7, XK_slash, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_parenleft, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_backslash, NoSymbol, /* 38*/ - XK_0, XK_equal, XK_bar, NoSymbol, /* 39*/ - XK_apostrophe, XK_question, XK_grave, NoSymbol, /* 40*/ - XK_igrave, XK_asciicircum, NoSymbol, NoSymbol, /* 41*/ - XK_ugrave, XK_section, NoSymbol, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_egrave, XK_eacute, NoSymbol, NoSymbol, /* 64*/ - XK_plus, XK_asterisk, XK_asciitilde, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_ograve, XK_ccedilla, XK_at, NoSymbol, /* 86*/ - XK_agrave, XK_degree, XK_numbersign, NoSymbol, /* 87*/ - XK_bracketleft, XK_braceleft, XK_guillemotleft,NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R4, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R5, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R6, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define Italy4Modmap ItNorPortSp4Modmap - -#else - -#define Italy4Keymap NULL -#define Italy4Modmap NULL - -#endif /* ITALY4 */ - - -#ifdef ITALY5 - -static KeySym Italy5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, XK_Break, NoSymbol, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, NoSymbol, NoSymbol, /* 31*/ - XK_3, XK_sterling, NoSymbol, NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_ampersand, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_slash, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_parenleft, XK_braceleft, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_braceright, NoSymbol, /* 38*/ - XK_0, XK_equal, NoSymbol, NoSymbol, /* 39*/ - XK_apostrophe, XK_question, XK_grave, NoSymbol, /* 40*/ - XK_igrave, XK_asciicircum, NoSymbol, NoSymbol, /* 41*/ - XK_backslash, XK_bar, NoSymbol, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, XK_KP_Divide, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, XK_KP_Multiply, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_egrave, XK_eacute, XK_bracketleft, NoSymbol, /* 64*/ - XK_plus, XK_asterisk, XK_bracketright,NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_ograve, XK_ccedilla, XK_at, NoSymbol, /* 86*/ - XK_agrave, XK_degree, XK_numbersign, NoSymbol, /* 87*/ - XK_ugrave, XK_section, XK_asciitilde, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, XK_KP_Enter, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, XK_KP_Add, NoSymbol, NoSymbol, /*125*/ -}; - -#define Italy5Modmap Generic5Modmap - -#else - -#define Italy5Keymap NULL -#define Italy5Modmap NULL - -#endif /* ITALY5 */ - - -#ifdef JAPAN4 - -static KeySym Japan4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, XK_kana_NU, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_kana_FU, NoSymbol, /* 31*/ - XK_3, XK_numbersign, XK_kana_A, XK_kana_a, /* 32*/ - XK_4, XK_dollar, XK_kana_U, XK_kana_u, /* 33*/ - XK_5, XK_percent, XK_kana_E, XK_kana_e, /* 34*/ - XK_6, XK_ampersand, XK_kana_O, XK_kana_o, /* 35*/ - XK_7, XK_apostrophe, XK_kana_YA, XK_kana_ya, /* 36*/ - XK_8, XK_parenleft, XK_kana_YU, XK_kana_yu, /* 37*/ - XK_9, XK_parenright, XK_kana_YO, XK_kana_yo, /* 38*/ - XK_0, XK_0, XK_kana_WA, XK_kana_WO, /* 39*/ - XK_minus, XK_equal, XK_kana_HO, NoSymbol, /* 40*/ - XK_asciicircum, XK_asciitilde, XK_kana_HE, NoSymbol, /* 41*/ - XK_bracketright,XK_braceright, XK_kana_MU, XK_kana_closingbracket, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_q, XK_Q, XK_kana_TA, NoSymbol, /* 54*/ - XK_w, XK_W, XK_kana_TE, NoSymbol, /* 55*/ - XK_e, XK_E, XK_kana_I, XK_kana_i, /* 56*/ - XK_r, XK_R, XK_kana_SU, NoSymbol, /* 57*/ - XK_t, XK_T, XK_kana_KA, NoSymbol, /* 58*/ - XK_y, XK_Y, XK_kana_N, NoSymbol, /* 59*/ - XK_u, XK_U, XK_kana_NA, NoSymbol, /* 60*/ - XK_i, XK_I, XK_kana_NI, NoSymbol, /* 61*/ - XK_o, XK_O, XK_kana_RA, NoSymbol, /* 62*/ - XK_p, XK_P, XK_kana_SE, NoSymbol, /* 63*/ - XK_at, XK_grave, XK_voicedsound, NoSymbol, /* 64*/ - XK_bracketleft, XK_braceleft, XK_semivoicedsound,XK_kana_openingbracket, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, XK_KP_Subtract, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_a, XK_A, XK_kana_CHI, NoSymbol, /* 77*/ - XK_s, XK_S, XK_kana_TO, NoSymbol, /* 78*/ - XK_d, XK_D, XK_kana_SHI, NoSymbol, /* 79*/ - XK_f, XK_F, XK_kana_HA, NoSymbol, /* 80*/ - XK_g, XK_G, XK_kana_KI, NoSymbol, /* 81*/ - XK_h, XK_H, XK_kana_KU, NoSymbol, /* 82*/ - XK_j, XK_J, XK_kana_MA, NoSymbol, /* 83*/ - XK_k, XK_K, XK_kana_NO, NoSymbol, /* 84*/ - XK_l, XK_L, XK_kana_RI, NoSymbol, /* 85*/ - XK_semicolon, XK_plus, XK_kana_RE, NoSymbol, /* 86*/ - XK_colon, XK_asterisk, XK_kana_KE, NoSymbol, /* 87*/ - XK_backslash, XK_bar, XK_prolongedsound,NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_z, XK_Z, XK_kana_TSU, XK_kana_tsu, /*100*/ - XK_x, XK_X, XK_kana_SA, NoSymbol, /*101*/ - XK_c, XK_C, XK_kana_SO, NoSymbol, /*102*/ - XK_v, XK_V, XK_kana_HI, NoSymbol, /*103*/ - XK_b, XK_B, XK_kana_KO, NoSymbol, /*104*/ - XK_n, XK_N, XK_kana_MI, NoSymbol, /*105*/ - XK_m, XK_M, XK_kana_MO, NoSymbol, /*106*/ - XK_comma, XK_less, XK_kana_NE, XK_kana_comma, /*107*/ - XK_period, XK_greater, XK_kana_RU, XK_kana_fullstop, /*108*/ - XK_slash, XK_question, XK_kana_ME, XK_kana_conjunctive, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_backslash, XK_underscore, XK_kana_RO, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - XK_Execute, NoSymbol, NoSymbol, NoSymbol, /*115*/ - XK_Kanji, NoSymbol, NoSymbol, NoSymbol, /*116*/ - XK_Henkan_Mode, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, XK_KP_Add, NoSymbol, NoSymbol, /*125*/ -}; - -#define Japan4Modmap Generic5Modmap - -#else - -#define Japan4Keymap NULL -#define Japan4Modmap NULL - -#endif /* JAPAN4 */ - - -#ifdef JAPAN5 - -static KeySym Japan5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, XK_kana_NU, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_kana_FU, NoSymbol, /* 31*/ - XK_3, XK_numbersign, XK_kana_A, XK_kana_a, /* 32*/ - XK_4, XK_dollar, XK_kana_U, XK_kana_u, /* 33*/ - XK_5, XK_percent, XK_kana_E, XK_kana_e, /* 34*/ - XK_6, XK_ampersand, XK_kana_O, XK_kana_o, /* 35*/ - XK_7, XK_apostrophe, XK_kana_YA, XK_kana_ya, /* 36*/ - XK_8, XK_parenleft, XK_kana_YU, XK_kana_yu, /* 37*/ - XK_9, XK_parenright, XK_kana_YO, XK_kana_yo, /* 38*/ - XK_0, XK_0, XK_kana_WA, XK_kana_WO, /* 39*/ - XK_minus, XK_equal, XK_kana_HO, NoSymbol, /* 40*/ - XK_asciicircum, XK_asciitilde, XK_kana_HE, NoSymbol, /* 41*/ - XK_backslash, XK_bar, XK_prolongedsound,NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_q, XK_Q, XK_kana_TA, NoSymbol, /* 54*/ - XK_w, XK_W, XK_kana_TE, NoSymbol, /* 55*/ - XK_e, XK_E, XK_kana_I, XK_kana_i, /* 56*/ - XK_r, XK_R, XK_kana_SU, NoSymbol, /* 57*/ - XK_t, XK_T, XK_kana_KA, NoSymbol, /* 58*/ - XK_y, XK_Y, XK_kana_N, NoSymbol, /* 59*/ - XK_u, XK_U, XK_kana_NA, NoSymbol, /* 60*/ - XK_i, XK_I, XK_kana_NI, NoSymbol, /* 61*/ - XK_o, XK_O, XK_kana_RA, NoSymbol, /* 62*/ - XK_p, XK_P, XK_kana_SE, NoSymbol, /* 63*/ - XK_at, XK_grave, XK_voicedsound, NoSymbol, /* 64*/ - XK_bracketleft, XK_braceleft, XK_semivoicedsound,XK_kana_openingbracket, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_a, XK_A, XK_kana_CHI, NoSymbol, /* 77*/ - XK_s, XK_S, XK_kana_TO, NoSymbol, /* 78*/ - XK_d, XK_D, XK_kana_SHI, NoSymbol, /* 79*/ - XK_f, XK_F, XK_kana_HA, NoSymbol, /* 80*/ - XK_g, XK_G, XK_kana_KI, NoSymbol, /* 81*/ - XK_h, XK_H, XK_kana_KU, NoSymbol, /* 82*/ - XK_j, XK_J, XK_kana_MA, NoSymbol, /* 83*/ - XK_k, XK_K, XK_kana_NO, NoSymbol, /* 84*/ - XK_l, XK_L, XK_kana_RI, NoSymbol, /* 85*/ - XK_semicolon, XK_plus, XK_kana_RE, NoSymbol, /* 86*/ - XK_colon, XK_asterisk, XK_kana_KE, NoSymbol, /* 87*/ - XK_bracketright,XK_braceright, XK_kana_MU, XK_kana_closingbracket, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_z, XK_Z, XK_kana_TSU, XK_kana_tsu, /*100*/ - XK_x, XK_X, XK_kana_SA, NoSymbol, /*101*/ - XK_c, XK_C, XK_kana_SO, NoSymbol, /*102*/ - XK_v, XK_V, XK_kana_HI, NoSymbol, /*103*/ - XK_b, XK_B, XK_kana_KO, NoSymbol, /*104*/ - XK_n, XK_N, XK_kana_MI, NoSymbol, /*105*/ - XK_m, XK_M, XK_kana_MO, NoSymbol, /*106*/ - XK_comma, XK_less, XK_kana_NE, XK_kana_comma, /*107*/ - XK_period, XK_greater, XK_kana_RU, XK_kana_fullstop, /*108*/ - XK_slash, XK_question, XK_kana_ME, XK_kana_conjunctive, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_backslash, XK_underscore, XK_kana_RO, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - XK_Execute, NoSymbol, NoSymbol, NoSymbol, /*115*/ - XK_Kanji, NoSymbol, NoSymbol, NoSymbol, /*116*/ - XK_Henkan_Mode, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, XK_KP_Add, NoSymbol, NoSymbol, /*125*/ -}; - -#define Japan5Modmap Generic5Modmap - -#else - -#define Japan5Keymap NULL -#define Japan5Modmap NULL - -#endif /* JAPAN5 */ - - -#ifdef KOREA4 - -static KeySym Korea4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_at, NoSymbol, NoSymbol, /* 31*/ - XK_3, XK_numbersign, NoSymbol, NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_asciicircum, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_ampersand, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_asterisk, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenleft, NoSymbol, NoSymbol, /* 38*/ - XK_0, XK_parenright, NoSymbol, NoSymbol, /* 39*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /* 40*/ - XK_equal, XK_plus, NoSymbol, NoSymbol, /* 41*/ - XK_grave, XK_asciitilde, XK_acute, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_bracketleft, XK_braceleft, NoSymbol, NoSymbol, /* 64*/ - XK_bracketright,XK_braceright, NoSymbol, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_semicolon, XK_colon, NoSymbol, NoSymbol, /* 86*/ - XK_apostrophe, XK_quotedbl, NoSymbol, NoSymbol, /* 87*/ - XK_backslash, XK_bar, XK_brokenbar, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_less, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_greater, NoSymbol, NoSymbol, /*108*/ - XK_slash, XK_question, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -static SunModmapRec Korea4Modmap[] = { - { 99, ShiftMask }, - { 110, ShiftMask }, - { 119, LockMask }, - { 76, ControlMask }, - { 120, Meta_Mask }, - { 122, Meta_Mask }, - { 111, Mode_switch_Mask }, - { 98, Num_Lock_Mask }, - { 19, Alt_Mask }, - { 0, 0 } -}; - -#else - -#define Korea4Keymap NULL -#define Korea4Modmap NULL - -#endif /* KOREA4 */ - - -#ifdef KOREA5 - -static KeySym Korea5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_at, NoSymbol, NoSymbol, /* 31*/ - XK_3, XK_numbersign, NoSymbol, NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_asciicircum, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_ampersand, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_asterisk, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenleft, NoSymbol, NoSymbol, /* 38*/ - XK_0, XK_parenright, NoSymbol, NoSymbol, /* 39*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /* 40*/ - XK_equal, XK_plus, NoSymbol, NoSymbol, /* 41*/ - XK_grave, XK_asciitilde, XK_acute, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_bracketleft, XK_braceleft, NoSymbol, NoSymbol, /* 64*/ - XK_bracketright,XK_braceright, NoSymbol, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_semicolon, XK_colon, NoSymbol, NoSymbol, /* 86*/ - XK_apostrophe, XK_quotedbl, NoSymbol, NoSymbol, /* 87*/ - XK_backslash, XK_bar, XK_brokenbar, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_less, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_greater, NoSymbol, NoSymbol, /*108*/ - XK_slash, XK_question, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define Korea5Modmap Generic5Modmap - -#else - -#define Korea5Keymap NULL -#define Korea5Modmap NULL - -#endif /* KOREA5 */ - - -#ifdef NETH4 - -static KeySym Netherland4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - XK_backslash, XK_bar, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, XK_onesuperior, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_twosuperior, NoSymbol, /* 31*/ - XK_3, XK_numbersign, XK_threesuperior,NoSymbol, /* 32*/ - XK_4, XK_dollar, XK_onequarter, NoSymbol, /* 33*/ - XK_5, XK_percent, XK_onehalf, NoSymbol, /* 34*/ - XK_6, XK_ampersand, XK_threequarters,NoSymbol, /* 35*/ - XK_7, XK_underscore, XK_sterling, NoSymbol, /* 36*/ - XK_8, XK_parenleft, XK_braceleft, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_braceright, NoSymbol, /* 38*/ - XK_0, XK_apostrophe, XK_grave, NoSymbol, /* 39*/ - XK_slash, XK_question, NoSymbol, NoSymbol, /* 40*/ - XK_degree, SunXK_FA_Tilde, SunXK_FA_Cedilla,NoSymbol, /* 41*/ - XK_less, XK_greater, NoSymbol, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - SunXK_FA_Diaeresis,XK_asciicircum,SunXK_FA_Circum,NoSymbol, /* 64*/ - XK_asterisk, XK_brokenbar, XK_asciitilde, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, XK_ssharp, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_plus, XK_plusminus, NoSymbol, NoSymbol, /* 86*/ - SunXK_FA_Acute, SunXK_FA_Grave, NoSymbol, NoSymbol, /* 87*/ - XK_at, XK_section, XK_notsign, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, XK_guillemotleft,NoSymbol, /*100*/ - XK_X, NoSymbol, XK_guillemotright,NoSymbol, /*101*/ - XK_C, NoSymbol, XK_cent, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, XK_mu, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_equal, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_bracketright,XK_bracketleft, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define Netherland4Modmap FrBeNeth4Modmap - -#else - -#define Netherland4Keymap NULL -#define Netherland4Modmap NULL - -#endif /* NETHERLAND4 */ - - -#ifdef NETH5 - -static KeySym Netherland5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, XK_onesuperior, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_twosuperior, NoSymbol, /* 31*/ - XK_3, XK_numbersign, XK_threesuperior,NoSymbol, /* 32*/ - XK_4, XK_dollar, XK_onequarter, NoSymbol, /* 33*/ - XK_5, XK_percent, XK_onehalf, NoSymbol, /* 34*/ - XK_6, XK_ampersand, XK_threequarters,NoSymbol, /* 35*/ - XK_7, XK_underscore, XK_sterling, NoSymbol, /* 36*/ - XK_8, XK_parenleft, XK_braceleft, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_braceright, NoSymbol, /* 38*/ - XK_0, XK_apostrophe, XK_grave, NoSymbol, /* 39*/ - XK_slash, XK_question, XK_backslash, NoSymbol, /* 40*/ - XK_degree, SunXK_FA_Tilde, SunXK_FA_Cedilla,NoSymbol, /* 41*/ - XK_at, XK_section, XK_notsign, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Separator,NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - SunXK_FA_Diaeresis,SunXK_FA_Circum,NoSymbol, NoSymbol, /* 64*/ - XK_asterisk, XK_bar, XK_asciitilde, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, XK_ssharp, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_plus, XK_plusminus, NoSymbol, NoSymbol, /* 86*/ - SunXK_FA_Acute, SunXK_FA_Grave, NoSymbol, NoSymbol, /* 87*/ - XK_less, XK_greater, XK_asciicircum, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_z, XK_Z, XK_guillemotleft,NoSymbol, /*100*/ - XK_x, XK_X, XK_guillemotright,NoSymbol, /*101*/ - XK_c, XK_C, XK_cent, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_m, XK_M, XK_mu, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, XK_periodcentered,NoSymbol, /*108*/ - XK_minus, XK_equal, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_bracketright,XK_bracketleft, XK_brokenbar, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define Netherland5Modmap Generic5Modmap - -#else - -#define Netherland5Keymap NULL -#define Netherland5Modmap NULL - -#endif /* NETHERLAND5 */ - - -#ifdef NORW4 - -static KeySym Norway4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - XK_asciitilde, XK_asciicircum, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_numbersign, XK_sterling, NoSymbol, /* 32*/ - XK_4, XK_currency, XK_dollar, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_ampersand, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_slash, XK_braceleft, NoSymbol, /* 36*/ - XK_8, XK_parenleft, XK_bracketleft, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_bracketright,NoSymbol, /* 38*/ - XK_0, XK_equal, XK_braceright, NoSymbol, /* 39*/ - XK_plus, XK_question, NoSymbol, NoSymbol, /* 40*/ - XK_backslash, SunXK_FA_Grave, SunXK_FA_Acute, NoSymbol, /* 41*/ - XK_apostrophe, XK_asterisk, XK_grave, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_Aring, NoSymbol, NoSymbol, NoSymbol, /* 64*/ - SunXK_FA_Diaeresis,SunXK_FA_Circum,SunXK_FA_Tilde,NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_Ooblique, NoSymbol, NoSymbol, NoSymbol, /* 86*/ - XK_AE, NoSymbol, NoSymbol, NoSymbol, /* 87*/ - XK_bar, XK_section, NoSymbol, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define Norway4Modmap ItNorPortSp4Modmap - -#else - -#define Norway4Keymap NULL -#define Norway4Modmap NULL - -#endif /* NORWAY4 */ - - -#ifdef NORW5 - -static KeySym Norway5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_numbersign, XK_sterling, NoSymbol, /* 32*/ - XK_4, XK_currency, XK_dollar, NoSymbol, /* 33*/ - XK_5, XK_percent, XK_asciitilde, NoSymbol, /* 34*/ - XK_6, XK_ampersand, XK_asciicircum, NoSymbol, /* 35*/ - XK_7, XK_slash, XK_braceleft, NoSymbol, /* 36*/ - XK_8, XK_parenleft, XK_bracketleft, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_bracketright,NoSymbol, /* 38*/ - XK_0, XK_equal, XK_braceright, NoSymbol, /* 39*/ - XK_plus, XK_question, NoSymbol, NoSymbol, /* 40*/ - XK_backslash, SunXK_FA_Grave, SunXK_FA_Acute, NoSymbol, /* 41*/ - XK_bar, XK_section, NoSymbol, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Separator,NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_Aring, NoSymbol, NoSymbol, NoSymbol, /* 64*/ - SunXK_FA_Diaeresis,SunXK_FA_Circum,SunXK_FA_Tilde,NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_Ooblique, NoSymbol, NoSymbol, NoSymbol, /* 86*/ - XK_AE, NoSymbol, NoSymbol, NoSymbol, /* 87*/ - XK_apostrophe, XK_asterisk, XK_grave, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define Norway5Modmap Generic5Modmap - -#else - -#define Norway5Keymap NULL -#define Norway5Modmap NULL - -#endif /* NORWAY5 */ - - -#ifdef PORT4 - -static KeySym Portugal4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - XK_bracketright,XK_braceright, XK_guillemotright,NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, XK_Break, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_numbersign, XK_sterling, NoSymbol, /* 32*/ - XK_4, XK_dollar, XK_section, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_ampersand, XK_notsign, NoSymbol, /* 35*/ - XK_7, XK_slash, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_parenleft, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_backslash, NoSymbol, /* 38*/ - XK_0, XK_equal, XK_bar, NoSymbol, /* 39*/ - XK_apostrophe, XK_question, XK_grave, NoSymbol, /* 40*/ - XK_exclamdown, XK_questiondown,NoSymbol, NoSymbol, /* 41*/ - SunXK_FA_Tilde, SunXK_FA_Circum,XK_asciicircum, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - SunXK_FA_Diaeresis,XK_asterisk, XK_plus, NoSymbol, /* 64*/ - SunXK_FA_Acute, SunXK_FA_Grave, XK_asciitilde, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_Ccedilla, NoSymbol, NoSymbol, NoSymbol, /* 86*/ - XK_masculine, XK_ordfeminine, NoSymbol, NoSymbol, /* 87*/ - XK_bracketleft, XK_braceleft, XK_guillemotleft,NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define Portugal4Modmap ItNorPortSp4Modmap - -#else - -#define Portugal4Keymap NULL -#define Portugal4Modmap NULL - -#endif /* PORTUGAL4 */ - - -#ifdef PORT5 - -static KeySym Portugal5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_numbersign, XK_sterling, NoSymbol, /* 32*/ - XK_4, XK_dollar, XK_section, NoSymbol, /* 33*/ - XK_5, XK_percent, XK_asciitilde, NoSymbol, /* 34*/ - XK_6, XK_ampersand, XK_asciicircum, NoSymbol, /* 35*/ - XK_7, XK_slash, XK_braceleft, NoSymbol, /* 36*/ - XK_8, XK_parenleft, XK_bracketleft, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_bracketright,NoSymbol, /* 38*/ - XK_0, XK_equal, XK_braceright, NoSymbol, /* 39*/ - XK_apostrophe, XK_question, XK_grave, NoSymbol, /* 40*/ - XK_guillemotleft,XK_guillemotright,NoSymbol, NoSymbol, /* 41*/ - XK_backslash, XK_bar, NoSymbol, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_plus, XK_asterisk, SunXK_FA_Diaeresis,NoSymbol, /* 64*/ - SunXK_FA_Acute, SunXK_FA_Grave, NoSymbol, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_Ccedilla, NoSymbol, NoSymbol, NoSymbol, /* 86*/ - XK_masculine, XK_ordfeminine, NoSymbol, NoSymbol, /* 87*/ - SunXK_FA_Tilde, SunXK_FA_Circum,NoSymbol, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define Portugal5Modmap Generic5Modmap - -#else - -#define Portugal5Keymap NULL -#define Portugal5Modmap NULL - -#endif /* PORTUGAL5 */ - - -#ifdef SPAIN5 - -static KeySym Spain5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, XK_bar, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_periodcentered,XK_numbersign,NoSymbol, /* 32*/ - XK_4, XK_dollar, XK_asciicircum, NoSymbol, /* 33*/ - XK_5, XK_percent, XK_asciitilde, NoSymbol, /* 34*/ - XK_6, XK_ampersand, XK_notsign, NoSymbol, /* 35*/ - XK_7, XK_slash, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_parenleft, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenright, NoSymbol, NoSymbol, /* 38*/ - XK_0, XK_equal, NoSymbol, NoSymbol, /* 39*/ - XK_apostrophe, XK_question, XK_grave, NoSymbol, /* 40*/ - XK_exclamdown, XK_questiondown,NoSymbol, NoSymbol, /* 41*/ - XK_masculine, XK_ordfeminine, XK_backslash, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - SunXK_FA_Grave, SunXK_FA_Circum,XK_bracketleft, NoSymbol, /* 64*/ - XK_plus, XK_asterisk, XK_bracketright,NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_Ntilde, NoSymbol, NoSymbol, NoSymbol, /* 86*/ - SunXK_FA_Acute, SunXK_FA_Diaeresis,XK_braceleft,NoSymbol, /* 87*/ - XK_ccedilla, XK_Ccedilla, XK_braceright, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define Spain5Modmap Generic5Modmap - -#else - -#define Spain5Keymap NULL -#define Spain5Modmap NULL - -#endif /* SPAIN5 */ - - -#ifdef SPAINLATAM4 - -static KeySym SpainLatAm4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - XK_bracketright,XK_braceright, XK_guillemotright,NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Scroll_Lock, NoSymbol, XK_R3, XK_Break, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_periodcentered,XK_numbersign,NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, XK_degree, NoSymbol, /* 34*/ - XK_6, XK_ampersand, XK_notsign, NoSymbol, /* 35*/ - XK_7, XK_slash, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_parenleft, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_backslash, NoSymbol, /* 38*/ - XK_0, XK_equal, XK_bar, NoSymbol, /* 39*/ - XK_apostrophe, XK_question, XK_grave, NoSymbol, /* 40*/ - XK_exclamdown, XK_questiondown,NoSymbol, NoSymbol, /* 41*/ - XK_Ccedilla, NoSymbol, NoSymbol, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, XK_masculine, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - SunXK_FA_Grave, SunXK_FA_Circum,XK_asciicircum, NoSymbol, /* 64*/ - XK_plus, XK_asterisk, XK_asciitilde, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, XK_ordfeminine, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_Ntilde, NoSymbol, NoSymbol, NoSymbol, /* 86*/ - SunXK_FA_Acute, SunXK_FA_Diaeresis,NoSymbol, NoSymbol, /* 87*/ - XK_bracketleft, XK_braceleft, XK_guillemotleft,NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define SpainLatAm4Modmap ItNorPortSp4Modmap - -#else - -#define SpainLatAm4Keymap NULL -#define SpainLatAm4Modmap NULL - -#endif /* SPAINLATAM4 */ - - -#ifdef SWED5 - -static KeySym Sweden5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_numbersign, XK_sterling, NoSymbol, /* 32*/ - XK_4, XK_currency, XK_dollar, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_ampersand, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_slash, XK_braceleft, NoSymbol, /* 36*/ - XK_8, XK_parenleft, XK_bracketleft, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_bracketright,NoSymbol, /* 38*/ - XK_0, XK_equal, XK_braceright, NoSymbol, /* 39*/ - XK_plus, XK_question, XK_backslash, NoSymbol, /* 40*/ - SunXK_FA_Acute, SunXK_FA_Grave, NoSymbol, NoSymbol, /* 41*/ - XK_section, XK_onehalf, NoSymbol, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Separator,NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_Aring, NoSymbol, NoSymbol, NoSymbol, /* 64*/ - SunXK_FA_Diaeresis,XK_asciicircum,XK_asciitilde,NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_Odiaeresis, NoSymbol, NoSymbol, NoSymbol, /* 86*/ - XK_Adiaeresis, NoSymbol, NoSymbol, NoSymbol, /* 87*/ - XK_apostrophe, XK_asterisk, XK_grave, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, XK_bar, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define Sweden5Modmap Generic5Modmap - -#else - -#define Sweden5Keymap NULL -#define Sweden5Modmap NULL - -#endif /* SWEDEN5 */ - - -#ifdef SWEDFIN4 - -static KeySym SwedenFin4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - XK_asciitilde, XK_asciicircum, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_numbersign, XK_sterling, NoSymbol, /* 32*/ - XK_4, XK_currency, XK_dollar, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_ampersand, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_slash, XK_braceleft, NoSymbol, /* 36*/ - XK_8, XK_parenleft, XK_bracketleft, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_bracketright,NoSymbol, /* 38*/ - XK_0, XK_equal, XK_braceright, NoSymbol, /* 39*/ - XK_plus, XK_question, XK_backslash, NoSymbol, /* 40*/ - SunXK_FA_Acute, SunXK_FA_Grave, NoSymbol, NoSymbol, /* 41*/ - XK_apostrophe, XK_asterisk, XK_grave, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_Aring, NoSymbol, NoSymbol, NoSymbol, /* 64*/ - SunXK_FA_Diaeresis,SunXK_FA_Circum,SunXK_FA_Tilde,NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R8, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_Odiaeresis, NoSymbol, NoSymbol, NoSymbol, /* 86*/ - XK_Adiaeresis, NoSymbol, NoSymbol, NoSymbol, /* 87*/ - XK_section, XK_onehalf, NoSymbol, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, XK_bar, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define SwedenFin4Modmap DenSwedFinSw4Modmap - -#else - -#define SwedenFin4Keymap NULL -#define SwedenFin4Modmap NULL - -#endif /* SWEDENFIN4 */ - - -#ifdef SWFR4 - -static KeySym SwissFr4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - XK_greater, XK_braceright, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_plus, XK_exclam, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_asterisk, XK_numbersign, NoSymbol, /* 32*/ - XK_4, XK_ccedilla, XK_cent, NoSymbol, /* 33*/ - XK_5, XK_percent, XK_asciitilde, NoSymbol, /* 34*/ - XK_6, XK_ampersand, XK_section, NoSymbol, /* 35*/ - XK_7, XK_slash, XK_bar, NoSymbol, /* 36*/ - XK_8, XK_parenleft, XK_degree, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_backslash, NoSymbol, /* 38*/ - XK_0, XK_equal, XK_asciicircum, NoSymbol, /* 39*/ - XK_apostrophe, XK_question, XK_grave, NoSymbol, /* 40*/ - SunXK_FA_Circum,SunXK_FA_Grave, NoSymbol, NoSymbol, /* 41*/ - XK_dollar, SunXK_FA_Tilde, XK_sterling, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_egrave, XK_udiaeresis, NoSymbol, NoSymbol, /* 64*/ - SunXK_FA_Diaeresis,SunXK_FA_Acute,NoSymbol, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_eacute, XK_odiaeresis, NoSymbol, NoSymbol, /* 86*/ - XK_agrave, XK_adiaeresis, NoSymbol, NoSymbol, /* 87*/ - XK_less, XK_braceleft, NoSymbol, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, XK_mu, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_bracketright,XK_bracketleft, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define SwissFr4Modmap DenSwedFinSw4Modmap - -#else - -#define SwissFr4Keymap NULL -#define SwissFr4Modmap NULL - -#endif /* SWFR4 */ - - -#ifdef SWFR5 - -static KeySym SwissFr5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_plus, XK_bar, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_asterisk, XK_numbersign, NoSymbol, /* 32*/ - XK_4, XK_ccedilla, XK_asciicircum, NoSymbol, /* 33*/ - XK_5, XK_percent, XK_asciitilde, NoSymbol, /* 34*/ - XK_6, XK_ampersand, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_slash, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_parenleft, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenright, NoSymbol, NoSymbol, /* 38*/ - XK_0, XK_equal, XK_grave, NoSymbol, /* 39*/ - XK_apostrophe, XK_question, SunXK_FA_Acute, NoSymbol, /* 40*/ - SunXK_FA_Circum,SunXK_FA_Grave, SunXK_FA_Tilde, NoSymbol, /* 41*/ - XK_section, XK_degree, NoSymbol, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_egrave, XK_udiaeresis, XK_bracketleft, NoSymbol, /* 64*/ - SunXK_FA_Diaeresis,XK_exclam, XK_bracketright,NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_eacute, XK_odiaeresis, NoSymbol, NoSymbol, /* 86*/ - XK_agrave, XK_adiaeresis, XK_braceleft, NoSymbol, /* 87*/ - XK_dollar, XK_sterling, XK_braceright, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, XK_backslash, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define SwissFr5Modmap Generic5Modmap - -#else - -#define SwissFr5Keymap NULL -#define SwissFr5Modmap NULL - -#endif /* SWFR5 */ - - -#ifdef SWGE4 - -static KeySym SwissGe4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - XK_greater, XK_braceright, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_plus, XK_exclam, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_asterisk, XK_numbersign, NoSymbol, /* 32*/ - XK_4, XK_ccedilla, XK_cent, NoSymbol, /* 33*/ - XK_5, XK_percent, XK_asciitilde, NoSymbol, /* 34*/ - XK_6, XK_ampersand, XK_section, NoSymbol, /* 35*/ - XK_7, XK_slash, XK_bar, NoSymbol, /* 36*/ - XK_8, XK_parenleft, XK_degree, NoSymbol, /* 37*/ - XK_9, XK_parenright, XK_backslash, NoSymbol, /* 38*/ - XK_0, XK_equal, XK_asciicircum, NoSymbol, /* 39*/ - XK_apostrophe, XK_question, XK_grave, NoSymbol, /* 40*/ - SunXK_FA_Circum,SunXK_FA_Grave, NoSymbol, NoSymbol, /* 41*/ - XK_dollar, SunXK_FA_Tilde, XK_sterling, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_udiaeresis, XK_egrave, NoSymbol, NoSymbol, /* 64*/ - SunXK_FA_Diaeresis,SunXK_FA_Acute,NoSymbol, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_odiaeresis, XK_eacute, NoSymbol, NoSymbol, /* 86*/ - XK_adiaeresis, XK_agrave, NoSymbol, NoSymbol, /* 87*/ - XK_less, XK_braceleft, NoSymbol, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, XK_mu, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_bracketright,XK_bracketleft, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define SwissGe4Modmap DenSwedFinSw4Modmap - -#else - -#define SwissGe4Keymap NULL -#define SwissGe4Modmap NULL - -#endif /* SWISSGE4 */ - - -#ifdef SWGE5 - -static KeySym SwissGe5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_plus, XK_bar, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, XK_at, NoSymbol, /* 31*/ - XK_3, XK_asterisk, XK_numbersign, NoSymbol, /* 32*/ - XK_4, XK_ccedilla, XK_asciicircum, NoSymbol, /* 33*/ - XK_5, XK_percent, XK_asciitilde, NoSymbol, /* 34*/ - XK_6, XK_ampersand, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_slash, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_parenleft, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenright, NoSymbol, NoSymbol, /* 38*/ - XK_0, XK_equal, XK_grave, NoSymbol, /* 39*/ - XK_apostrophe, XK_question, SunXK_FA_Acute, NoSymbol, /* 40*/ - SunXK_FA_Circum,SunXK_FA_Grave, SunXK_FA_Tilde, NoSymbol, /* 41*/ - XK_section, XK_degree, NoSymbol, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_udiaeresis, XK_egrave, XK_bracketleft, NoSymbol, /* 64*/ - SunXK_FA_Diaeresis,XK_exclam, XK_bracketright,NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_odiaeresis, XK_eacute, NoSymbol, NoSymbol, /* 86*/ - XK_adiaeresis, XK_agrave, XK_braceleft, NoSymbol, /* 87*/ - XK_dollar, XK_sterling, XK_braceright, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_semicolon, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_colon, NoSymbol, NoSymbol, /*108*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_less, XK_greater, XK_backslash, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define SwissGe5Modmap Generic5Modmap - -#else - -#define SwissGe5Keymap NULL -#define SwissGe5Modmap NULL - -#endif /* SWITZER_GE5 */ - - -#ifdef TAI4 - -static KeySym Taiwan4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_at, NoSymbol, NoSymbol, /* 31*/ - XK_3, XK_numbersign, NoSymbol, NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_asciicircum, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_ampersand, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_asterisk, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenleft, NoSymbol, NoSymbol, /* 38*/ - XK_0, XK_parenright, NoSymbol, NoSymbol, /* 39*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /* 40*/ - XK_equal, XK_plus, NoSymbol, NoSymbol, /* 41*/ - XK_grave, XK_asciitilde, XK_acute, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_bracketleft, XK_braceleft, NoSymbol, NoSymbol, /* 64*/ - XK_bracketright,XK_braceright, NoSymbol, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_semicolon, XK_colon, NoSymbol, NoSymbol, /* 86*/ - XK_apostrophe, XK_quotedbl, NoSymbol, NoSymbol, /* 87*/ - XK_backslash, XK_bar, XK_brokenbar, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_less, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_greater, NoSymbol, NoSymbol, /*108*/ - XK_slash, XK_question, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define Taiwan4Modmap Generic5Modmap - -#else - -#define Taiwan4Keymap NULL -#define Taiwan4Modmap NULL - -#endif /* TAIWAN4 */ - - -#ifdef TAI5 - -static KeySym Taiwan5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_at, NoSymbol, NoSymbol, /* 31*/ - XK_3, XK_numbersign, NoSymbol, NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_asciicircum, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_ampersand, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_asterisk, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenleft, NoSymbol, NoSymbol, /* 38*/ - XK_0, XK_parenright, NoSymbol, NoSymbol, /* 39*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /* 40*/ - XK_equal, XK_plus, NoSymbol, NoSymbol, /* 41*/ - XK_grave, XK_asciitilde, XK_acute, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_bracketleft, XK_braceleft, NoSymbol, NoSymbol, /* 64*/ - XK_bracketright,XK_braceright, NoSymbol, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_semicolon, XK_colon, NoSymbol, NoSymbol, /* 86*/ - XK_apostrophe, XK_quotedbl, NoSymbol, NoSymbol, /* 87*/ - XK_backslash, XK_bar, XK_brokenbar, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_less, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_greater, NoSymbol, NoSymbol, /*108*/ - XK_slash, XK_question, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define Taiwan5Modmap Generic5Modmap - -#else - -#define Taiwan5Keymap NULL -#define Taiwan5Modmap NULL - -#endif /* TAIWAN5 */ - - -#ifdef UK4 - -static KeySym UK4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, XK_brokenbar, NoSymbol, /* 30*/ - XK_2, XK_at, NoSymbol, NoSymbol, /* 31*/ - XK_3, XK_sterling, XK_numbersign, NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_asciicircum, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_ampersand, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_asterisk, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenleft, NoSymbol, NoSymbol, /* 38*/ - XK_0, XK_parenright, NoSymbol, NoSymbol, /* 39*/ - XK_minus, XK_underscore, XK_notsign, NoSymbol, /* 40*/ - XK_equal, XK_plus, NoSymbol, NoSymbol, /* 41*/ - XK_grave, XK_asciitilde, XK_acute, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_bracketleft, XK_braceleft, NoSymbol, NoSymbol, /* 64*/ - XK_bracketright,XK_braceright, NoSymbol, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_semicolon, XK_colon, NoSymbol, NoSymbol, /* 86*/ - XK_apostrophe, XK_quotedbl, XK_acute, NoSymbol, /* 87*/ - XK_backslash, XK_bar, NoSymbol, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_less, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_greater, NoSymbol, NoSymbol, /*108*/ - XK_slash, XK_question, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define UK4Modmap Generic5Modmap - -#else - -#define UK4Keymap NULL -#define UK4Modmap NULL - -#endif /* UK4 */ - - -#ifdef UK5 - -static KeySym UK5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_quotedbl, NoSymbol, NoSymbol, /* 31*/ - XK_3, XK_sterling, NoSymbol, NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_asciicircum, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_ampersand, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_asterisk, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenleft, NoSymbol, NoSymbol, /* 38*/ - XK_0, XK_parenright, NoSymbol, NoSymbol, /* 39*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /* 40*/ - XK_equal, XK_plus, NoSymbol, NoSymbol, /* 41*/ - XK_grave, XK_notsign, XK_brokenbar, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_bracketleft, XK_braceleft, NoSymbol, NoSymbol, /* 64*/ - XK_bracketright,XK_braceright, NoSymbol, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_semicolon, XK_colon, NoSymbol, NoSymbol, /* 86*/ - XK_apostrophe, XK_at, XK_acute, NoSymbol, /* 87*/ - XK_numbersign, XK_asciitilde, NoSymbol, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_less, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_greater, NoSymbol, NoSymbol, /*108*/ - XK_slash, XK_question, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - XK_backslash, XK_bar, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define UK5Modmap Generic5Modmap - -#else - -#define UK5Keymap NULL -#define UK5Modmap NULL - -#endif /* UK5 */ - - -#ifdef US101A - -static KeySym US101AKeymap[] = { - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 25*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_at, NoSymbol, NoSymbol, /* 31*/ - XK_3, XK_numbersign, NoSymbol, NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_asciicircum, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_ampersand, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_asterisk, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenleft, NoSymbol, NoSymbol, /* 38*/ - XK_0, XK_parenright, NoSymbol, NoSymbol, /* 39*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /* 40*/ - XK_equal, XK_plus, NoSymbol, NoSymbol, /* 41*/ - XK_grave, XK_asciitilde, XK_acute, NoSymbol, /* 42*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_bracketleft, XK_braceleft, NoSymbol, NoSymbol, /* 64*/ - XK_bracketright,XK_braceright, NoSymbol, NoSymbol, /* 65*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 72*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_semicolon, XK_colon, NoSymbol, NoSymbol, /* 86*/ - XK_apostrophe, XK_quotedbl, XK_acute, NoSymbol, /* 87*/ - XK_backslash, XK_bar, NoSymbol, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_less, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_greater, NoSymbol, NoSymbol, /*108*/ - XK_slash, XK_question, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -static SunModmapRec US101AModmap[] = { - { 99, ShiftMask }, - { 110, ShiftMask }, - { 119, LockMask }, - { 76, ControlMask }, - { 122, Meta_Mask }, - { 98, Num_Lock_Mask }, - { 120, Alt_Mask }, - { 0, 0 } -}; - -#else - -#define US101AKeymap NULL -#define US101AModmap NULL - -#endif /* US101A */ - - -#ifdef US4 - -static KeySym US4Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_R1, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_R2, NoSymbol, /* 22*/ - XK_Break, XK_Scroll_Lock, XK_R3, NoSymbol, /* 23*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_at, NoSymbol, NoSymbol, /* 31*/ - XK_3, XK_numbersign, NoSymbol, NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_asciicircum, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_ampersand, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_asterisk, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenleft, NoSymbol, NoSymbol, /* 38*/ - XK_0, XK_parenright, NoSymbol, NoSymbol, /* 39*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /* 40*/ - XK_equal, XK_plus, NoSymbol, NoSymbol, /* 41*/ - XK_grave, XK_asciitilde, XK_acute, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - XK_KP_Equal, NoSymbol, XK_R4, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, XK_R5, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, XK_R6, NoSymbol, /* 47*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_bracketleft, XK_braceleft, NoSymbol, NoSymbol, /* 64*/ - XK_bracketright,XK_braceright, NoSymbol, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, XK_R7, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, XK_R8, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, XK_R9, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_semicolon, XK_colon, NoSymbol, NoSymbol, /* 86*/ - XK_apostrophe, XK_quotedbl, XK_acute, NoSymbol, /* 87*/ - XK_backslash, XK_bar, NoSymbol, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, XK_R10, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, XK_R11, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, XK_R12, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_less, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_greater, NoSymbol, NoSymbol, /*108*/ - XK_slash, XK_question, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - XK_Linefeed, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, XK_R13, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, XK_R14, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, XK_R15, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, XK_Help, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*123*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define US4Modmap Generic5Modmap - -#else - -#define US4Keymap NULL -#define US4Modmap NULL - -#endif /* US4 */ - - -#ifdef US5 - -static KeySym US5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_at, NoSymbol, NoSymbol, /* 31*/ - XK_3, XK_numbersign, NoSymbol, NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_asciicircum, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_ampersand, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_asterisk, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenleft, NoSymbol, NoSymbol, /* 38*/ - XK_0, XK_parenright, NoSymbol, NoSymbol, /* 39*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /* 40*/ - XK_equal, XK_plus, NoSymbol, NoSymbol, /* 41*/ - XK_grave, XK_asciitilde, XK_acute, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_bracketleft, XK_braceleft, NoSymbol, NoSymbol, /* 64*/ - XK_bracketright,XK_braceright, NoSymbol, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_semicolon, XK_colon, NoSymbol, NoSymbol, /* 86*/ - XK_apostrophe, XK_quotedbl, XK_acute, NoSymbol, /* 87*/ - XK_backslash, XK_bar, NoSymbol, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_less, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_greater, NoSymbol, NoSymbol, /*108*/ - XK_slash, XK_question, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define US5Modmap Generic5Modmap - -#else - -#define US5Keymap NULL -#define US5Modmap NULL - -#endif /* US5 */ - -#ifdef US_UNIX5 - -static KeySym US_UNIX5Keymap[] = { - SunXK_Stop, NoSymbol, XK_L1, NoSymbol, /* 1*/ - SunXK_AudioLowerVolume,SunXK_VideoLowerBrightness,NoSymbol, NoSymbol, /* 2*/ - SunXK_Again, NoSymbol, XK_L2, NoSymbol, /* 3*/ - SunXK_AudioRaiseVolume,SunXK_VideoRaiseBrightness,NoSymbol, NoSymbol, /* 4*/ - XK_F1, NoSymbol, NoSymbol, NoSymbol, /* 5*/ - XK_F2, NoSymbol, NoSymbol, NoSymbol, /* 6*/ - XK_F10, NoSymbol, NoSymbol, NoSymbol, /* 7*/ - XK_F3, NoSymbol, NoSymbol, NoSymbol, /* 8*/ - XK_F11, NoSymbol, SunXK_F36, NoSymbol, /* 9*/ - XK_F4, NoSymbol, NoSymbol, NoSymbol, /* 10*/ - XK_F12, NoSymbol, SunXK_F37, NoSymbol, /* 11*/ - XK_F5, NoSymbol, NoSymbol, NoSymbol, /* 12*/ - SunXK_AltGraph, NoSymbol, NoSymbol, NoSymbol, /* 13*/ - XK_F6, NoSymbol, NoSymbol, NoSymbol, /* 14*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 15*/ - XK_F7, NoSymbol, NoSymbol, NoSymbol, /* 16*/ - XK_F8, NoSymbol, NoSymbol, NoSymbol, /* 17*/ - XK_F9, NoSymbol, NoSymbol, NoSymbol, /* 18*/ - XK_Alt_L, NoSymbol, NoSymbol, NoSymbol, /* 19*/ - XK_Up, NoSymbol, NoSymbol, NoSymbol, /* 20*/ - XK_Pause, NoSymbol, XK_Break, NoSymbol, /* 21*/ - XK_Print, NoSymbol, XK_Sys_Req, SunXK_Sys_Req, /* 22*/ - XK_Scroll_Lock, NoSymbol, NoSymbol, NoSymbol, /* 23*/ - XK_Left, NoSymbol, NoSymbol, NoSymbol, /* 24*/ - SunXK_Props, NoSymbol, XK_L3, NoSymbol, /* 25*/ - SunXK_Undo, NoSymbol, XK_L4, NoSymbol, /* 26*/ - XK_Down, NoSymbol, NoSymbol, NoSymbol, /* 27*/ - XK_Right, NoSymbol, NoSymbol, NoSymbol, /* 28*/ - XK_Escape, NoSymbol, NoSymbol, NoSymbol, /* 29*/ - XK_1, XK_exclam, NoSymbol, NoSymbol, /* 30*/ - XK_2, XK_at, NoSymbol, NoSymbol, /* 31*/ - XK_3, XK_numbersign, NoSymbol, NoSymbol, /* 32*/ - XK_4, XK_dollar, NoSymbol, NoSymbol, /* 33*/ - XK_5, XK_percent, NoSymbol, NoSymbol, /* 34*/ - XK_6, XK_asciicircum, NoSymbol, NoSymbol, /* 35*/ - XK_7, XK_ampersand, NoSymbol, NoSymbol, /* 36*/ - XK_8, XK_asterisk, NoSymbol, NoSymbol, /* 37*/ - XK_9, XK_parenleft, NoSymbol, NoSymbol, /* 38*/ - XK_0, XK_parenright, NoSymbol, NoSymbol, /* 39*/ - XK_minus, XK_underscore, NoSymbol, NoSymbol, /* 40*/ - XK_equal, XK_plus, NoSymbol, NoSymbol, /* 41*/ - XK_grave, XK_asciitilde, XK_acute, NoSymbol, /* 42*/ - XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, /* 43*/ - XK_Insert, NoSymbol, NoSymbol, NoSymbol, /* 44*/ - SunXK_AudioMute,SunXK_VideoDegauss,NoSymbol, NoSymbol, /* 45*/ - XK_KP_Divide, NoSymbol, NoSymbol, NoSymbol, /* 46*/ - XK_KP_Multiply, NoSymbol, NoSymbol, NoSymbol, /* 47*/ - SunXK_PowerSwitch,SunXK_PowerSwitchShift, NoSymbol, NoSymbol, /* 48*/ - SunXK_Front, NoSymbol, XK_L5, NoSymbol, /* 49*/ - XK_KP_Delete, XK_KP_Decimal, NoSymbol, NoSymbol, /* 50*/ - SunXK_Copy, NoSymbol, XK_L6, NoSymbol, /* 51*/ - XK_Home, NoSymbol, NoSymbol, NoSymbol, /* 52*/ - XK_Tab, NoSymbol, NoSymbol, NoSymbol, /* 53*/ - XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 54*/ - XK_W, NoSymbol, NoSymbol, NoSymbol, /* 55*/ - XK_E, NoSymbol, NoSymbol, NoSymbol, /* 56*/ - XK_R, NoSymbol, NoSymbol, NoSymbol, /* 57*/ - XK_T, NoSymbol, NoSymbol, NoSymbol, /* 58*/ - XK_Y, NoSymbol, NoSymbol, NoSymbol, /* 59*/ - XK_U, NoSymbol, NoSymbol, NoSymbol, /* 60*/ - XK_I, NoSymbol, NoSymbol, NoSymbol, /* 61*/ - XK_O, NoSymbol, NoSymbol, NoSymbol, /* 62*/ - XK_P, NoSymbol, NoSymbol, NoSymbol, /* 63*/ - XK_bracketleft, XK_braceleft, NoSymbol, NoSymbol, /* 64*/ - XK_bracketright,XK_braceright, NoSymbol, NoSymbol, /* 65*/ - XK_Delete, NoSymbol, NoSymbol, NoSymbol, /* 66*/ - SunXK_Compose, NoSymbol, NoSymbol, NoSymbol, /* 67*/ - XK_KP_Home, XK_KP_7, NoSymbol, NoSymbol, /* 68*/ - XK_KP_Up, XK_KP_8, NoSymbol, NoSymbol, /* 69*/ - XK_KP_Prior, XK_KP_9, NoSymbol, NoSymbol, /* 70*/ - XK_KP_Subtract, NoSymbol, NoSymbol, NoSymbol, /* 71*/ - SunXK_Open, NoSymbol, XK_L7, NoSymbol, /* 72*/ - SunXK_Paste, NoSymbol, XK_L8, NoSymbol, /* 73*/ - XK_End, NoSymbol, NoSymbol, NoSymbol, /* 74*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 75*/ - XK_Control_L, NoSymbol, NoSymbol, NoSymbol, /* 76*/ - XK_A, NoSymbol, NoSymbol, NoSymbol, /* 77*/ - XK_S, NoSymbol, NoSymbol, NoSymbol, /* 78*/ - XK_D, NoSymbol, NoSymbol, NoSymbol, /* 79*/ - XK_F, NoSymbol, NoSymbol, NoSymbol, /* 80*/ - XK_G, NoSymbol, NoSymbol, NoSymbol, /* 81*/ - XK_H, NoSymbol, NoSymbol, NoSymbol, /* 82*/ - XK_J, NoSymbol, NoSymbol, NoSymbol, /* 83*/ - XK_K, NoSymbol, NoSymbol, NoSymbol, /* 84*/ - XK_L, NoSymbol, NoSymbol, NoSymbol, /* 85*/ - XK_semicolon, XK_colon, NoSymbol, NoSymbol, /* 86*/ - XK_apostrophe, XK_quotedbl, XK_acute, NoSymbol, /* 87*/ - XK_backslash, XK_bar, NoSymbol, NoSymbol, /* 88*/ - XK_Return, NoSymbol, NoSymbol, NoSymbol, /* 89*/ - XK_KP_Enter, NoSymbol, NoSymbol, NoSymbol, /* 90*/ - XK_KP_Left, XK_KP_4, NoSymbol, NoSymbol, /* 91*/ - NoSymbol, XK_KP_5, NoSymbol, NoSymbol, /* 92*/ - XK_KP_Right, XK_KP_6, NoSymbol, NoSymbol, /* 93*/ - XK_KP_Insert, XK_KP_0, NoSymbol, NoSymbol, /* 94*/ - SunXK_Find, NoSymbol, XK_L9, NoSymbol, /* 95*/ - XK_Prior, NoSymbol, NoSymbol, NoSymbol, /* 96*/ - SunXK_Cut, NoSymbol, XK_L10, NoSymbol, /* 97*/ - XK_Num_Lock, NoSymbol, NoSymbol, NoSymbol, /* 98*/ - XK_Shift_L, NoSymbol, NoSymbol, NoSymbol, /* 99*/ - XK_Z, NoSymbol, NoSymbol, NoSymbol, /*100*/ - XK_X, NoSymbol, NoSymbol, NoSymbol, /*101*/ - XK_C, NoSymbol, NoSymbol, NoSymbol, /*102*/ - XK_V, NoSymbol, NoSymbol, NoSymbol, /*103*/ - XK_B, NoSymbol, NoSymbol, NoSymbol, /*104*/ - XK_N, NoSymbol, NoSymbol, NoSymbol, /*105*/ - XK_M, NoSymbol, NoSymbol, NoSymbol, /*106*/ - XK_comma, XK_less, NoSymbol, NoSymbol, /*107*/ - XK_period, XK_greater, NoSymbol, NoSymbol, /*108*/ - XK_slash, XK_question, NoSymbol, NoSymbol, /*109*/ - XK_Shift_R, NoSymbol, NoSymbol, NoSymbol, /*110*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*111*/ - XK_KP_End, XK_KP_1, NoSymbol, NoSymbol, /*112*/ - XK_KP_Down, XK_KP_2, NoSymbol, NoSymbol, /*113*/ - XK_KP_Next, XK_KP_3, NoSymbol, NoSymbol, /*114*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*115*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*116*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*117*/ - XK_Help, NoSymbol, NoSymbol, NoSymbol, /*118*/ - XK_Caps_Lock, NoSymbol, NoSymbol, NoSymbol, /*119*/ - XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /*120*/ - XK_space, NoSymbol, NoSymbol, NoSymbol, /*121*/ - XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /*122*/ - XK_Next, NoSymbol, NoSymbol, NoSymbol, /*123*/ - NoSymbol, NoSymbol, NoSymbol, NoSymbol, /*124*/ - XK_KP_Add, NoSymbol, NoSymbol, NoSymbol, /*125*/ -}; - -#define US_UNIX5Modmap Generic5Modmap - -#else - -#define US_UNIX5Keymap NULL -#define US_UNIX5Modmap NULL - -#endif /* US_UNIX5 */ - -KeySym *sunType4KeyMaps[] = { - US4Keymap, /* 0 */ - US4Keymap, /* 1 */ - FranceBelg4Keymap, /* 2 */ - Canada4Keymap, /* 3 */ - Denmark4Keymap, /* 4 */ - Germany4Keymap, /* 5 */ - Italy4Keymap, /* 6 */ - Netherland4Keymap, /* 7 */ - Norway4Keymap, /* 8 */ - Portugal4Keymap, /* 9 */ - SpainLatAm4Keymap, /* 10 */ - SwedenFin4Keymap, /* 11 */ - SwissFr4Keymap, /* 12 */ - SwissGe4Keymap, /* 13 */ - UK4Keymap, /* 14 */ - NULL, /* 15 */ - Korea4Keymap, /* 16 */ - Taiwan4Keymap, /* 17 */ - NULL, /* 18 */ - US101AKeymap, /* 19 */ - NULL, /* 20 */ - NULL, /* 21 */ - NULL, /* 22 */ - NULL, /* 23 */ - NULL, /* 24 */ - NULL, /* 25 */ - NULL, /* 26 */ - NULL, /* 27 */ - NULL, /* 28 */ - NULL, /* 29 */ - NULL, /* 30 */ - NULL, /* 31 */ - Japan4Keymap, /* 32 */ - US5Keymap, /* 33 */ - US_UNIX5Keymap, /* 34 */ - France5Keymap, /* 35 */ - Denmark5Keymap, /* 36 */ - Germany5Keymap, /* 37 */ - Italy5Keymap, /* 38 */ - Netherland5Keymap, /* 39 */ - Norway5Keymap, /* 40 */ - Portugal5Keymap, /* 41 */ - Spain5Keymap, /* 42 */ - Sweden5Keymap, /* 43 */ - SwissFr5Keymap, /* 44 */ - SwissGe5Keymap, /* 45 */ - UK5Keymap, /* 46 */ - Korea5Keymap, /* 47 */ - Taiwan5Keymap, /* 48 */ - Japan5Keymap, /* 49 */ - CanadaFr5Keymap, /* 50 */ - NULL, /* Hungary5 */ /* 51 */ - NULL, /* Poland5 */ /* 52 */ - NULL, /* Czech5 */ /* 53 */ - NULL, /* Russia5 */ /* 54 */ - NULL, /* 55 */ - NULL, /* 56 */ - NULL, /* 57 */ - NULL, /* 58 */ - NULL, /* 59 */ - NULL, /* 60 */ - NULL, /* 61 */ - NULL, /* 62 */ - NULL, /* CanadaFr5+ */ /* 63 */ - NULL, /* 64 */ - NULL, /* 65 */ - NULL, /* 66 */ - NULL, /* 67 */ - NULL, /* 68 */ - NULL, /* 69 */ - NULL, /* 70 */ - NULL, /* 71 */ - NULL, /* 72 */ - NULL, /* 73 */ - NULL, /* 74 */ - NULL, /* 75 */ - NULL, /* 76 */ - NULL, /* 77 */ - NULL, /* 78 */ - NULL, /* 79 */ -/* - * We're punting on SPARC Voyager support for now. The OpenLook server - * apparently adds special semantics to Num_Lock, which requires indexing - * into column 5 of the keymap, which isn't handled by the core protocol - * at all, (it is in XKB.) We could do some tricky remapping, sort of - * like what the PC ddxen need to do to deal with funky PC keyboards; but - * for now we'll just pretend that Voyager (Hobo) keyboards are the same - * as the equivalent Sun5 keyboard. - */ - US5Keymap, /* 80 */ - US_UNIX5Keymap, /* 81 */ - France5Keymap, /* 82 */ - Denmark5Keymap, /* 83 */ - Germany5Keymap, /* 84 */ - Italy5Keymap, /* 85 */ - Netherland5Keymap, /* 86 */ - Norway5Keymap, /* 87 */ - Portugal5Keymap, /* 88 */ - Spain5Keymap, /* 89 */ - Sweden5Keymap, /* 90 */ - SwissFr5Keymap, /* 91 */ - SwissGe5Keymap, /* 92 */ - UK5Keymap, /* 93 */ - Korea5Keymap, /* 94 */ - Taiwan5Keymap, /* 95 */ - Japan5Keymap, /* 96 */ - CanadaFr5Keymap, /* 97 */ -}; - -int sunMaxLayout = sizeof(sunType4KeyMaps) / sizeof(sunType4KeyMaps[0]); - -SunModmapRec *sunType4ModMaps[] = { - US4Modmap, /* 0 */ - US4Modmap, /* 1 */ - FranceBelg4Modmap, /* 2 */ - Canada4Modmap, /* 3 */ - Denmark4Modmap, /* 4 */ - Germany4Modmap, /* 5 */ - Italy4Modmap, /* 6 */ - Netherland4Modmap, /* 7 */ - Norway4Modmap, /* 8 */ - Portugal4Modmap, /* 9 */ - SpainLatAm4Modmap, /* 10 */ - SwedenFin4Modmap, /* 11 */ - SwissFr4Modmap, /* 12 */ - SwissGe4Modmap, /* 13 */ - UK4Modmap, /* 14 */ - NULL, /* 15 */ - Korea4Modmap, /* 16 */ - Taiwan4Modmap, /* 17 */ - NULL, /* 18 */ - US101AModmap, /* 19 */ - NULL, /* 20 */ - NULL, /* 21 */ - NULL, /* 22 */ - NULL, /* 23 */ - NULL, /* 24 */ - NULL, /* 25 */ - NULL, /* 26 */ - NULL, /* 27 */ - NULL, /* 28 */ - NULL, /* 29 */ - NULL, /* 30 */ - NULL, /* 31 */ - Japan4Modmap, /* 32 */ - US5Modmap, /* 33 */ - US_UNIX5Modmap, /* 34 */ - France5Modmap, /* 35 */ - Denmark5Modmap, /* 36 */ - Germany5Modmap, /* 37 */ - Italy5Modmap, /* 38 */ - Netherland5Modmap, /* 39 */ - Norway5Modmap, /* 40 */ - Portugal5Modmap, /* 41 */ - Spain5Modmap, /* 42 */ - Sweden5Modmap, /* 43 */ - SwissFr5Modmap, /* 44 */ - SwissGe5Modmap, /* 45 */ - UK5Modmap, /* 46 */ - Korea5Modmap, /* 47 */ - Taiwan5Modmap, /* 48 */ - Japan5Modmap, /* 49 */ - CanadaFr5Modmap, /* 50 */ - NULL, /* Hungary5 */ /* 51 */ - NULL, /* Poland5 */ /* 52 */ - NULL, /* Czech5 */ /* 53 */ - NULL, /* Russia5 */ /* 54 */ - NULL, /* 55 */ - NULL, /* 56 */ - NULL, /* 57 */ - NULL, /* 58 */ - NULL, /* 59 */ - NULL, /* 60 */ - NULL, /* 61 */ - NULL, /* 62 */ - NULL, /* CanadaFr5+ */ /* 63 */ - NULL, /* 64 */ - NULL, /* 65 */ - NULL, /* 66 */ - NULL, /* 67 */ - NULL, /* 68 */ - NULL, /* 69 */ - NULL, /* 70 */ - NULL, /* 71 */ - NULL, /* 72 */ - NULL, /* 73 */ - NULL, /* 74 */ - NULL, /* 75 */ - NULL, /* 76 */ - NULL, /* 77 */ - NULL, /* 78 */ - NULL, /* 79 */ - US5Modmap, /* 80 */ - US_UNIX5Modmap, /* 81 */ - France5Modmap, /* 82 */ - Denmark5Modmap, /* 83 */ - Germany5Modmap, /* 84 */ - Italy5Modmap, /* 85 */ - Netherland5Modmap, /* 86 */ - Norway5Modmap, /* 87 */ - Portugal5Modmap, /* 88 */ - Spain5Modmap, /* 89 */ - Sweden5Modmap, /* 90 */ - SwissFr5Modmap, /* 91 */ - SwissGe5Modmap, /* 92 */ - UK5Modmap, /* 93 */ - Korea5Modmap, /* 94 */ - Taiwan5Modmap, /* 95 */ - Japan5Modmap, /* 96 */ - CanadaFr5Modmap, /* 97 */ -}; diff --git a/nx-X11/programs/Xserver/hw/sun/sunMfb.c b/nx-X11/programs/Xserver/hw/sun/sunMfb.c deleted file mode 100644 index fa8eb70db..000000000 --- a/nx-X11/programs/Xserver/hw/sun/sunMfb.c +++ /dev/null @@ -1,108 +0,0 @@ - -/* $Xorg: sunMfb.c,v 1.4 2001/02/09 02:04:44 xorgcvs Exp $ */ - -/* -Copyright 1990, 1993, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - */ -/* $XFree86: xc/programs/Xserver/hw/sun/sunMfb.c,v 3.3 2001/01/17 22:36:51 dawes Exp $ */ - -/************************************************************ -Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this -software and its documentation for any purpose and without -fee is hereby granted, provided that the above copyright no- -tice appear in all copies and that both that copyright no- -tice and this permission notice appear in supporting docu- -mentation, and that the names of Sun or The Open Group -not be used in advertising or publicity pertaining to -distribution of the software without specific prior -written permission. Sun and The Open Group make no -representations about the suitability of this software for -any purpose. It is provided "as is" without any express or -implied warranty. - -SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT- -NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE LI- -ABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH -THE USE OR PERFORMANCE OF THIS SOFTWARE. - -********************************************************/ - -/* - * Copyright 1987 by the Regents of the University of California - * Copyright 1987 by Adam de Boor, UC Berkeley - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies. The University of California - * makes no representations about the suitability of this - * software for any purpose. It is provided "as is" without - * express or implied warranty. - */ - -/****************************************************************/ -/* Modified from sunCG4C.c for X11R3 by Tom Jarmolowski */ -/****************************************************************/ - -/* - * Copyright 1991, 1992, 1993 Kaleb S. Keithley - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies. Kaleb S. Keithley makes no - * representations about the suitability of this software for - * any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include "sun.h" -#include "mfb.h" - -Bool sunBW2Init (screen, pScreen, argc, argv) - int screen; /* what screen am I going to be */ - ScreenPtr pScreen; /* The Screen to initialize */ - int argc; /* The number of the Server's arguments. */ - char **argv; /* The arguments themselves. Don't change! */ -{ - sunFbs[screen].EnterLeave = (void (*)())NoopDDA; - if (sunFlipPixels) { - pScreen->whitePixel = 1; - pScreen->blackPixel = 0; - } else { - pScreen->whitePixel = 0; - pScreen->blackPixel = 1; - } - return sunInitCommon (screen, pScreen, (off_t) 0, - mfbScreenInit, NULL, - mfbCreateDefColormap, sunSaveScreen, 0); -} - diff --git a/nx-X11/programs/Xserver/hw/sun/sunMouse.c b/nx-X11/programs/Xserver/hw/sun/sunMouse.c deleted file mode 100644 index aad46e3d7..000000000 --- a/nx-X11/programs/Xserver/hw/sun/sunMouse.c +++ /dev/null @@ -1,399 +0,0 @@ -/* $Xorg: sunMouse.c,v 1.3 2000/08/17 19:48:32 cpqbld Exp $ */ -/*- - * Copyright 1987 by the Regents of the University of California - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies. The University of California - * makes no representations about the suitability of this - * software for any purpose. It is provided "as is" without - * express or implied warranty. - */ - -/************************************************************ -Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this -software and its documentation for any purpose and without -fee is hereby granted, provided that the above copyright no- -tice appear in all copies and that both that copyright no- -tice and this permission notice appear in supporting docu- -mentation, and that the names of Sun or The Open Group -not be used in advertising or publicity pertaining to -distribution of the software without specific prior -written permission. Sun and The Open Group make no -representations about the suitability of this software for -any purpose. It is provided "as is" without any express or -implied warranty. - -SUN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT- -NESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN BE LI- -ABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR -PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH -THE USE OR PERFORMANCE OF THIS SOFTWARE. - -********************************************************/ -/* - * Copyright 1991, 1992, 1993 Kaleb S. Keithley - * - * Permission to use, copy, modify, and distribute this - * software and its documentation for any purpose and without - * fee is hereby granted, provided that the above copyright - * notice appear in all copies. Kaleb S. Keithley makes no - * representations about the suitability of this software for - * any purpose. It is provided "as is" without express or - * implied warranty. - */ -/* $XFree86: xc/programs/Xserver/hw/sun/sunMouse.c,v 1.3 2001/10/28 03:33:12 tsi Exp $ */ - -#define NEED_EVENTS -#include "sun.h" -#include "mi.h" - -Bool sunActiveZaphod = TRUE; - -static Bool sunCursorOffScreen(); -static void sunCrossScreen(); -static void sunWarpCursor(); - -miPointerScreenFuncRec sunPointerScreenFuncs = { - sunCursorOffScreen, - sunCrossScreen, - sunWarpCursor, -}; - -/*- - *----------------------------------------------------------------------- - * sunMouseCtrl -- - * Alter the control parameters for the mouse. Since acceleration - * etc. is done from the PtrCtrl record in the mouse's device record, - * there's nothing to do here. - * - * Results: - * None. - * - * Side Effects: - * None. - * - *----------------------------------------------------------------------- - */ -/*ARGSUSED*/ -static -void sunMouseCtrl ( - DeviceIntPtr device, - PtrCtrl* ctrl) -{ -} - -/*- - *----------------------------------------------------------------------- - * sunMouseProc -- - * Handle the initialization, etc. of a mouse - * - * Results: - * none. - * - * Side Effects: - * - * Note: - * When using sunwindows, all input comes off a single fd, stored in the - * global windowFd. Therefore, only one device should be enabled and - * disabled, even though the application still sees both mouse and - * keyboard. We have arbitrarily chosen to enable and disable windowFd - * in the keyboard routine sunKbdProc rather than in sunMouseProc. - * - *----------------------------------------------------------------------- - */ -int sunMouseProc ( - DeviceIntPtr device, - int what) -{ - DevicePtr pMouse = (DevicePtr) device; - int format; - static int oformat; - BYTE map[4]; - - switch (what) { - case DEVICE_INIT: - if (pMouse != LookupPointerDevice()) { - ErrorF ("Cannot open non-system mouse"); - return !Success; - } - if (sunPtrPriv.fd == -1) - return !Success; - pMouse->devicePrivate = (pointer) &sunPtrPriv; - pMouse->on = FALSE; - map[1] = 1; - map[2] = 2; - map[3] = 3; - InitPointerDeviceStruct( - pMouse, map, 3, miPointerGetMotionEvents, - sunMouseCtrl, miPointerGetMotionBufferSize()); - break; - - case DEVICE_ON: - if (ioctl (sunPtrPriv.fd, VUIDGFORMAT, &oformat) == -1) { - Error ("sunMouseProc ioctl VUIDGFORMAT"); - return !Success; - } - format = VUID_FIRM_EVENT; - if (ioctl (sunPtrPriv.fd, VUIDSFORMAT, &format) == -1) { - Error ("sunMouseProc ioctl VUIDSFORMAT"); - return !Success; - } - sunPtrPriv.bmask = 0; - AddEnabledDevice (sunPtrPriv.fd); - pMouse->on = TRUE; - break; - - case DEVICE_CLOSE: - pMouse->on = FALSE; - if (ioctl (sunPtrPriv.fd, VUIDSFORMAT, &oformat) == -1) - Error ("sunMouseProc ioctl VUIDSFORMAT"); - break; - - case DEVICE_OFF: - pMouse->on = FALSE; - RemoveEnabledDevice (sunPtrPriv.fd); - break; - } - return Success; -} - -/*- - *----------------------------------------------------------------------- - * sunMouseGetEvents -- - * Return the events waiting in the wings for the given mouse. - * - * Results: - * A pointer to an array of Firm_events or (Firm_event *)0 if no events - * The number of events contained in the array. - * A boolean as to whether more events might be available. - * - * Side Effects: - * None. - *----------------------------------------------------------------------- - */ - -Firm_event* sunMouseGetEvents ( - int fd, - Bool on, - int* pNumEvents, - Bool* pAgain) -{ - int nBytes; /* number of bytes of events available. */ - static Firm_event evBuf[MAXEVENTS]; /* Buffer for Firm_events */ - - if ((nBytes = read (fd, (char *)evBuf, sizeof(evBuf))) == -1) { - if (errno == EWOULDBLOCK) { - *pNumEvents = 0; - *pAgain = FALSE; - } else { - Error ("sunMouseGetEvents read"); - FatalError ("Could not read from mouse"); - } - } else { - if (on) { - *pNumEvents = nBytes / sizeof (Firm_event); - *pAgain = (nBytes == sizeof (evBuf)); - } else { - *pNumEvents = 0; - *pAgain = FALSE; - } - } - return evBuf; -} - - -/*- - *----------------------------------------------------------------------- - * MouseAccelerate -- - * Given a delta and a mouse, return the acceleration of the delta. - * - * Results: - * The corrected delta - * - * Side Effects: - * None. - * - *----------------------------------------------------------------------- - */ -static short -MouseAccelerate (device, delta) - DeviceIntPtr device; - int delta; -{ - int sgn = sign(delta); - PtrCtrl *pCtrl; - short ret; - - delta = abs(delta); - pCtrl = &device->ptrfeed->ctrl; - if (delta > pCtrl->threshold) { - ret = - (short) sgn * - (pCtrl->threshold + ((delta - pCtrl->threshold) * pCtrl->num) / - pCtrl->den); - } else { - ret = (short) sgn * delta; - } - return ret; -} - -/*- - *----------------------------------------------------------------------- - * sunMouseEnqueueEvent -- - * Given a Firm_event for a mouse, pass it off the the dix layer - * properly converted... - * - * Results: - * None. - * - * Side Effects: - * The cursor may be redrawn...? devPrivate/x/y will be altered. - * - *----------------------------------------------------------------------- - */ - -void sunMouseEnqueueEvent ( - DeviceIntPtr device, - Firm_event *fe) -{ - xEvent xE; - sunPtrPrivPtr pPriv; /* Private data for pointer */ - int bmask; /* Temporary button mask */ - unsigned long time; - int x, y; - - pPriv = (sunPtrPrivPtr)device->public.devicePrivate; - - time = xE.u.keyButtonPointer.time = TVTOMILLI(fe->time); - - switch (fe->id) { - case MS_LEFT: - case MS_MIDDLE: - case MS_RIGHT: - /* - * A button changed state. Sometimes we will get two events - * for a single state change. Should we get a button event which - * reflects the current state of affairs, that event is discarded. - * - * Mouse buttons start at 1. - */ - xE.u.u.detail = (fe->id - MS_LEFT) + 1; - bmask = 1 << xE.u.u.detail; - if (fe->value == VKEY_UP) { - if (pPriv->bmask & bmask) { - xE.u.u.type = ButtonRelease; - pPriv->bmask &= ~bmask; - } else { - return; - } - } else { - if ((pPriv->bmask & bmask) == 0) { - xE.u.u.type = ButtonPress; - pPriv->bmask |= bmask; - } else { - return; - } - } - mieqEnqueue (&xE); - break; - case LOC_X_DELTA: - miPointerDeltaCursor (MouseAccelerate(device,fe->value),0,time); - break; - case LOC_Y_DELTA: - /* - * For some reason, motion up generates a positive y delta - * and motion down a negative delta, so we must subtract - * here instead of add... - */ - miPointerDeltaCursor (0,-MouseAccelerate(device,fe->value),time); - break; - case LOC_X_ABSOLUTE: - miPointerPosition (&x, &y); - miPointerAbsoluteCursor (fe->value, y, time); - break; - case LOC_Y_ABSOLUTE: - miPointerPosition (&x, &y); - miPointerAbsoluteCursor (x, fe->value, time); - break; - default: - FatalError ("sunMouseEnqueueEvent: unrecognized id\n"); - break; - } -} - -/*ARGSUSED*/ -static Bool -sunCursorOffScreen (pScreen, x, y) - ScreenPtr *pScreen; - int *x, *y; -{ - int index, ret = FALSE; - extern Bool PointerConfinedToScreen(); - - if (PointerConfinedToScreen()) return TRUE; - /* - * Active Zaphod implementation: - * increment or decrement the current screen - * if the x is to the right or the left of - * the current screen. - */ - if (sunActiveZaphod && - screenInfo.numScreens > 1 && (*x >= (*pScreen)->width || *x < 0)) { - index = (*pScreen)->myNum; - if (*x < 0) { - index = (index ? index : screenInfo.numScreens) - 1; - *pScreen = screenInfo.screens[index]; - *x += (*pScreen)->width; - } else { - *x -= (*pScreen)->width; - index = (index + 1) % screenInfo.numScreens; - *pScreen = screenInfo.screens[index]; - } - ret = TRUE; - } - return ret; -} - -static void -sunCrossScreen (pScreen, entering) - ScreenPtr pScreen; - Bool entering; -{ - if (sunFbs[pScreen->myNum].EnterLeave) - (*sunFbs[pScreen->myNum].EnterLeave) (pScreen, entering ? 0 : 1); -} - -static void -sunWarpCursor (pScreen, x, y) - ScreenPtr pScreen; - int x, y; -{ -#ifndef i386 - sigset_t newsigmask; - - (void) sigemptyset (&newsigmask); -#ifdef SVR4 - (void) sigaddset (&newsigmask, SIGPOLL); -#else - (void) sigaddset (&newsigmask, SIGIO); -#endif - (void) sigprocmask (SIG_BLOCK, &newsigmask, (sigset_t *)NULL); - miPointerWarpCursor (pScreen, x, y); - (void) sigprocmask (SIG_UNBLOCK, &newsigmask, (sigset_t *)NULL); -#else - int oldmask; - - oldmask = sigblock (sigmask (SIGIO)); - miPointerWarpCursor (pScreen, x, y); - sigsetmask (oldmask); -#endif -} diff --git a/nx-X11/programs/Xserver/hw/sun/sunMultiDepth.c b/nx-X11/programs/Xserver/hw/sun/sunMultiDepth.c deleted file mode 100644 index a8adf353f..000000000 --- a/nx-X11/programs/Xserver/hw/sun/sunMultiDepth.c +++ /dev/null @@ -1,277 +0,0 @@ -/* $Xorg: sunMultiDepth.c,v 1.4 2001/02/09 02:04:44 xorgcvs Exp $ */ -/* - -Copyright 1992, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall -not be used in advertising or otherwise to promote the sale, use or -other dealings in this Software without prior written authorization -from The Open Group. - -*/ - -/* $XFree86: xc/programs/Xserver/hw/sun/sunMultiDepth.c,v 1.5 2001/01/17 22:36:51 dawes Exp $ */ - -#include -#include -#include "servermd.h" -#include "scrnintstr.h" -#include "pixmapstr.h" -#include "resource.h" -#include "colormap.h" -#include "colormapst.h" -#include "mi.h" -#include "mistruct.h" -#include "dix.h" -#include "gcstruct.h" -#include "mibstore.h" - -#ifndef SINGLEDEPTH - -static Bool -sunCfbCreateGC(pGC) - GCPtr pGC; -{ - if (pGC->depth == 1) - { - return mfbCreateGC (pGC); - } - else if (pGC->depth <= 8) - { - return cfbCreateGC (pGC); - } - else if (pGC->depth <= 16) - { - return cfb16CreateGC (pGC); - } - else if (pGC->depth <= 32) - { - return cfb32CreateGC (pGC); - } - return FALSE; -} - -static void -sunCfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart) - DrawablePtr pDrawable; /* drawable from which to get bits */ - int wMax; /* largest value of all *pwidths */ - register DDXPointPtr ppt; /* points to start copying from */ - int *pwidth; /* list of number of bits to copy */ - int nspans; /* number of scanlines to copy */ - char *pdstStart; /* where to put the bits */ -{ - switch (pDrawable->bitsPerPixel) { - case 1: - mfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); - break; - case 8: - cfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); - break; - case 16: - cfb16GetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); - break; - case 32: - cfb32GetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart); - break; - } - return; -} - -static void -sunCfbGetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine) - DrawablePtr pDrawable; - int sx, sy, w, h; - unsigned int format; - unsigned long planeMask; - char *pdstLine; -{ - switch (pDrawable->bitsPerPixel) - { - case 1: - mfbGetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); - break; - case 8: - cfbGetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); - break; - case 16: - cfb16GetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); - break; - case 32: - cfb32GetImage(pDrawable, sx, sy, w, h, format, planeMask, pdstLine); - break; - } -} - -Bool -sunCfbSetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, width, bpp) - register ScreenPtr pScreen; - pointer pbits; /* pointer to screen bitmap */ - int xsize, ysize; /* in pixels */ - int dpix, dpiy; /* dots per inch */ - int width; /* pixel width of frame buffer */ - int bpp; /* bits per pixel of root */ -{ - extern int cfbWindowPrivateIndex; - extern int cfbGCPrivateIndex; - int ret; - - sunRegisterPixmapFormat( /* depth */ 1, /* bits per pixel */ 1); - sunRegisterPixmapFormat( /* depth */ 8, /* bits per pixel */ 8); - sunRegisterPixmapFormat( /* depth */ 12, /* bits per pixel */ 16); - sunRegisterPixmapFormat( /* depth */ 24, /* bits per pixel */ 32); - - switch (bpp) { - case 8: - ret = cfbSetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, width); - break; - case 16: - ret = cfb16SetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, width); - break; - case 32: - ret = cfb32SetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, width); - break; - default: - return FALSE; - } - pScreen->CreateGC = sunCfbCreateGC; - pScreen->GetImage = sunCfbGetImage; - pScreen->GetSpans = sunCfbGetSpans; - return ret; -} - -extern BSFuncRec cfbBSFuncRec, cfb16BSFuncRec, cfb32BSFuncRec; -extern int cfb16ScreenPrivateIndex, cfb32ScreenPrivateIndex; -extern Bool cfbCloseScreen(), cfb16CloseScreen(), cfb32CloseScreen(); - -Bool -sunCfbFinishScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width, bpp) - register ScreenPtr pScreen; - pointer pbits; /* pointer to screen bitmap */ - int xsize, ysize; /* in pixels */ - int dpix, dpiy; /* dots per inch */ - int width; /* pixel width of frame buffer */ - int bpp; -{ - int i; - pointer oldDevPrivate; - VisualPtr visuals; - int nvisuals; - DepthPtr depths; - int ndepths; - VisualID defaultVisual; - int rootdepth; - - if (!cfbInitVisuals(&visuals, &depths, &nvisuals, &ndepths, - &rootdepth, &defaultVisual, 1 << (bpp - 1), 8)) - return FALSE; - oldDevPrivate = pScreen->devPrivate; - if (! miScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width, - rootdepth, ndepths, depths, - defaultVisual, nvisuals, visuals)) - return FALSE; - switch (bpp) - { - case 8: - pScreen->CloseScreen = cfbCloseScreen; - pScreen->BackingStoreFuncs = cfbBSFuncRec; - break; - case 16: - pScreen->CloseScreen = cfb16CloseScreen; - pScreen->devPrivates[cfb16ScreenPrivateIndex].ptr = - pScreen->devPrivate; - pScreen->devPrivate = oldDevPrivate; - pScreen->BackingStoreFuncs = cfb16BSFuncRec; - break; - case 32: - pScreen->CloseScreen = cfb32CloseScreen; - pScreen->devPrivates[cfb32ScreenPrivateIndex].ptr = - pScreen->devPrivate; - pScreen->devPrivate = oldDevPrivate; - pScreen->BackingStoreFuncs = cfb32BSFuncRec; - break; - } - return TRUE; -} - - -Bool -sunCfbScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width, bpp) - register ScreenPtr pScreen; - pointer pbits; /* pointer to screen bitmap */ - int xsize, ysize; /* in pixels */ - int dpix, dpiy; /* dots per inch */ - int width; /* pixel width of frame buffer */ - int bpp; -{ - if (!sunCfbSetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, - width, bpp)) - return FALSE; - return sunCfbFinishScreenInit(pScreen, pbits, xsize, ysize, dpix, - dpiy, width, bpp); -} - - -#else /* SINGLEDEPTH */ - -/* stuff for 8-bit only server */ - -Bool -sunCfbSetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, width, bpp) - register ScreenPtr pScreen; - pointer pbits; /* pointer to screen bitmap */ - int xsize, ysize; /* in pixels */ - int dpix, dpiy; /* dots per inch */ - int width; /* pixel width of frame buffer */ - int bpp; /* bits per pixel of root */ -{ - sunRegisterPixmapFormat( /* depth */ 1, /* bits per pixel */ 1); - sunRegisterPixmapFormat( /* depth */ 8, /* bits per pixel */ 8); - return cfbSetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, - width); -} - -Bool -sunCfbFinishScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width, bpp) - register ScreenPtr pScreen; - pointer pbits; /* pointer to screen bitmap */ - int xsize, ysize; /* in pixels */ - int dpix, dpiy; /* dots per inch */ - int width; /* pixel width of frame buffer */ - int bpp; -{ - return cfbFinishScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, - width); -} - -Bool -sunCfbScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width, bpp) - register ScreenPtr pScreen; - pointer pbits; /* pointer to screen bitmap */ - int xsize, ysize; /* in pixels */ - int dpix, dpiy; /* dots per inch */ - int width; /* pixel width of frame buffer */ - int bpp; -{ - sunRegisterPixmapFormat( /* depth */ 1, /* bits per pixel */ 1); - sunRegisterPixmapFormat( /* depth */ 8, /* bits per pixel */ 8); - return cfbScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width); -} - -#endif /* SINGLEDEPTH */ -- cgit v1.2.3