diff options
Diffstat (limited to 'xorg-server')
-rw-r--r-- | xorg-server/dix/dixfonts.c | 6 | ||||
-rw-r--r-- | xorg-server/doc/Xserver.man.pre | 1192 | ||||
-rw-r--r-- | xorg-server/hw/vfb/InitInput.c | 308 | ||||
-rw-r--r-- | xorg-server/hw/vfb/Makefile.am | 103 | ||||
-rw-r--r-- | xorg-server/hw/vfb/lk201kbd.h | 158 | ||||
-rw-r--r-- | xorg-server/hw/xfree86/os-support/solaris/sun_init.c | 102 | ||||
-rw-r--r-- | xorg-server/include/dix.h | 2 | ||||
-rw-r--r-- | xorg-server/include/dixstruct.h | 378 | ||||
-rw-r--r-- | xorg-server/include/extnsionst.h | 224 |
9 files changed, 1180 insertions, 1293 deletions
diff --git a/xorg-server/dix/dixfonts.c b/xorg-server/dix/dixfonts.c index 239431e2a..d6ddf04e1 100644 --- a/xorg-server/dix/dixfonts.c +++ b/xorg-server/dix/dixfonts.c @@ -1173,7 +1173,6 @@ int doPolyText(ClientPtr client, PTclosurePtr c)
{
FontPtr pFont = c->pGC->font, oldpFont;
- Font fid, oldfid;
int err = Success, lgerr; /* err is in X error, not font error, space */
enum { NEVER_SLEPT, START_SLEEP, SLEEPING } client_state = NEVER_SLEPT;
FontPathElementPtr fpe;
@@ -1221,6 +1220,7 @@ doPolyText(ClientPtr client, PTclosurePtr c) {
if (*c->pElt == FontChange)
{
+ Font fid;
if (c->endReq - c->pElt < FontShiftSize)
{
err = BadLength;
@@ -1228,7 +1228,6 @@ doPolyText(ClientPtr client, PTclosurePtr c) }
oldpFont = pFont;
- oldfid = fid;
fid = ((Font)*(c->pElt+4)) /* big-endian */
| ((Font)*(c->pElt+3)) << 8
@@ -1238,9 +1237,8 @@ doPolyText(ClientPtr client, PTclosurePtr c) client, DixUseAccess);
if (err != Success)
{
- /* restore pFont and fid for step 4 (described below) */
+ /* restore pFont for step 4 (described below) */
pFont = oldpFont;
- fid = oldfid;
/* If we're in START_SLEEP mode, the following step
shortens the request... in the unlikely event that
diff --git a/xorg-server/doc/Xserver.man.pre b/xorg-server/doc/Xserver.man.pre index 8144c8ad4..4926960c2 100644 --- a/xorg-server/doc/Xserver.man.pre +++ b/xorg-server/doc/Xserver.man.pre @@ -1,600 +1,592 @@ -.\" $Xorg: Xserver.man,v 1.4 2001/02/09 02:04:07 xorgcvs Exp $ -.\" $XdotOrg: xserver/xorg/doc/Xserver.man.pre,v 1.4 2005/12/23 20:11:12 alanc Exp $ -.\" Copyright 1984 - 1991, 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/Xserver.man,v 3.31 2004/01/10 22:27:46 dawes Exp $ -.\" shorthand for double quote that works everywhere. -.ds q \N'34' -.TH XSERVER 1 __xorgversion__ -.SH NAME -Xserver \- X Window System display server -.SH SYNOPSIS -.B X -[option ...] -.SH DESCRIPTION -.I X -is the generic name for the X Window System display server. It is -frequently a link or a copy of the appropriate server binary for -driving the most frequently used server on a given machine. -.SH "STARTING THE SERVER" -The X server is usually started from the X Display Manager program -\fIxdm\fP(1) or a similar display manager program. -This utility is run from the system boot files and takes care of keeping -the server running, prompting for usernames and passwords, and starting up -the user sessions. -.PP -Installations that run more than one window system may need to use the -\fIxinit\fP(1) utility instead of a display manager. However, \fIxinit\fP is -to be considered a tool for building startup scripts and is not -intended for use by end users. Site administrators are \fBstrongly\fP -urged to use a display manager, or build other interfaces for novice users. -.PP -The X server may also be started directly by the user, though this -method is usually reserved for testing and is not recommended for -normal operation. On some platforms, the user must have special -permission to start the X server, often because access to certain -devices (e.g. \fI/dev/mouse\fP) is restricted. -.PP -When the X server starts up, it typically takes over the display. If -you are running on a workstation whose console is the display, you may -not be able to log into the console while the server is running. -.SH OPTIONS -Many X servers have device-specific command line options. See the manual -pages for the individual servers for more details; a list of -server-specific manual pages is provided in the SEE ALSO section below. -.PP -All of the X servers accept the command line options described below. -Some X servers may have alternative ways of providing the parameters -described here, but the values provided via the command line options -should override values specified via other mechanisms. -.TP 8 -.B :\fIdisplaynumber\fP -The X server runs as the given \fIdisplaynumber\fP, which by default is 0. -If multiple X servers are to run simultaneously on a host, each must have -a unique display number. See the DISPLAY -NAMES section of the \fIX\fP(__miscmansuffix__) manual page to learn how to -specify which display number clients should try to use. -.TP 8 -.B \-a \fInumber\fP -sets pointer acceleration (i.e. the ratio of how much is reported to how much -the user actually moved the pointer). -.TP 8 -.B \-ac -disables host-based access control mechanisms. Enables access by any host, -and permits any host to modify the access control list. -Use with extreme caution. -This option exists primarily for running test suites remotely. -.TP 8 -.B \-audit \fIlevel\fP -sets the audit trail level. The default level is 1, meaning only connection -rejections are reported. Level 2 additionally reports all successful -connections and disconnects. Level 4 enables messages from the -SECURITY extension, if present, including generation and revocation of -authorizations and violations of the security policy. -Level 0 turns off the audit trail. -Audit lines are sent as standard error output. -.TP 8 -.B \-auth \fIauthorization-file\fP -specifies a file which contains a collection of authorization records used -to authenticate access. See also the \fIxdm\fP(1) and -\fIXsecurity\fP(__miscmansuffix__) manual pages. -.TP 8 -.B \-bs -disables backing store support on all screens. -.TP 8 -.B \-br -sets the default root window to solid black instead of the standard root weave -pattern. -.TP 8 -.B \-c -turns off key-click. -.TP 8 -.B c \fIvolume\fP -sets key-click volume (allowable range: 0-100). -.TP 8 -.B \-cc \fIclass\fP -sets the visual class for the root window of color screens. -The class numbers are as specified in the X protocol. -Not obeyed by all servers. -.ig -.TP 8 -.B \-config \fIfilename\fP -reads more options from the given file. Options in the file may be separated -by newlines if desired. If a '#' character appears on a line, all characters -between it and the next newline are ignored, providing a simple commenting -facility. The \fB\-config\fP option itself may appear in the file. -.BR NOTE : -This option is disabled when the Xserver is run with an effective uid -different from the user's real uid. -.. -.TP 8 -.B \-core -causes the server to generate a core dump on fatal errors. -.TP 8 -.B \-deferglyphs \fIwhichfonts\fP -specifies the types of fonts for which the server should attempt to use -deferred glyph loading. \fIwhichfonts\fP can be all (all fonts), -none (no fonts), or 16 (16 bit fonts only). -.TP 8 -.B \-dpi \fIresolution\fP -sets the resolution for all screens, in dots per inch. -To be used when the server cannot determine the screen size(s) from the -hardware. -.TP 8 -.B dpms -enables DPMS (display power management services), where supported. The -default state is platform and configuration specific. -.TP 8 -.B \-dpms -disables DPMS (display power management services). The default state -is platform and configuration specific. -.TP 8 -.BI \-extension extensionName -disables named extension. If an unknown extension name is specified, -a list of accepted extension names is printed. -.TP 8 -.BI \+extension extensionName -enables named extension. If an unknown extension name is specified, -a list of accepted extension names is printed. -.TP 8 -.B \-f \fIvolume\fP -sets feep (bell) volume (allowable range: 0-100). -.TP 8 -.B \-fc \fIcursorFont\fP -sets default cursor font. -.TP 8 -.B \-fn \fIfont\fP -sets the default font. -.TP 8 -.B \-fp \fIfontPath\fP -sets the search path for fonts. This path is a comma separated list -of directories which the X server searches for font databases. -See the FONTS section of this manual page for more information and the default -list. -.TP 8 -.B \-help -prints a usage message. -.TP 8 -.B \-I -causes all remaining command line arguments to be ignored. -.TP 8 -.B \-maxbigreqsize \fIsize\fP -sets the maximum big request to -.I size -MB. -.TP 8 -.B \-nolisten \fItrans-type\fP -disables a transport type. For example, TCP/IP connections can be disabled -with -.BR "\-nolisten tcp" . -This option may be issued multiple times to disable listening to different -transport types. -.TP 8 -.B \-noreset -prevents a server reset when the last client connection is closed. This -overrides a previous -.B \-terminate -command line option. -.TP 8 -.B \-p \fIminutes\fP -sets screen-saver pattern cycle time in minutes. -.TP 8 -.B \-pn -permits the server to continue running if it fails to establish all of -its well-known sockets (connection points for clients), but -establishes at least one. This option is set by default. -.TP 8 -.B \-nopn -causes the server to exit if it fails to establish all of its well-known -sockets (connection points for clients). -.TP 8 -.B \-r -turns off auto-repeat. -.TP 8 -.B r -turns on auto-repeat. -.TP 8 -.B -retro -starts the stipple with the classic stipple and cursor visible. The default -is to start with a black root window, and to suppress display of the cursor -until the first time an application calls XDefineCursor(). For the Xorg -server, this also sets the default for the DontZap option to FALSE. For -kdrive servers, this implies -zap. -.TP 8 -.B \-s \fIminutes\fP -sets screen-saver timeout time in minutes. -.TP 8 -.B \-su -disables save under support on all screens. -.TP 8 -.B \-t \fInumber\fP -sets pointer acceleration threshold in pixels (i.e. after how many pixels -pointer acceleration should take effect). -.TP 8 -.B \-terminate -causes the server to terminate at server reset, instead of continuing to run. -This overrides a previous -.B \-noreset -command line option. -.TP 8 -.B \-to \fIseconds\fP -sets default connection timeout in seconds. -.TP 8 -.B \-tst -disables all testing extensions (e.g., XTEST, XTrap, XTestExtension1, RECORD). -.TP 8 -.B tty\fIxx\fP -ignored, for servers started the ancient way (from init). -.TP 8 -.B v -sets video-off screen-saver preference. -.TP 8 -.B \-v -sets video-on screen-saver preference. -.TP 8 -.B \-wm -forces the default backing-store of all windows to be WhenMapped. This -is a backdoor way of getting backing-store to apply to all windows. -Although all mapped windows will have backing store, the backing store -attribute value reported by the server for a window will be the last -value established by a client. If it has never been set by a client, -the server will report the default value, NotUseful. This behavior is -required by the X protocol, which allows the server to exceed the -client's backing store expectations but does not provide a way to tell -the client that it is doing so. -.TP 8 -.B \-wr -sets the default root window to solid white instead of the standard root weave -pattern. -.TP 8 -.B \-x \fIextension\fP -loads the specified extension at init. -This is a no-op for most implementations. -.TP 8 -.B [+-]xinerama -enables(+) or disables(-) the XINERAMA extension. The default state is -platform and configuration specific. -.SH SERVER DEPENDENT OPTIONS -Some X servers accept the following options: -.TP 8 -.B \-ld \fIkilobytes\fP -sets the data space limit of the server to the specified number of kilobytes. -A value of zero makes the data size as large as possible. The default value -of \-1 leaves the data space limit unchanged. -.TP 8 -.B \-lf \fIfiles\fP -sets the number-of-open-files limit of the server to the specified number. -A value of zero makes the limit as large as possible. The default value -of \-1 leaves the limit unchanged. -.TP 8 -.B \-ls \fIkilobytes\fP -sets the stack space limit of the server to the specified number of kilobytes. -A value of zero makes the stack size as large as possible. The default value -of \-1 leaves the stack space limit unchanged. -.TP 8 -.B \-logo -turns on the X Window System logo display in the screen-saver. -There is currently no way to change this from a client. -.TP 8 -.B nologo -turns off the X Window System logo display in the screen-saver. -There is currently no way to change this from a client. -.TP 8 -.B \-render -.BR default | mono | gray | color -sets the color allocation policy that will be used by the render extension. -.RS 8 -.TP 8 -.I default -selects the default policy defined for the display depth of the X -server. -.TP 8 -.I mono -don't use any color cell. -.TP 8 -.I gray -use a gray map of 13 color cells for the X render extension. -.TP 8 -.I color -use a color cube of at most 4*4*4 colors (that is 64 color cells). -.RE -.TP 8 -.B \-dumbSched -disables smart scheduling on platforms that support the smart scheduler. -.TP -.B \-schedInterval \fIinterval\fP -sets the smart scheduler's scheduling interval to -.I interval -milliseconds. -.SH XDMCP OPTIONS -X servers that support XDMCP have the following options. -See the \fIX Display Manager Control Protocol\fP specification for more -information. -.TP 8 -.B \-query \fIhostname\fP -enables XDMCP and sends Query packets to the specified -.IR hostname . -.TP 8 -.B \-broadcast -enable XDMCP and broadcasts BroadcastQuery packets to the network. The -first responding display manager will be chosen for the session. -.TP 8 -.B \-multicast [\fIaddress\fP [\fIhop count\fP]] -Enable XDMCP and multicast BroadcastQuery packets to the network. -The first responding display manager is chosen for the session. If an -address is specified, the multicast is sent to that address. If no -address is specified, the multicast is sent to the default XDMCP IPv6 -multicast group. If a hop count is specified, it is used as the maximum -hop count for the multicast. If no hop count is specified, the multicast -is set to a maximum of 1 hop, to prevent the multicast from being routed -beyond the local network. -.TP 8 -.B \-indirect \fIhostname\fP -enables XDMCP and send IndirectQuery packets to the specified -.IR hostname . -.TP 8 -.B \-port \fIport-number\fP -uses the specified \fIport-number\fP for XDMCP packets, instead of the -default. This option must be specified before any \-query, \-broadcast, -\-multicast, or \-indirect options. -.TP 8 -.B \-from \fIlocal-address\fP -specifies the local address to connect from (useful if the connecting host -has multiple network interfaces). The \fIlocal-address\fP may be expressed -in any form acceptable to the host platform's \fIgethostbyname\fP(3) -implementation. -.TP 8 -.B \-once -causes the server to terminate (rather than reset) when the XDMCP session -ends. -.TP 8 -.B \-class \fIdisplay-class\fP -XDMCP has an additional display qualifier used in resource lookup for -display-specific options. This option sets that value, by default it -is "MIT-Unspecified" (not a very useful value). -.TP 8 -.B \-cookie \fIxdm-auth-bits\fP -When testing XDM-AUTHENTICATION-1, a private key is shared between the -server and the manager. This option sets the value of that private -data (not that it is very private, being on the command line!). -.TP 8 -.B \-displayID \fIdisplay-id\fP -Yet another XDMCP specific value, this one allows the display manager to -identify each display so that it can locate the shared key. -.SH XKEYBOARD OPTIONS -X servers that support the XKEYBOARD (a.k.a. \*qXKB\*q) extension accept the -following options. All layout files specified on the command line must be -located in the XKB base directory or a subdirectory, and specified as the -relative path from the XKB base directory. The default XKB base directory is -.IR __projectroot__/lib/X11/xkb . -.TP 8 -.BR [+-]accessx " [ \fItimeout\fP [ \fItimeout_mask\fP [ \fIfeedback\fP [ \fIoptions_mask\fP ] ] ] ]" -enables(+) or disables(-) AccessX key sequences. -.TP 8 -.B \-xkbdir \fIdirectory\fP -base directory for keyboard layout files. This option is not available -for setuid X servers (i.e., when the X server's real and effective uids -are different). -.TP 8 -.B \-ardelay \fImilliseconds\fP -sets the autorepeat delay (length of time in milliseconds that a key must -be depressed before autorepeat starts). -.TP 8 -.B \-arinterval \fImilliseconds\fP -sets the autorepeat interval (length of time in milliseconds that should -elapse between autorepeat-generated keystrokes). -.TP 8 -.B \-xkbmap \fIfilename\fP -loads keyboard description in \fIfilename\fP on server startup. -.SH "NETWORK CONNECTIONS" -The X server supports client connections via a platform-dependent subset of -the following transport types: TCP\/IP, Unix Domain sockets, DECnet, -and several varieties of SVR4 local connections. See the DISPLAY -NAMES section of the \fIX\fP(__miscmansuffix__) manual page to learn how to -specify which transport type clients should try to use. -.SH GRANTING ACCESS -The X server implements a platform-dependent subset of the following -authorization protocols: MIT-MAGIC-COOKIE-1, XDM-AUTHORIZATION-1, -XDM-AUTHORIZATION-2, SUN-DES-1, and MIT-KERBEROS-5. See the -\fIXsecurity\fP(__miscmansuffix__) manual page for information on the -operation of these protocols. -.PP -Authorization data required by the above protocols is passed to the -server in a private file named with the \fB\-auth\fP command line -option. Each time the server is about to accept the first connection -after a reset (or when the server is starting), it reads this file. -If this file contains any authorization records, the local host is not -automatically allowed access to the server, and only clients which -send one of the authorization records contained in the file in the -connection setup information will be allowed access. See the -\fIXau\fP manual page for a description of the binary format of this -file. See \fIxauth\fP(1) for maintenance of this file, and distribution -of its contents to remote hosts. -.PP -The X server also uses a host-based access control list for deciding -whether or not to accept connections from clients on a particular machine. -If no other authorization mechanism is being used, -this list initially consists of the host on which the server is running as -well as any machines listed in the file \fI/etc/X\fBn\fI.hosts\fR, where -\fBn\fP is the display number of the server. Each line of the file should -contain either an Internet hostname (e.g. expo.lcs.mit.edu) or a DECnet -hostname in double colon format (e.g. hydra::) or a complete name in the format -\fIfamily\fP:\fIname\fP as described in the \fIxhost\fP(1) manual page. -There should be no leading or trailing spaces on any lines. For example: -.sp -.in +8 -.nf -joesworkstation -corporate.company.com -star:: -inet:bigcpu -local: -.fi -.in -8 -.PP -Users can add or remove hosts from this list and enable or disable access -control using the \fIxhost\fP command from the same machine as the server. -.PP -If the X FireWall Proxy (\fIxfwp\fP) is being used without a sitepolicy, -host-based authorization must be turned on for clients to be able to -connect to the X server via the \fIxfwp\fP. If \fIxfwp\fP is run without -a configuration file and thus no sitepolicy is defined, if \fIxfwp\fP -is using an X server where xhost + has been run to turn off host-based -authorization checks, when a client tries to connect to this X server -via \fIxfwp\fP, the X server will deny the connection. See \fIxfwp\fP(1) -for more information about this proxy. -.PP -The X protocol intrinsically does not have any notion of window operation -permissions or place any restrictions on what a client can do; if a program can -connect to a display, it has full run of the screen. -X servers that support the SECURITY extension fare better because clients -can be designated untrusted via the authorization they use to connect; see -the \fIxauth\fP(1) manual page for details. Restrictions are imposed -on untrusted clients that curtail the mischief they can do. See the SECURITY -extension specification for a complete list of these restrictions. -.PP -Sites that have better -authentication and authorization systems might wish to make -use of the hooks in the libraries and the server to provide additional -security models. -.SH SIGNALS -The X server attaches special meaning to the following signals: -.TP 8 -.I SIGHUP -This signal causes the server to close all existing connections, free all -resources, and restore all defaults. It is sent by the display manager -whenever the main user's main application (usually an \fIxterm\fP or window -manager) exits to force the server to clean up and prepare for the next -user. -.TP 8 -.I SIGTERM -This signal causes the server to exit cleanly. -.TP 8 -.I SIGUSR1 -This signal is used quite differently from either of the above. When the -server starts, it checks to see if it has inherited SIGUSR1 as SIG_IGN -instead of the usual SIG_DFL. In this case, the server sends a SIGUSR1 to -its parent process after it has set up the various connection schemes. -\fIXdm\fP uses this feature to recognize when connecting to the server -is possible. -.SH FONTS -The X server can obtain fonts from directories and/or from font servers. -The list of directories and font servers -the X server uses when trying to open a font is controlled -by the \fIfont path\fP. -.LP -The default font path is -__default_font_path__ . -.LP -A special kind of directory can be specified using the \fBcatalogue\fP: -prefix. Directories specified this way can contain symlinks pointing to the -real font directories. See the FONTPATH.D section for details. -.LP -The font path can be set with the \fB\-fp\fP option or by \fIxset\fP(1) -after the server has started. -.SH "FONTPATH.D" -You can specify a special kind of font path in the form \fBcatalogue:<dir>\fR. -The directory specified after the catalogue: prefix will be scanned for symlinks -and each symlink destination will be added as a local fontfile FPE. -.PP -The symlink can be suffixed by attributes such as '\fBunscaled\fR', which -will be passed through to the underlying fontfile FPE. The only exception is -the newly introduced '\fBpri\fR' attribute, which will be used for ordering -the font paths specified by the symlinks. - -An example configuration: - -.nf - 75dpi:unscaled:pri=20 \-> /usr/share/X11/fonts/75dpi - ghostscript:pri=60 \-> /usr/share/fonts/default/ghostscript - misc:unscaled:pri=10 \-> /usr/share/X11/fonts/misc - type1:pri=40 \-> /usr/share/X11/fonts/Type1 - type1:pri=50 \-> /usr/share/fonts/default/Type1 -.fi - -This will add /usr/share/X11/fonts/misc as the first FPE with the attribute -'unscaled', second FPE will be /usr/share/X11/fonts/75dpi, also with -the attribute unscaled etc. This is functionally equivalent to setting -the following font path: - -.nf - /usr/share/X11/fonts/misc:unscaled, - /usr/share/X11/fonts/75dpi:unscaled, - /usr/share/X11/fonts/Type1, - /usr/share/fonts/default/Type1, - /usr/share/fonts/default/ghostscript -.fi - -.SH FILES -.TP 30 -.I /etc/X\fBn\fP.hosts -Initial access control list for display number \fBn\fP -.TP 30 -.IR __datadir__/fonts/X11/misc , __datadir__/fonts/X11/75dpi , __datadir__/fonts/X11/100dpi -Bitmap font directories -.TP 30 -.IR __datadir__/fonts/X11/TTF , __datadir__/fonts/X11/Type1 -Outline font directories -.TP 30 -.I /tmp/.X11-unix/X\fBn\fP -Unix domain socket for display number \fBn\fP -.TP 30 -.I /usr/adm/X\fBn\fPmsgs -Error log file for display number \fBn\fP if run from \fIinit\fP(__adminmansuffix__) -.TP 30 -.I __projectroot__/lib/X11/xdm/xdm-errors -Default error log file if the server is run from \fIxdm\fP(1) -.SH "SEE ALSO" -General information: \fIX\fP(__miscmansuffix__) -.PP -Protocols: -.I "X Window System Protocol," -.I "The X Font Service Protocol," -.I "X Display Manager Control Protocol" -.PP -Fonts: \fIbdftopcf\fP(1), \fImkfontdir\fP(1), \fImkfontscale\fP(1), -\fIxfs\fP(1), \fIxlsfonts\fP(1), \fIxfontsel\fP(1), \fIxfd\fP(1), -.I "X Logical Font Description Conventions" -.PP -Security: \fIXsecurity\fP(__miscmansuffix__), \fIxauth\fP(1), \fIXau\fP(1), -\fIxdm\fP(1), \fIxhost\fP(1), \fIxfwp\fP(1), -.I "Security Extension Specification" -.PP -Starting the server: \fIstartx\fP(1), \fIxdm\fP(1), \fIxinit\fP(1) -.PP -Controlling the server once started: \fIxset\fP(1), \fIxsetroot\fP(1), -\fIxhost\fP(1) -.PP -Server-specific man pages: -\fIXorg\fP(1), \fIXdmx\fP(1), \fIXephyr\fP(1), \fIXnest\fP(1), -\fIXvfb\fP(1), \fIXDarwin\fP(1), \fIXWin\fP(1). -.PP -Server internal documentation: -.I "Definition of the Porting Layer for the X v11 Sample Server" -.SH AUTHORS -The sample server was originally written by Susan Angebranndt, Raymond -Drewry, Philip Karlton, and Todd Newman, from Digital Equipment -Corporation, with support from a large cast. It has since been -extensively rewritten by Keith Packard and Bob Scheifler, from MIT. -Dave Wiggins took over post-R5 and made substantial improvements. +.\" $Xorg: Xserver.man,v 1.4 2001/02/09 02:04:07 xorgcvs Exp $
+.\" $XdotOrg: xserver/xorg/doc/Xserver.man.pre,v 1.4 2005/12/23 20:11:12 alanc Exp $
+.\" Copyright 1984 - 1991, 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/Xserver.man,v 3.31 2004/01/10 22:27:46 dawes Exp $
+.\" shorthand for double quote that works everywhere.
+.ds q \N'34'
+.TH XSERVER 1 __xorgversion__
+.SH NAME
+Xserver \- X Window System display server
+.SH SYNOPSIS
+.B X
+[option ...]
+.SH DESCRIPTION
+.I X
+is the generic name for the X Window System display server. It is
+frequently a link or a copy of the appropriate server binary for
+driving the most frequently used server on a given machine.
+.SH "STARTING THE SERVER"
+The X server is usually started from the X Display Manager program
+\fIxdm\fP(1) or a similar display manager program.
+This utility is run from the system boot files and takes care of keeping
+the server running, prompting for usernames and passwords, and starting up
+the user sessions.
+.PP
+Installations that run more than one window system may need to use the
+\fIxinit\fP(1) utility instead of a display manager. However, \fIxinit\fP is
+to be considered a tool for building startup scripts and is not
+intended for use by end users. Site administrators are \fBstrongly\fP
+urged to use a display manager, or build other interfaces for novice users.
+.PP
+The X server may also be started directly by the user, though this
+method is usually reserved for testing and is not recommended for
+normal operation. On some platforms, the user must have special
+permission to start the X server, often because access to certain
+devices (e.g. \fI/dev/mouse\fP) is restricted.
+.PP
+When the X server starts up, it typically takes over the display. If
+you are running on a workstation whose console is the display, you may
+not be able to log into the console while the server is running.
+.SH OPTIONS
+Many X servers have device-specific command line options. See the manual
+pages for the individual servers for more details; a list of
+server-specific manual pages is provided in the SEE ALSO section below.
+.PP
+All of the X servers accept the command line options described below.
+Some X servers may have alternative ways of providing the parameters
+described here, but the values provided via the command line options
+should override values specified via other mechanisms.
+.TP 8
+.B :\fIdisplaynumber\fP
+The X server runs as the given \fIdisplaynumber\fP, which by default is 0.
+If multiple X servers are to run simultaneously on a host, each must have
+a unique display number. See the DISPLAY
+NAMES section of the \fIX\fP(__miscmansuffix__) manual page to learn how to
+specify which display number clients should try to use.
+.TP 8
+.B \-a \fInumber\fP
+sets pointer acceleration (i.e. the ratio of how much is reported to how much
+the user actually moved the pointer).
+.TP 8
+.B \-ac
+disables host-based access control mechanisms. Enables access by any host,
+and permits any host to modify the access control list.
+Use with extreme caution.
+This option exists primarily for running test suites remotely.
+.TP 8
+.B \-audit \fIlevel\fP
+sets the audit trail level. The default level is 1, meaning only connection
+rejections are reported. Level 2 additionally reports all successful
+connections and disconnects. Level 4 enables messages from the
+SECURITY extension, if present, including generation and revocation of
+authorizations and violations of the security policy.
+Level 0 turns off the audit trail.
+Audit lines are sent as standard error output.
+.TP 8
+.B \-auth \fIauthorization-file\fP
+specifies a file which contains a collection of authorization records used
+to authenticate access. See also the \fIxdm\fP(1) and
+\fIXsecurity\fP(__miscmansuffix__) manual pages.
+.TP 8
+.B \-br
+sets the default root window to solid black instead of the standard root weave
+pattern. This is the default unless -retro or -wr is specified.
+.TP 8
+.B \-bs
+disables backing store support on all screens.
+.TP 8
+.B \-c
+turns off key-click.
+.TP 8
+.B c \fIvolume\fP
+sets key-click volume (allowable range: 0-100).
+.TP 8
+.B \-cc \fIclass\fP
+sets the visual class for the root window of color screens.
+The class numbers are as specified in the X protocol.
+Not obeyed by all servers.
+.TP 8
+.B \-core
+causes the server to generate a core dump on fatal errors.
+.TP 8
+.B \-deferglyphs \fIwhichfonts\fP
+specifies the types of fonts for which the server should attempt to use
+deferred glyph loading. \fIwhichfonts\fP can be all (all fonts),
+none (no fonts), or 16 (16 bit fonts only).
+.TP 8
+.B \-dpi \fIresolution\fP
+sets the resolution for all screens, in dots per inch.
+To be used when the server cannot determine the screen size(s) from the
+hardware.
+.TP 8
+.B dpms
+enables DPMS (display power management services), where supported. The
+default state is platform and configuration specific.
+.TP 8
+.B \-dpms
+disables DPMS (display power management services). The default state
+is platform and configuration specific.
+.TP 8
+.BI \-extension extensionName
+disables named extension. If an unknown extension name is specified,
+a list of accepted extension names is printed.
+.TP 8
+.BI \+extension extensionName
+enables named extension. If an unknown extension name is specified,
+a list of accepted extension names is printed.
+.TP 8
+.B \-f \fIvolume\fP
+sets feep (bell) volume (allowable range: 0-100).
+.TP 8
+.B \-fc \fIcursorFont\fP
+sets default cursor font.
+.TP 8
+.B \-fn \fIfont\fP
+sets the default font.
+.TP 8
+.B \-fp \fIfontPath\fP
+sets the search path for fonts. This path is a comma separated list
+of directories which the X server searches for font databases.
+See the FONTS section of this manual page for more information and the default
+list.
+.TP 8
+.B \-help
+prints a usage message.
+.TP 8
+.B \-I
+causes all remaining command line arguments to be ignored.
+.TP 8
+.B \-maxbigreqsize \fIsize\fP
+sets the maximum big request to
+.I size
+MB.
+.TP 8
+.B \-nocursor
+disable the display of the pointer cursor.
+.TP 8
+.B \-nolisten \fItrans-type\fP
+disables a transport type. For example, TCP/IP connections can be disabled
+with
+.BR "\-nolisten tcp" .
+This option may be issued multiple times to disable listening to different
+transport types.
+.TP 8
+.B \-noreset
+prevents a server reset when the last client connection is closed. This
+overrides a previous
+.B \-terminate
+command line option.
+.TP 8
+.B \-p \fIminutes\fP
+sets screen-saver pattern cycle time in minutes.
+.TP 8
+.B \-pn
+permits the server to continue running if it fails to establish all of
+its well-known sockets (connection points for clients), but
+establishes at least one. This option is set by default.
+.TP 8
+.B \-nopn
+causes the server to exit if it fails to establish all of its well-known
+sockets (connection points for clients).
+.TP 8
+.B \-r
+turns off auto-repeat.
+.TP 8
+.B r
+turns on auto-repeat.
+.TP 8
+.B -retro
+starts the stipple with the classic stipple and cursor visible. The default
+is to start with a black root window, and to suppress display of the cursor
+until the first time an application calls XDefineCursor(). For the Xorg
+server, this also sets the default for the DontZap option to FALSE. For
+kdrive servers, this implies -zap.
+.TP 8
+.B \-s \fIminutes\fP
+sets screen-saver timeout time in minutes.
+.TP 8
+.B \-su
+disables save under support on all screens.
+.TP 8
+.B \-t \fInumber\fP
+sets pointer acceleration threshold in pixels (i.e. after how many pixels
+pointer acceleration should take effect).
+.TP 8
+.B \-terminate
+causes the server to terminate at server reset, instead of continuing to run.
+This overrides a previous
+.B \-noreset
+command line option.
+.TP 8
+.B \-to \fIseconds\fP
+sets default connection timeout in seconds.
+.TP 8
+.B \-tst
+disables all testing extensions (e.g., XTEST, XTrap, XTestExtension1, RECORD).
+.TP 8
+.B tty\fIxx\fP
+ignored, for servers started the ancient way (from init).
+.TP 8
+.B v
+sets video-off screen-saver preference.
+.TP 8
+.B \-v
+sets video-on screen-saver preference.
+.TP 8
+.B \-wm
+forces the default backing-store of all windows to be WhenMapped. This
+is a backdoor way of getting backing-store to apply to all windows.
+Although all mapped windows will have backing store, the backing store
+attribute value reported by the server for a window will be the last
+value established by a client. If it has never been set by a client,
+the server will report the default value, NotUseful. This behavior is
+required by the X protocol, which allows the server to exceed the
+client's backing store expectations but does not provide a way to tell
+the client that it is doing so.
+.TP 8
+.B \-wr
+sets the default root window to solid white instead of the standard root weave
+pattern.
+.TP 8
+.B \-x \fIextension\fP
+loads the specified extension at init.
+This is a no-op for most implementations.
+.TP 8
+.B [+-]xinerama
+enables(+) or disables(-) the XINERAMA extension. The default state is
+platform and configuration specific.
+.SH SERVER DEPENDENT OPTIONS
+Some X servers accept the following options:
+.TP 8
+.B \-ld \fIkilobytes\fP
+sets the data space limit of the server to the specified number of kilobytes.
+A value of zero makes the data size as large as possible. The default value
+of \-1 leaves the data space limit unchanged.
+.TP 8
+.B \-lf \fIfiles\fP
+sets the number-of-open-files limit of the server to the specified number.
+A value of zero makes the limit as large as possible. The default value
+of \-1 leaves the limit unchanged.
+.TP 8
+.B \-ls \fIkilobytes\fP
+sets the stack space limit of the server to the specified number of kilobytes.
+A value of zero makes the stack size as large as possible. The default value
+of \-1 leaves the stack space limit unchanged.
+.TP 8
+.B \-logo
+turns on the X Window System logo display in the screen-saver.
+There is currently no way to change this from a client.
+.TP 8
+.B nologo
+turns off the X Window System logo display in the screen-saver.
+There is currently no way to change this from a client.
+.TP 8
+.B \-render
+.BR default | mono | gray | color
+sets the color allocation policy that will be used by the render extension.
+.RS 8
+.TP 8
+.I default
+selects the default policy defined for the display depth of the X
+server.
+.TP 8
+.I mono
+don't use any color cell.
+.TP 8
+.I gray
+use a gray map of 13 color cells for the X render extension.
+.TP 8
+.I color
+use a color cube of at most 4*4*4 colors (that is 64 color cells).
+.RE
+.TP 8
+.B \-dumbSched
+disables smart scheduling on platforms that support the smart scheduler.
+.TP
+.B \-schedInterval \fIinterval\fP
+sets the smart scheduler's scheduling interval to
+.I interval
+milliseconds.
+.SH XDMCP OPTIONS
+X servers that support XDMCP have the following options.
+See the \fIX Display Manager Control Protocol\fP specification for more
+information.
+.TP 8
+.B \-query \fIhostname\fP
+enables XDMCP and sends Query packets to the specified
+.IR hostname .
+.TP 8
+.B \-broadcast
+enable XDMCP and broadcasts BroadcastQuery packets to the network. The
+first responding display manager will be chosen for the session.
+.TP 8
+.B \-multicast [\fIaddress\fP [\fIhop count\fP]]
+Enable XDMCP and multicast BroadcastQuery packets to the network.
+The first responding display manager is chosen for the session. If an
+address is specified, the multicast is sent to that address. If no
+address is specified, the multicast is sent to the default XDMCP IPv6
+multicast group. If a hop count is specified, it is used as the maximum
+hop count for the multicast. If no hop count is specified, the multicast
+is set to a maximum of 1 hop, to prevent the multicast from being routed
+beyond the local network.
+.TP 8
+.B \-indirect \fIhostname\fP
+enables XDMCP and send IndirectQuery packets to the specified
+.IR hostname .
+.TP 8
+.B \-port \fIport-number\fP
+uses the specified \fIport-number\fP for XDMCP packets, instead of the
+default. This option must be specified before any \-query, \-broadcast,
+\-multicast, or \-indirect options.
+.TP 8
+.B \-from \fIlocal-address\fP
+specifies the local address to connect from (useful if the connecting host
+has multiple network interfaces). The \fIlocal-address\fP may be expressed
+in any form acceptable to the host platform's \fIgethostbyname\fP(3)
+implementation.
+.TP 8
+.B \-once
+causes the server to terminate (rather than reset) when the XDMCP session
+ends.
+.TP 8
+.B \-class \fIdisplay-class\fP
+XDMCP has an additional display qualifier used in resource lookup for
+display-specific options. This option sets that value, by default it
+is "MIT-Unspecified" (not a very useful value).
+.TP 8
+.B \-cookie \fIxdm-auth-bits\fP
+When testing XDM-AUTHENTICATION-1, a private key is shared between the
+server and the manager. This option sets the value of that private
+data (not that it is very private, being on the command line!).
+.TP 8
+.B \-displayID \fIdisplay-id\fP
+Yet another XDMCP specific value, this one allows the display manager to
+identify each display so that it can locate the shared key.
+.SH XKEYBOARD OPTIONS
+X servers that support the XKEYBOARD (a.k.a. \*qXKB\*q) extension accept the
+following options. All layout files specified on the command line must be
+located in the XKB base directory or a subdirectory, and specified as the
+relative path from the XKB base directory. The default XKB base directory is
+.IR __projectroot__/lib/X11/xkb .
+.TP 8
+.BR [+-]accessx " [ \fItimeout\fP [ \fItimeout_mask\fP [ \fIfeedback\fP [ \fIoptions_mask\fP ] ] ] ]"
+enables(+) or disables(-) AccessX key sequences.
+.TP 8
+.B \-xkbdir \fIdirectory\fP
+base directory for keyboard layout files. This option is not available
+for setuid X servers (i.e., when the X server's real and effective uids
+are different).
+.TP 8
+.B \-ardelay \fImilliseconds\fP
+sets the autorepeat delay (length of time in milliseconds that a key must
+be depressed before autorepeat starts).
+.TP 8
+.B \-arinterval \fImilliseconds\fP
+sets the autorepeat interval (length of time in milliseconds that should
+elapse between autorepeat-generated keystrokes).
+.TP 8
+.B \-xkbmap \fIfilename\fP
+loads keyboard description in \fIfilename\fP on server startup.
+.SH "NETWORK CONNECTIONS"
+The X server supports client connections via a platform-dependent subset of
+the following transport types: TCP\/IP, Unix Domain sockets, DECnet,
+and several varieties of SVR4 local connections. See the DISPLAY
+NAMES section of the \fIX\fP(__miscmansuffix__) manual page to learn how to
+specify which transport type clients should try to use.
+.SH GRANTING ACCESS
+The X server implements a platform-dependent subset of the following
+authorization protocols: MIT-MAGIC-COOKIE-1, XDM-AUTHORIZATION-1,
+XDM-AUTHORIZATION-2, SUN-DES-1, and MIT-KERBEROS-5. See the
+\fIXsecurity\fP(__miscmansuffix__) manual page for information on the
+operation of these protocols.
+.PP
+Authorization data required by the above protocols is passed to the
+server in a private file named with the \fB\-auth\fP command line
+option. Each time the server is about to accept the first connection
+after a reset (or when the server is starting), it reads this file.
+If this file contains any authorization records, the local host is not
+automatically allowed access to the server, and only clients which
+send one of the authorization records contained in the file in the
+connection setup information will be allowed access. See the
+\fIXau\fP manual page for a description of the binary format of this
+file. See \fIxauth\fP(1) for maintenance of this file, and distribution
+of its contents to remote hosts.
+.PP
+The X server also uses a host-based access control list for deciding
+whether or not to accept connections from clients on a particular machine.
+If no other authorization mechanism is being used,
+this list initially consists of the host on which the server is running as
+well as any machines listed in the file \fI/etc/X\fBn\fI.hosts\fR, where
+\fBn\fP is the display number of the server. Each line of the file should
+contain either an Internet hostname (e.g. expo.lcs.mit.edu) or a DECnet
+hostname in double colon format (e.g. hydra::) or a complete name in the format
+\fIfamily\fP:\fIname\fP as described in the \fIxhost\fP(1) manual page.
+There should be no leading or trailing spaces on any lines. For example:
+.sp
+.in +8
+.nf
+joesworkstation
+corporate.company.com
+star::
+inet:bigcpu
+local:
+.fi
+.in -8
+.PP
+Users can add or remove hosts from this list and enable or disable access
+control using the \fIxhost\fP command from the same machine as the server.
+.PP
+If the X FireWall Proxy (\fIxfwp\fP) is being used without a sitepolicy,
+host-based authorization must be turned on for clients to be able to
+connect to the X server via the \fIxfwp\fP. If \fIxfwp\fP is run without
+a configuration file and thus no sitepolicy is defined, if \fIxfwp\fP
+is using an X server where xhost + has been run to turn off host-based
+authorization checks, when a client tries to connect to this X server
+via \fIxfwp\fP, the X server will deny the connection. See \fIxfwp\fP(1)
+for more information about this proxy.
+.PP
+The X protocol intrinsically does not have any notion of window operation
+permissions or place any restrictions on what a client can do; if a program can
+connect to a display, it has full run of the screen.
+X servers that support the SECURITY extension fare better because clients
+can be designated untrusted via the authorization they use to connect; see
+the \fIxauth\fP(1) manual page for details. Restrictions are imposed
+on untrusted clients that curtail the mischief they can do. See the SECURITY
+extension specification for a complete list of these restrictions.
+.PP
+Sites that have better
+authentication and authorization systems might wish to make
+use of the hooks in the libraries and the server to provide additional
+security models.
+.SH SIGNALS
+The X server attaches special meaning to the following signals:
+.TP 8
+.I SIGHUP
+This signal causes the server to close all existing connections, free all
+resources, and restore all defaults. It is sent by the display manager
+whenever the main user's main application (usually an \fIxterm\fP or window
+manager) exits to force the server to clean up and prepare for the next
+user.
+.TP 8
+.I SIGTERM
+This signal causes the server to exit cleanly.
+.TP 8
+.I SIGUSR1
+This signal is used quite differently from either of the above. When the
+server starts, it checks to see if it has inherited SIGUSR1 as SIG_IGN
+instead of the usual SIG_DFL. In this case, the server sends a SIGUSR1 to
+its parent process after it has set up the various connection schemes.
+\fIXdm\fP uses this feature to recognize when connecting to the server
+is possible.
+.SH FONTS
+The X server can obtain fonts from directories and/or from font servers.
+The list of directories and font servers
+the X server uses when trying to open a font is controlled
+by the \fIfont path\fP.
+.LP
+The default font path is
+__default_font_path__ .
+.LP
+A special kind of directory can be specified using the \fBcatalogue\fP:
+prefix. Directories specified this way can contain symlinks pointing to the
+real font directories. See the FONTPATH.D section for details.
+.LP
+The font path can be set with the \fB\-fp\fP option or by \fIxset\fP(1)
+after the server has started.
+.SH "FONTPATH.D"
+You can specify a special kind of font path in the form \fBcatalogue:<dir>\fR.
+The directory specified after the catalogue: prefix will be scanned for symlinks
+and each symlink destination will be added as a local fontfile FPE.
+.PP
+The symlink can be suffixed by attributes such as '\fBunscaled\fR', which
+will be passed through to the underlying fontfile FPE. The only exception is
+the newly introduced '\fBpri\fR' attribute, which will be used for ordering
+the font paths specified by the symlinks.
+
+An example configuration:
+
+.nf
+ 75dpi:unscaled:pri=20 \-> /usr/share/X11/fonts/75dpi
+ ghostscript:pri=60 \-> /usr/share/fonts/default/ghostscript
+ misc:unscaled:pri=10 \-> /usr/share/X11/fonts/misc
+ type1:pri=40 \-> /usr/share/X11/fonts/Type1
+ type1:pri=50 \-> /usr/share/fonts/default/Type1
+.fi
+
+This will add /usr/share/X11/fonts/misc as the first FPE with the attribute
+'unscaled', second FPE will be /usr/share/X11/fonts/75dpi, also with
+the attribute unscaled etc. This is functionally equivalent to setting
+the following font path:
+
+.nf
+ /usr/share/X11/fonts/misc:unscaled,
+ /usr/share/X11/fonts/75dpi:unscaled,
+ /usr/share/X11/fonts/Type1,
+ /usr/share/fonts/default/Type1,
+ /usr/share/fonts/default/ghostscript
+.fi
+
+.SH FILES
+.TP 30
+.I /etc/X\fBn\fP.hosts
+Initial access control list for display number \fBn\fP
+.TP 30
+.IR __datadir__/fonts/X11/misc , __datadir__/fonts/X11/75dpi , __datadir__/fonts/X11/100dpi
+Bitmap font directories
+.TP 30
+.IR __datadir__/fonts/X11/TTF , __datadir__/fonts/X11/Type1
+Outline font directories
+.TP 30
+.I /tmp/.X11-unix/X\fBn\fP
+Unix domain socket for display number \fBn\fP
+.TP 30
+.I /usr/adm/X\fBn\fPmsgs
+Error log file for display number \fBn\fP if run from \fIinit\fP(__adminmansuffix__)
+.TP 30
+.I __projectroot__/lib/X11/xdm/xdm-errors
+Default error log file if the server is run from \fIxdm\fP(1)
+.SH "SEE ALSO"
+General information: \fIX\fP(__miscmansuffix__)
+.PP
+Protocols:
+.I "X Window System Protocol,"
+.I "The X Font Service Protocol,"
+.I "X Display Manager Control Protocol"
+.PP
+Fonts: \fIbdftopcf\fP(1), \fImkfontdir\fP(1), \fImkfontscale\fP(1),
+\fIxfs\fP(1), \fIxlsfonts\fP(1), \fIxfontsel\fP(1), \fIxfd\fP(1),
+.I "X Logical Font Description Conventions"
+.PP
+Security: \fIXsecurity\fP(__miscmansuffix__), \fIxauth\fP(1), \fIXau\fP(1),
+\fIxdm\fP(1), \fIxhost\fP(1), \fIxfwp\fP(1),
+.I "Security Extension Specification"
+.PP
+Starting the server: \fIstartx\fP(1), \fIxdm\fP(1), \fIxinit\fP(1)
+.PP
+Controlling the server once started: \fIxset\fP(1), \fIxsetroot\fP(1),
+\fIxhost\fP(1), \fIxinput\fP(1), \fIxrandr\fP(1)
+.PP
+Server-specific man pages:
+\fIXorg\fP(1), \fIXdmx\fP(1), \fIXephyr\fP(1), \fIXnest\fP(1),
+\fIXvfb\fP(1), \fIXquartz\fP(1), \fIXWin\fP(1).
+.PP
+Server internal documentation:
+.I "Definition of the Porting Layer for the X v11 Sample Server"
+.SH AUTHORS
+The sample server was originally written by Susan Angebranndt, Raymond
+Drewry, Philip Karlton, and Todd Newman, from Digital Equipment
+Corporation, with support from a large cast. It has since been
+extensively rewritten by Keith Packard and Bob Scheifler, from MIT.
+Dave Wiggins took over post-R5 and made substantial improvements.
diff --git a/xorg-server/hw/vfb/InitInput.c b/xorg-server/hw/vfb/InitInput.c index 10bb6a599..64040c865 100644 --- a/xorg-server/hw/vfb/InitInput.c +++ b/xorg-server/hw/vfb/InitInput.c @@ -1,155 +1,153 @@ -/* - -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. - -*/ - -#ifdef HAVE_DIX_CONFIG_H -#include <dix-config.h> -#endif - -#include <X11/X.h> -#include "mi.h" -#include <X11/Xproto.h> -#include "scrnintstr.h" -#include "inputstr.h" -#include <X11/Xos.h> -#include "mibstore.h" -#include "mipointer.h" -#include "lk201kbd.h" -#include "xkbsrv.h" -#include <X11/keysym.h> -#include "xserver-properties.h" -#include "exevents.h" -#include "extinit.h" - -Bool -LegalModifier(unsigned int key, DeviceIntPtr pDev) -{ - return TRUE; -} - -void -ProcessInputEvents(void) -{ - mieqProcessInputEvents(); -} - -void DDXRingBell(int volume, int pitch, int duration) -{ -} - -#define VFB_MIN_KEY 8 -#define VFB_MAX_KEY 255 -KeySym map[MAP_LENGTH * LK201_GLYPHS_PER_KEY]; - -static int -vfbKeybdProc(DeviceIntPtr pDevice, int onoff) -{ - DevicePtr pDev = (DevicePtr)pDevice; - - switch (onoff) - { - case DEVICE_INIT: - InitKeyboardDeviceStruct(pDevice, NULL, NULL, NULL); - break; - case DEVICE_ON: - pDev->on = TRUE; - break; - case DEVICE_OFF: - pDev->on = FALSE; - break; - case DEVICE_CLOSE: - break; - } - return Success; -} - -static int -vfbMouseProc(DeviceIntPtr pDevice, int onoff) -{ -#define NBUTTONS 3 -#define NAXES 2 - - BYTE map[NBUTTONS + 1]; - DevicePtr pDev = (DevicePtr)pDevice; - Atom btn_labels[NBUTTONS] = {0}; - Atom axes_labels[NAXES] = {0}; - - switch (onoff) - { - case DEVICE_INIT: - map[1] = 1; - map[2] = 2; - map[3] = 3; - - btn_labels[0] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_LEFT); - btn_labels[1] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_MIDDLE); - btn_labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT); - - axes_labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_X); - axes_labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_Y); - - InitPointerDeviceStruct(pDev, map, NBUTTONS, btn_labels, - (PtrCtrlProcPtr)NoopDDA, GetMotionHistorySize(), NAXES, axes_labels); - break; - - case DEVICE_ON: - pDev->on = TRUE; - break; - - case DEVICE_OFF: - pDev->on = FALSE; - break; - - case DEVICE_CLOSE: - break; - } - return Success; - -#undef NBUTTONS -#undef NAXES -} - -void -InitInput(int argc, char *argv[]) -{ - DeviceIntPtr p, k; - Atom xiclass; - p = AddInputDevice(serverClient, vfbMouseProc, TRUE); - k = AddInputDevice(serverClient, vfbKeybdProc, TRUE); - RegisterPointerDevice(p); - xiclass = MakeAtom(XI_MOUSE, sizeof(XI_MOUSE) - 1, TRUE); - AssignTypeAndName(p, xiclass, "Xvfb mouse"); - RegisterKeyboardDevice(k); - xiclass = MakeAtom(XI_KEYBOARD, sizeof(XI_KEYBOARD) - 1, TRUE); - AssignTypeAndName(k, xiclass, "Xvfb keyboard"); - (void)mieqInit(); -} - -void -CloseInput (void) -{ -} +/*
+
+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.
+
+*/
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#include <X11/X.h>
+#include "mi.h"
+#include <X11/Xproto.h>
+#include "scrnintstr.h"
+#include "inputstr.h"
+#include <X11/Xos.h>
+#include "mibstore.h"
+#include "mipointer.h"
+#include "xkbsrv.h"
+#include <X11/keysym.h>
+#include "xserver-properties.h"
+#include "exevents.h"
+#include "extinit.h"
+
+Bool
+LegalModifier(unsigned int key, DeviceIntPtr pDev)
+{
+ return TRUE;
+}
+
+void
+ProcessInputEvents(void)
+{
+ mieqProcessInputEvents();
+}
+
+void DDXRingBell(int volume, int pitch, int duration)
+{
+}
+
+#define VFB_MIN_KEY 8
+#define VFB_MAX_KEY 255
+
+static int
+vfbKeybdProc(DeviceIntPtr pDevice, int onoff)
+{
+ DevicePtr pDev = (DevicePtr)pDevice;
+
+ switch (onoff)
+ {
+ case DEVICE_INIT:
+ InitKeyboardDeviceStruct(pDevice, NULL, NULL, NULL);
+ break;
+ case DEVICE_ON:
+ pDev->on = TRUE;
+ break;
+ case DEVICE_OFF:
+ pDev->on = FALSE;
+ break;
+ case DEVICE_CLOSE:
+ break;
+ }
+ return Success;
+}
+
+static int
+vfbMouseProc(DeviceIntPtr pDevice, int onoff)
+{
+#define NBUTTONS 3
+#define NAXES 2
+
+ BYTE map[NBUTTONS + 1];
+ DevicePtr pDev = (DevicePtr)pDevice;
+ Atom btn_labels[NBUTTONS] = {0};
+ Atom axes_labels[NAXES] = {0};
+
+ switch (onoff)
+ {
+ case DEVICE_INIT:
+ map[1] = 1;
+ map[2] = 2;
+ map[3] = 3;
+
+ btn_labels[0] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_LEFT);
+ btn_labels[1] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_MIDDLE);
+ btn_labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT);
+
+ axes_labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_X);
+ axes_labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_Y);
+
+ InitPointerDeviceStruct(pDev, map, NBUTTONS, btn_labels,
+ (PtrCtrlProcPtr)NoopDDA, GetMotionHistorySize(), NAXES, axes_labels);
+ break;
+
+ case DEVICE_ON:
+ pDev->on = TRUE;
+ break;
+
+ case DEVICE_OFF:
+ pDev->on = FALSE;
+ break;
+
+ case DEVICE_CLOSE:
+ break;
+ }
+ return Success;
+
+#undef NBUTTONS
+#undef NAXES
+}
+
+void
+InitInput(int argc, char *argv[])
+{
+ DeviceIntPtr p, k;
+ Atom xiclass;
+ p = AddInputDevice(serverClient, vfbMouseProc, TRUE);
+ k = AddInputDevice(serverClient, vfbKeybdProc, TRUE);
+ RegisterPointerDevice(p);
+ xiclass = MakeAtom(XI_MOUSE, sizeof(XI_MOUSE) - 1, TRUE);
+ AssignTypeAndName(p, xiclass, "Xvfb mouse");
+ RegisterKeyboardDevice(k);
+ xiclass = MakeAtom(XI_KEYBOARD, sizeof(XI_KEYBOARD) - 1, TRUE);
+ AssignTypeAndName(k, xiclass, "Xvfb keyboard");
+ (void)mieqInit();
+}
+
+void
+CloseInput (void)
+{
+}
diff --git a/xorg-server/hw/vfb/Makefile.am b/xorg-server/hw/vfb/Makefile.am index 4ac0c8f89..f7a8c24af 100644 --- a/xorg-server/hw/vfb/Makefile.am +++ b/xorg-server/hw/vfb/Makefile.am @@ -1,52 +1,51 @@ -bin_PROGRAMS = Xvfb -noinst_LIBRARIES = libfbcmap.a - -AM_CFLAGS = -DHAVE_DIX_CONFIG_H \ - -DNO_HW_ONLY_EXTS \ - -DNO_MODULE_EXTS \ - $(XVFBMODULES_CFLAGS) \ - $(DIX_CFLAGS) - -SRCS = InitInput.c \ - InitOutput.c \ - lk201kbd.h \ - $(top_srcdir)/Xext/dpmsstubs.c \ - $(top_srcdir)/Xi/stubs.c \ - $(top_srcdir)/mi/miinitext.c - -libfbcmap_a_CFLAGS = $(AM_CFLAGS) -libfbcmap_a_SOURCES = $(top_srcdir)/fb/fbcmap_mi.c - -Xvfb_SOURCES = $(SRCS) - -XVFB_LIBS = \ - @XVFB_LIBS@ \ - libfbcmap.a \ - $(MAIN_LIB) \ - $(XSERVER_LIBS) - -Xvfb_LDADD = $(XVFB_LIBS) $(XVFB_SYS_LIBS) $(XSERVER_SYS_LIBS) -Xvfb_DEPENDENCIES = $(XVFB_LIBS) -Xvfb_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG) - -# Man page -include $(top_srcdir)/cpprules.in - -appmandir = $(APP_MAN_DIR) - -appman_PRE = Xvfb.man -appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@) - -BUILT_SOURCES = $(appman_PRE) -CLEANFILES = $(appman_PRE) $(appman_DATA) - -SUFFIXES += .$(APP_MAN_SUFFIX) .man - -.man.$(APP_MAN_SUFFIX): - -$(AM_V_at)rm -f $@ - $(AM_V_at)$(LN_S) $< $@ - -EXTRA_DIST = Xvfb.man.pre - -relink: - $(AM_V_at)rm -f Xvfb$(EXEEXT) && $(MAKE) Xvfb$(EXEEXT) +bin_PROGRAMS = Xvfb
+noinst_LIBRARIES = libfbcmap.a
+
+AM_CFLAGS = -DHAVE_DIX_CONFIG_H \
+ -DNO_HW_ONLY_EXTS \
+ -DNO_MODULE_EXTS \
+ $(XVFBMODULES_CFLAGS) \
+ $(DIX_CFLAGS)
+
+SRCS = InitInput.c \
+ InitOutput.c \
+ $(top_srcdir)/Xext/dpmsstubs.c \
+ $(top_srcdir)/Xi/stubs.c \
+ $(top_srcdir)/mi/miinitext.c
+
+libfbcmap_a_CFLAGS = $(AM_CFLAGS)
+libfbcmap_a_SOURCES = $(top_srcdir)/fb/fbcmap_mi.c
+
+Xvfb_SOURCES = $(SRCS)
+
+XVFB_LIBS = \
+ @XVFB_LIBS@ \
+ libfbcmap.a \
+ $(MAIN_LIB) \
+ $(XSERVER_LIBS)
+
+Xvfb_LDADD = $(XVFB_LIBS) $(XVFB_SYS_LIBS) $(XSERVER_SYS_LIBS)
+Xvfb_DEPENDENCIES = $(XVFB_LIBS)
+Xvfb_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
+
+# Man page
+include $(top_srcdir)/cpprules.in
+
+appmandir = $(APP_MAN_DIR)
+
+appman_PRE = Xvfb.man
+appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@)
+
+BUILT_SOURCES = $(appman_PRE)
+CLEANFILES = $(appman_PRE) $(appman_DATA)
+
+SUFFIXES += .$(APP_MAN_SUFFIX) .man
+
+.man.$(APP_MAN_SUFFIX):
+ -$(AM_V_at)rm -f $@
+ $(AM_V_at)$(LN_S) $< $@
+
+EXTRA_DIST = Xvfb.man.pre
+
+relink:
+ $(AM_V_at)rm -f Xvfb$(EXEEXT) && $(MAKE) Xvfb$(EXEEXT)
diff --git a/xorg-server/hw/vfb/lk201kbd.h b/xorg-server/hw/vfb/lk201kbd.h deleted file mode 100644 index d0198d06b..000000000 --- a/xorg-server/hw/vfb/lk201kbd.h +++ /dev/null @@ -1,158 +0,0 @@ -/*********************************************************** - -Copyright 1987, 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 Digital Equipment Corporation, Maynard, Massachusetts. - - 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 notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE 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 MIN_LK201_KEY 86 -#define MAX_LK201_KEY 251 -#define LK201_GLYPHS_PER_KEY 2 - -#define KEY_F1 86 -#define KEY_F2 87 -#define KEY_F3 88 -#define KEY_F4 89 -#define KEY_F5 90 -#define KEY_F6 100 -#define KEY_F7 101 -#define KEY_F8 102 -#define KEY_F9 103 -#define KEY_F10 104 -#define KEY_F11 113 -#define KEY_F12 114 -#define KEY_F13 115 -#define KEY_F14 116 -#define KEY_HELP 124 -#define KEY_MENU 125 -#define KEY_F17 128 -#define KEY_F18 129 -#define KEY_F19 130 -#define KEY_F20 131 -#define KEY_FIND 138 -#define KEY_INSERT_HERE 139 -#define KEY_REMOVE 140 -#define KEY_SELECT 141 -#define KEY_PREV_SCREEN 142 -#define KEY_NEXT_SCREEN 143 -#define KEY_KP_0 146 /* key pad */ -#define KEY_KP_PERIOD 148 /* key pad */ -#define KEY_KP_ENTER 149 /* key pad */ -#define KEY_KP_1 150 /* key pad */ -#define KEY_KP_2 151 /* key pad */ -#define KEY_KP_3 152 /* key pad */ -#define KEY_KP_4 153 /* key pad */ -#define KEY_KP_5 154 /* key pad */ -#define KEY_KP_6 155 /* key pad */ -#define KEY_KP_COMMA 156 /* key pad */ -#define KEY_KP_7 157 /* key pad */ -#define KEY_KP_8 158 /* key pad */ -#define KEY_KP_9 159 /* key pad */ -#define KEY_KP_HYPHEN 160 -#define KEY_KP_PF1 161 -#define KEY_KP_PF2 162 -#define KEY_KP_PF3 163 -#define KEY_KP_PF4 164 -#define KEY_LEFT 167 -#define KEY_RIGHT 168 -#define KEY_DOWN 169 -#define KEY_UP 170 -#define KEY_SHIFT 174 -#define KEY_CTRL 175 -#define KEY_LOCK 176 -#define KEY_COMPOSE 177 -#define KEY_APPLE 177 -#define KEY_META 177 -#define KEY_DELETE 188 -#define KEY_RETURN 189 -#define KEY_TAB 190 -#define KEY_TILDE 191 -#define KEY_TR_1 192 /* Top Row */ -#define KEY_Q 193 -#define KEY_A 194 -#define KEY_Z 195 -#define KEY_TR_2 197 -#define KEY_W 198 -#define KEY_S 199 -#define KEY_X 200 -#define KEY_LANGLE_RANGLE 201 /* xxx */ -#define KEY_TR_3 203 -#define KEY_E 204 -#define KEY_D 205 -#define KEY_C 206 -#define KEY_TR_4 208 -#define KEY_R 209 -#define KEY_F 210 -#define KEY_V 211 -#define KEY_SPACE 212 -#define KEY_TR_5 214 -#define KEY_T 215 -#define KEY_G 216 -#define KEY_B 217 -#define KEY_TR_6 219 -#define KEY_Y 220 -#define KEY_H 221 -#define KEY_N 222 -#define KEY_TR_7 224 -#define KEY_U 225 -#define KEY_J 226 -#define KEY_M 227 -#define KEY_TR_8 229 -#define KEY_I 230 -#define KEY_K 231 -#define KEY_COMMA 232 /* xxx */ -#define KEY_TR_9 234 -#define KEY_O 235 -#define KEY_L 236 -#define KEY_PERIOD 237 /* xxx */ -#define KEY_TR_0 239 -#define KEY_P 240 -#define KEY_SEMICOLON 242 /* xxx */ -#define KEY_QMARK 243 -#define KEY_PLUS 245 /* xxx */ -#define KEY_RBRACE 246 -#define KEY_VBAR 247 /* xxx */ -#define KEY_UBAR 249 /* xxx */ -#define KEY_LBRACE 250 -#define KEY_QUOTE 251 diff --git a/xorg-server/hw/xfree86/os-support/solaris/sun_init.c b/xorg-server/hw/xfree86/os-support/solaris/sun_init.c index 82df2e9dd..4716da93e 100644 --- a/xorg-server/hw/xfree86/os-support/solaris/sun_init.c +++ b/xorg-server/hw/xfree86/os-support/solaris/sun_init.c @@ -33,8 +33,21 @@ # include <sys/kd.h>
#endif
+/*
+ * Applications see VT number as consecutive integers starting from 1.
+ * VT number VT device
+ * -------------------------------------------------------
+ * 1 : /dev/vt/0 (Alt + Ctrl + F1)
+ * 2 : /dev/vt/2 (Alt + Ctrl + F2)
+ * 3 : /dev/vt/3 (Alt + Ctrl + F3)
+ * ... ...
+ */
+#define CONSOLE_VTNO 1
+#define SOL_CONSOLE_DEV "/dev/console"
+
static Bool KeepTty = FALSE;
static Bool Protect0 = FALSE;
+static Bool UseConsole = FALSE;
#ifdef HAS_USL_VTS
static int VTnum = -1;
static int xf86StartVT = -1;
@@ -112,8 +125,30 @@ xf86OpenConsole(void) vtEnabled = 0;
}
}
+#endif /* HAS_USL_VTS */
+ if (UseConsole)
+ {
+ strlcpy(consoleDev, SOL_CONSOLE_DEV, sizeof(consoleDev));
+
+#ifdef HAS_USL_VTS
+ xf86Info.vtno = CONSOLE_VTNO;
+ if (vtEnabled == 0)
+ {
+ xf86StartVT = 0;
+ }
+ else
+ {
+ if (ioctl(fd, VT_GETSTATE, &vtinfo) < 0)
+ FatalError("xf86OpenConsole: Cannot determine current VT\n");
+ xf86StartVT = vtinfo.v_active;
+ }
+#endif /* HAS_USL_VTS */
+ goto OPENCONSOLE;
+ }
+
+#ifdef HAS_USL_VTS
if (vtEnabled == 0)
{
/* VT not enabled - kernel too old or Sparc platforms
@@ -123,32 +158,31 @@ xf86OpenConsole(void) xf86StartVT = 0;
xf86Info.vtno = 0;
strlcpy(consoleDev, xf86SolarisFbDev, sizeof(consoleDev));
+ goto OPENCONSOLE;
}
- else
- {
- if (ioctl(fd, VT_GETSTATE, &vtinfo) < 0)
- FatalError("xf86OpenConsole: Cannot determine current VT\n");
- xf86StartVT = vtinfo.v_active;
+ if (ioctl(fd, VT_GETSTATE, &vtinfo) < 0)
+ FatalError("xf86OpenConsole: Cannot determine current VT\n");
- if (VTnum != -1)
- {
- xf86Info.vtno = VTnum;
- from = X_CMDLINE;
- }
- else
+ xf86StartVT = vtinfo.v_active;
+
+ if (VTnum != -1)
+ {
+ xf86Info.vtno = VTnum;
+ from = X_CMDLINE;
+ }
+ else
+ {
+ if ((ioctl(fd, VT_OPENQRY, &xf86Info.vtno) < 0) ||
+ (xf86Info.vtno == -1))
{
- if ((ioctl(fd, VT_OPENQRY, &xf86Info.vtno) < 0) ||
- (xf86Info.vtno == -1))
- {
- FatalError("xf86OpenConsole: Cannot find a free VT\n");
- }
+ FatalError("xf86OpenConsole: Cannot find a free VT\n");
}
-
- xf86Msg(from, "using VT number %d\n\n", xf86Info.vtno);
- snprintf(consoleDev, PATH_MAX, "/dev/vt/%d", xf86Info.vtno);
}
+ xf86Msg(from, "using VT number %d\n\n", xf86Info.vtno);
+ snprintf(consoleDev, PATH_MAX, "/dev/vt/%d", xf86Info.vtno);
+
if (fd != -1)
{
close(fd);
@@ -156,6 +190,7 @@ xf86OpenConsole(void) #endif /* HAS_USL_VTS */
+OPENCONSOLE:
if (!KeepTty)
setpgrp();
@@ -163,11 +198,10 @@ xf86OpenConsole(void) FatalError("xf86OpenConsole: Cannot open %s (%s)\n",
consoleDev, strerror(errno));
-#ifdef HAS_USL_VTS
-
- /* Change ownership of the vt */
+ /* Change ownership of the vt or console */
chown(consoleDev, getuid(), getgid());
+#ifdef HAS_USL_VTS
if (vtEnabled)
{
/*
@@ -179,6 +213,13 @@ xf86OpenConsole(void) if (ioctl(xf86Info.consoleFd, VT_WAITACTIVE, xf86Info.vtno) != 0)
xf86Msg(X_WARNING, "xf86OpenConsole: VT_WAITACTIVE failed\n");
+#ifdef VT_SET_CONSUSER /* added in snv_139 */
+ if (strcmp(display, "0") == 0)
+ if (ioctl(xf86Info.consoleFd, VT_SET_CONSUSER) != 0)
+ xf86Msg(X_WARNING,
+ "xf86OpenConsole: VT_SET_CONSUSER failed\n");
+#endif
+
if (ioctl(xf86Info.consoleFd, VT_GETMODE, &VT) < 0)
FatalError("xf86OpenConsole: VT_GETMODE failed\n");
@@ -220,6 +261,13 @@ xf86OpenConsole(void) if (ioctl(xf86Info.consoleFd, VT_WAITACTIVE, xf86Info.vtno) != 0)
xf86Msg(X_WARNING, "xf86OpenConsole: VT_WAITACTIVE failed\n");
+#ifdef VT_SET_CONSUSER /* added in snv_139 */
+ if (strcmp(display, "0") == 0)
+ if (ioctl(xf86Info.consoleFd, VT_SET_CONSUSER) != 0)
+ xf86Msg(X_WARNING,
+ "xf86OpenConsole: VT_SET_CONSUSER failed\n");
+#endif
+
/*
* If the server doesn't have the VT when the reset occurs,
* this is to make sure we don't continue until the activate
@@ -330,6 +378,15 @@ xf86ProcessArgument(int argc, char **argv, int i) return 1;
}
+ /*
+ * Use /dev/console as the console device.
+ */
+ if (!strcmp(argv[i], "-C"))
+ {
+ UseConsole = TRUE;
+ return 1;
+ }
+
#ifdef HAS_USL_VTS
if ((argv[i][0] == 'v') && (argv[i][1] == 't'))
@@ -364,4 +421,5 @@ void xf86UseMsg() ErrorF("-dev <fb> Framebuffer device\n");
ErrorF("-keeptty Don't detach controlling tty\n");
ErrorF(" (for debugging only)\n");
+ ErrorF("-C Use /dev/console as the console device\n");
}
diff --git a/xorg-server/include/dix.h b/xorg-server/include/dix.h index 7fe4407e3..254ddb3f4 100644 --- a/xorg-server/include/dix.h +++ b/xorg-server/include/dix.h @@ -300,7 +300,7 @@ extern _X_EXPORT Bool ValidAtom( extern _X_EXPORT const char *NameForAtom(
Atom /*atom*/);
-extern _X_EXPORT void AtomError(void);
+extern _X_EXPORT void AtomError(void) _X_NORETURN;
extern _X_EXPORT void FreeAllAtoms(void);
diff --git a/xorg-server/include/dixstruct.h b/xorg-server/include/dixstruct.h index 5b1a6981d..8f365f6ed 100644 --- a/xorg-server/include/dixstruct.h +++ b/xorg-server/include/dixstruct.h @@ -1,189 +1,189 @@ -/*********************************************************** -Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. - - 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 notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE 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. - -******************************************************************/ - -#ifndef DIXSTRUCT_H -#define DIXSTRUCT_H - -#include "dix.h" -#include "resource.h" -#include "cursor.h" -#include "gc.h" -#include "pixmap.h" -#include "privates.h" -#include <X11/Xmd.h> - -/* - * direct-mapped hash table, used by resource manager to store - * translation from client ids to server addresses. - */ - -extern _X_EXPORT CallbackListPtr ClientStateCallback; - -typedef struct { - ClientPtr client; - xConnSetupPrefix *prefix; - xConnSetup *setup; -} NewClientInfoRec; - -typedef void (*ReplySwapPtr) ( - ClientPtr /* pClient */, - int /* size */, - void * /* pbuf */); - -extern _X_EXPORT void ReplyNotSwappd ( - ClientPtr /* pClient */, - int /* size */, - void * /* pbuf */); - -typedef enum {ClientStateInitial, - ClientStateAuthenticating, - ClientStateRunning, - ClientStateRetained, - ClientStateGone, - ClientStateCheckingSecurity, - ClientStateCheckedSecurity} ClientState; - -#ifdef XFIXES -typedef struct _saveSet { - struct _Window *windowPtr; - Bool toRoot; - Bool map; -} SaveSetElt; -#define SaveSetWindow(ss) ((ss).windowPtr) -#define SaveSetToRoot(ss) ((ss).toRoot) -#define SaveSetShouldMap(ss) ((ss).map) -#define SaveSetAssignWindow(ss,w) ((ss).windowPtr = (w)) -#define SaveSetAssignToRoot(ss,tr) ((ss).toRoot = (tr)) -#define SaveSetAssignMap(ss,m) ((ss).map = (m)) -#else -typedef struct _Window *SaveSetElt; -#define SaveSetWindow(ss) (ss) -#define SaveSetToRoot(ss) FALSE -#define SaveSetShouldMap(ss) TRUE -#define SaveSetAssignWindow(ss,w) ((ss) = (w)) -#define SaveSetAssignToRoot(ss,tr) -#define SaveSetAssignMap(ss,m) -#endif - -typedef struct _Client { - int index; - Mask clientAsMask; - pointer requestBuffer; - pointer osPrivate; /* for OS layer, including scheduler */ - Bool swapped; - ReplySwapPtr pSwapReplyFunc; - XID errorValue; - int sequence; - int closeDownMode; - int clientGone; - int noClientException; /* this client died or needs to be - * killed */ - SaveSetElt *saveSet; - int numSaved; - int (**requestVector) ( - ClientPtr /* pClient */); - CARD32 req_len; /* length of current request */ - Bool big_requests; /* supports large requests */ - int priority; - ClientState clientState; - PrivateRec *devPrivates; - unsigned short xkbClientFlags; - unsigned short mapNotifyMask; - unsigned short newKeyboardNotifyMask; - unsigned short vMajor,vMinor; - KeyCode minKC,maxKC; - - unsigned long replyBytesRemaining; - int smart_priority; - long smart_start_tick; - long smart_stop_tick; - long smart_check_tick; - - DeviceIntPtr clientPtr; -} ClientRec; - -/* - * Scheduling interface - */ -extern _X_EXPORT long SmartScheduleTime; -extern _X_EXPORT long SmartScheduleInterval; -extern _X_EXPORT long SmartScheduleSlice; -extern _X_EXPORT long SmartScheduleMaxSlice; -extern _X_EXPORT Bool SmartScheduleDisable; -extern _X_EXPORT void SmartScheduleStartTimer(void); -extern _X_EXPORT void SmartScheduleStopTimer(void); -#define SMART_MAX_PRIORITY (20) -#define SMART_MIN_PRIORITY (-20) - -extern _X_EXPORT Bool SmartScheduleInit(void); - - -/* This prototype is used pervasively in Xext, dix */ -#define DISPATCH_PROC(func) int func(ClientPtr /* client */) - -typedef struct _WorkQueue { - struct _WorkQueue *next; - Bool (*function) ( - ClientPtr /* pClient */, - pointer /* closure */ -); - ClientPtr client; - pointer closure; -} WorkQueueRec; - -extern _X_EXPORT TimeStamp currentTime; -extern _X_EXPORT TimeStamp lastDeviceEventTime; - -extern _X_EXPORT int CompareTimeStamps( - TimeStamp /*a*/, - TimeStamp /*b*/); - -extern _X_EXPORT TimeStamp ClientTimeToServerTime(CARD32 /*c*/); - -typedef struct _CallbackRec { - CallbackProcPtr proc; - pointer data; - Bool deleted; - struct _CallbackRec *next; -} CallbackRec, *CallbackPtr; - -typedef struct _CallbackList { - int inCallback; - Bool deleted; - int numDeleted; - CallbackPtr list; -} CallbackListRec; - -/* proc vectors */ - -extern _X_EXPORT int (* InitialVector[3]) (ClientPtr /*client*/); - -extern _X_EXPORT int (* ProcVector[256]) (ClientPtr /*client*/); - -extern _X_EXPORT int (* SwappedProcVector[256]) (ClientPtr /*client*/); - -extern _X_EXPORT ReplySwapPtr ReplySwapVector[256]; - -extern _X_EXPORT int ProcBadRequest(ClientPtr /*client*/); - -#endif /* DIXSTRUCT_H */ +/***********************************************************
+Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ 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 notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE 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.
+
+******************************************************************/
+
+#ifndef DIXSTRUCT_H
+#define DIXSTRUCT_H
+
+#include "dix.h"
+#include "resource.h"
+#include "cursor.h"
+#include "gc.h"
+#include "pixmap.h"
+#include "privates.h"
+#include <X11/Xmd.h>
+
+/*
+ * direct-mapped hash table, used by resource manager to store
+ * translation from client ids to server addresses.
+ */
+
+extern _X_EXPORT CallbackListPtr ClientStateCallback;
+
+typedef struct {
+ ClientPtr client;
+ xConnSetupPrefix *prefix;
+ xConnSetup *setup;
+} NewClientInfoRec;
+
+typedef void (*ReplySwapPtr) (
+ ClientPtr /* pClient */,
+ int /* size */,
+ void * /* pbuf */);
+
+extern _X_EXPORT void ReplyNotSwappd (
+ ClientPtr /* pClient */,
+ int /* size */,
+ void * /* pbuf */) _X_NORETURN;
+
+typedef enum {ClientStateInitial,
+ ClientStateAuthenticating,
+ ClientStateRunning,
+ ClientStateRetained,
+ ClientStateGone,
+ ClientStateCheckingSecurity,
+ ClientStateCheckedSecurity} ClientState;
+
+#ifdef XFIXES
+typedef struct _saveSet {
+ struct _Window *windowPtr;
+ Bool toRoot;
+ Bool map;
+} SaveSetElt;
+#define SaveSetWindow(ss) ((ss).windowPtr)
+#define SaveSetToRoot(ss) ((ss).toRoot)
+#define SaveSetShouldMap(ss) ((ss).map)
+#define SaveSetAssignWindow(ss,w) ((ss).windowPtr = (w))
+#define SaveSetAssignToRoot(ss,tr) ((ss).toRoot = (tr))
+#define SaveSetAssignMap(ss,m) ((ss).map = (m))
+#else
+typedef struct _Window *SaveSetElt;
+#define SaveSetWindow(ss) (ss)
+#define SaveSetToRoot(ss) FALSE
+#define SaveSetShouldMap(ss) TRUE
+#define SaveSetAssignWindow(ss,w) ((ss) = (w))
+#define SaveSetAssignToRoot(ss,tr)
+#define SaveSetAssignMap(ss,m)
+#endif
+
+typedef struct _Client {
+ int index;
+ Mask clientAsMask;
+ pointer requestBuffer;
+ pointer osPrivate; /* for OS layer, including scheduler */
+ Bool swapped;
+ ReplySwapPtr pSwapReplyFunc;
+ XID errorValue;
+ int sequence;
+ int closeDownMode;
+ int clientGone;
+ int noClientException; /* this client died or needs to be
+ * killed */
+ SaveSetElt *saveSet;
+ int numSaved;
+ int (**requestVector) (
+ ClientPtr /* pClient */);
+ CARD32 req_len; /* length of current request */
+ Bool big_requests; /* supports large requests */
+ int priority;
+ ClientState clientState;
+ PrivateRec *devPrivates;
+ unsigned short xkbClientFlags;
+ unsigned short mapNotifyMask;
+ unsigned short newKeyboardNotifyMask;
+ unsigned short vMajor,vMinor;
+ KeyCode minKC,maxKC;
+
+ unsigned long replyBytesRemaining;
+ int smart_priority;
+ long smart_start_tick;
+ long smart_stop_tick;
+ long smart_check_tick;
+
+ DeviceIntPtr clientPtr;
+} ClientRec;
+
+/*
+ * Scheduling interface
+ */
+extern _X_EXPORT long SmartScheduleTime;
+extern _X_EXPORT long SmartScheduleInterval;
+extern _X_EXPORT long SmartScheduleSlice;
+extern _X_EXPORT long SmartScheduleMaxSlice;
+extern _X_EXPORT Bool SmartScheduleDisable;
+extern _X_EXPORT void SmartScheduleStartTimer(void);
+extern _X_EXPORT void SmartScheduleStopTimer(void);
+#define SMART_MAX_PRIORITY (20)
+#define SMART_MIN_PRIORITY (-20)
+
+extern _X_EXPORT Bool SmartScheduleInit(void);
+
+
+/* This prototype is used pervasively in Xext, dix */
+#define DISPATCH_PROC(func) int func(ClientPtr /* client */)
+
+typedef struct _WorkQueue {
+ struct _WorkQueue *next;
+ Bool (*function) (
+ ClientPtr /* pClient */,
+ pointer /* closure */
+);
+ ClientPtr client;
+ pointer closure;
+} WorkQueueRec;
+
+extern _X_EXPORT TimeStamp currentTime;
+extern _X_EXPORT TimeStamp lastDeviceEventTime;
+
+extern _X_EXPORT int CompareTimeStamps(
+ TimeStamp /*a*/,
+ TimeStamp /*b*/);
+
+extern _X_EXPORT TimeStamp ClientTimeToServerTime(CARD32 /*c*/);
+
+typedef struct _CallbackRec {
+ CallbackProcPtr proc;
+ pointer data;
+ Bool deleted;
+ struct _CallbackRec *next;
+} CallbackRec, *CallbackPtr;
+
+typedef struct _CallbackList {
+ int inCallback;
+ Bool deleted;
+ int numDeleted;
+ CallbackPtr list;
+} CallbackListRec;
+
+/* proc vectors */
+
+extern _X_EXPORT int (* InitialVector[3]) (ClientPtr /*client*/);
+
+extern _X_EXPORT int (* ProcVector[256]) (ClientPtr /*client*/);
+
+extern _X_EXPORT int (* SwappedProcVector[256]) (ClientPtr /*client*/);
+
+extern _X_EXPORT ReplySwapPtr ReplySwapVector[256];
+
+extern _X_EXPORT int ProcBadRequest(ClientPtr /*client*/);
+
+#endif /* DIXSTRUCT_H */
diff --git a/xorg-server/include/extnsionst.h b/xorg-server/include/extnsionst.h index 19c76fcc4..92790b38f 100644 --- a/xorg-server/include/extnsionst.h +++ b/xorg-server/include/extnsionst.h @@ -1,112 +1,112 @@ -/*********************************************************** - -Copyright 1987, 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 Digital Equipment Corporation, Maynard, Massachusetts. - - 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 notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE 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. - -******************************************************************/ - -#ifndef EXTENSIONSTRUCT_H -#define EXTENSIONSTRUCT_H - -#include "dix.h" -#include "misc.h" -#include "screenint.h" -#include "extension.h" -#include "gc.h" -#include "privates.h" - -typedef struct _ExtensionEntry { - int index; - void (* CloseDown)( /* called at server shutdown */ - struct _ExtensionEntry * /* extension */); - char *name; /* extension name */ - int base; /* base request number */ - int eventBase; - int eventLast; - int errorBase; - int errorLast; - int num_aliases; - char **aliases; - pointer extPrivate; - unsigned short (* MinorOpcode)( /* called for errors */ - ClientPtr /* client */); - PrivateRec *devPrivates; -} ExtensionEntry; - -/* - * The arguments may be different for extension event swapping functions. - * Deal with this by casting when initializing the event's EventSwapVector[] - * entries. - */ -typedef void (*EventSwapPtr) (xEvent *, xEvent *); - -extern _X_EXPORT EventSwapPtr EventSwapVector[128]; - -extern _X_EXPORT void NotImplemented ( /* FIXME: this may move to another file... */ - xEvent *, - xEvent *); - -#define SetGCVector(pGC, VectorElement, NewRoutineAddress, Atom) \ - pGC->VectorElement = NewRoutineAddress; - -#define GetGCValue(pGC, GCElement) (pGC->GCElement) - -extern _X_EXPORT ExtensionEntry *AddExtension( - char* /*name*/, - int /*NumEvents*/, - int /*NumErrors*/, - int (* /*MainProc*/)(ClientPtr /*client*/), - int (* /*SwappedMainProc*/)(ClientPtr /*client*/), - void (* /*CloseDownProc*/)(ExtensionEntry * /*extension*/), - unsigned short (* /*MinorOpcodeProc*/)(ClientPtr /*client*/) -); - -extern _X_EXPORT Bool AddExtensionAlias( - char* /*alias*/, - ExtensionEntry * /*extension*/); - -extern _X_EXPORT ExtensionEntry *CheckExtension(const char *extname); -extern _X_EXPORT ExtensionEntry *GetExtensionEntry(int major); - -#endif /* EXTENSIONSTRUCT_H */ - +/***********************************************************
+
+Copyright 1987, 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 Digital Equipment Corporation, Maynard, Massachusetts.
+
+ 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 notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE 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.
+
+******************************************************************/
+
+#ifndef EXTENSIONSTRUCT_H
+#define EXTENSIONSTRUCT_H
+
+#include "dix.h"
+#include "misc.h"
+#include "screenint.h"
+#include "extension.h"
+#include "gc.h"
+#include "privates.h"
+
+typedef struct _ExtensionEntry {
+ int index;
+ void (* CloseDown)( /* called at server shutdown */
+ struct _ExtensionEntry * /* extension */);
+ char *name; /* extension name */
+ int base; /* base request number */
+ int eventBase;
+ int eventLast;
+ int errorBase;
+ int errorLast;
+ int num_aliases;
+ char **aliases;
+ pointer extPrivate;
+ unsigned short (* MinorOpcode)( /* called for errors */
+ ClientPtr /* client */);
+ PrivateRec *devPrivates;
+} ExtensionEntry;
+
+/*
+ * The arguments may be different for extension event swapping functions.
+ * Deal with this by casting when initializing the event's EventSwapVector[]
+ * entries.
+ */
+typedef void (*EventSwapPtr) (xEvent *, xEvent *);
+
+extern _X_EXPORT EventSwapPtr EventSwapVector[128];
+
+extern _X_EXPORT void NotImplemented ( /* FIXME: this may move to another file... */
+ xEvent *,
+ xEvent *) _X_NORETURN;
+
+#define SetGCVector(pGC, VectorElement, NewRoutineAddress, Atom) \
+ pGC->VectorElement = NewRoutineAddress;
+
+#define GetGCValue(pGC, GCElement) (pGC->GCElement)
+
+extern _X_EXPORT ExtensionEntry *AddExtension(
+ char* /*name*/,
+ int /*NumEvents*/,
+ int /*NumErrors*/,
+ int (* /*MainProc*/)(ClientPtr /*client*/),
+ int (* /*SwappedMainProc*/)(ClientPtr /*client*/),
+ void (* /*CloseDownProc*/)(ExtensionEntry * /*extension*/),
+ unsigned short (* /*MinorOpcodeProc*/)(ClientPtr /*client*/)
+);
+
+extern _X_EXPORT Bool AddExtensionAlias(
+ char* /*alias*/,
+ ExtensionEntry * /*extension*/);
+
+extern _X_EXPORT ExtensionEntry *CheckExtension(const char *extname);
+extern _X_EXPORT ExtensionEntry *GetExtensionEntry(int major);
+
+#endif /* EXTENSIONSTRUCT_H */
+
|