mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2025-12-20 02:20:03 +01:00
Strip trailing whitespace from source files
Performed with: `git ls-files | xargs perl -i -p -e 's{[ \t]+$}{}'`
`git diff -w` & `git diff -b` show no diffs from this change
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2074>
This commit is contained in:
parent
5210495f7d
commit
d9389873d6
34 changed files with 332 additions and 332 deletions
|
|
@ -60,7 +60,7 @@ extern CallbackListPtr XaceHooks[XACE_NUM_HOOKS];
|
||||||
/* Entry point for hook functions. Called by Xserver.
|
/* Entry point for hook functions. Called by Xserver.
|
||||||
* Required by libdbe and libextmod
|
* Required by libdbe and libextmod
|
||||||
*/
|
*/
|
||||||
/* needs to be exported for in-tree modsetting driver, but not part
|
/* needs to be exported for in-tree modsetting driver, but not part
|
||||||
of public API for external modules */
|
of public API for external modules */
|
||||||
_X_EXPORT int XaceHook(int hook, ... /* appropriate args for hook */);
|
_X_EXPORT int XaceHook(int hook, ... /* appropriate args for hook */);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
|
|
||||||
# Accelerometer device, posts data through ABS_X/ABS_Y, making X unusable
|
# Accelerometer device, posts data through ABS_X/ABS_Y, making X unusable
|
||||||
# http://bugs.freedesktop.org/show_bug.cgi?id=22442
|
# http://bugs.freedesktop.org/show_bug.cgi?id=22442
|
||||||
Section "InputClass"
|
Section "InputClass"
|
||||||
Identifier "ThinkPad HDAPS accelerometer blacklist"
|
Identifier "ThinkPad HDAPS accelerometer blacklist"
|
||||||
MatchProduct "ThinkPad HDAPS accelerometer data"
|
MatchProduct "ThinkPad HDAPS accelerometer data"
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
D-BUS Configuration API v2
|
D-BUS Configuration API v2
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
The X server will register the bus name org.x.config.displayN, and the
|
The X server will register the bus name org.x.config.displayN, and the
|
||||||
object /org/x/config/N, where N is the display number.
|
object /org/x/config/N, where N is the display number.
|
||||||
|
|
||||||
Currently only hotplugging of input devices is supported.
|
Currently only hotplugging of input devices is supported.
|
||||||
|
|
@ -36,5 +36,5 @@ org.x.config.input:
|
||||||
X.h. See org.x.config.input.add. Error codes are negative numbers.
|
X.h. See org.x.config.input.add. Error codes are negative numbers.
|
||||||
|
|
||||||
org.x.config.input.listDevices:
|
org.x.config.input.listDevices:
|
||||||
Lists the currently active devices. No argument.
|
Lists the currently active devices. No argument.
|
||||||
Return value is sequence of [<id> <name>] [<id> <name>] ..., i.e. [us].
|
Return value is sequence of [<id> <name>] [<id> <name>] ..., i.e. [us].
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,27 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<deviceinfo version="0.2">
|
<deviceinfo version="0.2">
|
||||||
<device>
|
<device>
|
||||||
|
|
||||||
<!-- The way this works:
|
<!-- The way this works:
|
||||||
|
|
||||||
Match against some input device (see the HAL specification for more
|
Match against some input device (see the HAL specification for more
|
||||||
information), and then merge in keys, which you can use to specify
|
information), and then merge in keys, which you can use to specify
|
||||||
the configuration similar to the way you would in xorg.conf. You will
|
the configuration similar to the way you would in xorg.conf. You will
|
||||||
need to restart HAL after making changes. If you are having issues,
|
need to restart HAL after making changes. If you are having issues,
|
||||||
starting X with the -logverbose 7 flag may yield useful information.
|
starting X with the -logverbose 7 flag may yield useful information.
|
||||||
|
|
||||||
Keys Supported:
|
Keys Supported:
|
||||||
|
|
||||||
Key "input.x11_driver" (string)
|
Key "input.x11_driver" (string)
|
||||||
This specifies the driver to use. You MUST specify this option,
|
This specifies the driver to use. You MUST specify this option,
|
||||||
or a driver will not be loaded and the rest will be ignored by
|
or a driver will not be loaded and the rest will be ignored by
|
||||||
Xorg
|
Xorg
|
||||||
|
|
||||||
Key "input.x11_options.<option name>" (string)
|
Key "input.x11_options.<option name>" (string)
|
||||||
This allows you to specify arbitrary options to pass to the driver.
|
This allows you to specify arbitrary options to pass to the driver.
|
||||||
Anything you would normally specify in xorg.conf goes here. So, for
|
Anything you would normally specify in xorg.conf goes here. So, for
|
||||||
option "Mode" in xorg.conf, you would specify the key name of
|
option "Mode" in xorg.conf, you would specify the key name of
|
||||||
"input.x11_options.Mode".
|
"input.x11_options.Mode".
|
||||||
|
|
||||||
Do not specify "input.x11_options.Device" since "input.device"
|
Do not specify "input.x11_options.Device" since "input.device"
|
||||||
will be used automatically.
|
will be used automatically.
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
"input.xkb.layout"
|
"input.xkb.layout"
|
||||||
"input.xkb.variant"
|
"input.xkb.variant"
|
||||||
"input.xkb.options"
|
"input.xkb.options"
|
||||||
|
|
||||||
These keys are deprecated. Use these instead:
|
These keys are deprecated. Use these instead:
|
||||||
"input.x11_options.XkbRules"
|
"input.x11_options.XkbRules"
|
||||||
"input.x11_options.XkbModel"
|
"input.x11_options.XkbModel"
|
||||||
|
|
@ -43,13 +43,13 @@
|
||||||
"input.x11_options.XkbVariant"
|
"input.x11_options.XkbVariant"
|
||||||
"input.x11_options.XkbOptions"
|
"input.x11_options.XkbOptions"
|
||||||
|
|
||||||
See the evdev documentation for more information.
|
See the evdev documentation for more information.
|
||||||
|
|
||||||
FIXME: Support tablets too.
|
FIXME: Support tablets too.
|
||||||
TODO: I think its fixed, can't test
|
TODO: I think its fixed, can't test
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<match key="info.capabilities" contains="input.mouse">
|
<match key="info.capabilities" contains="input.mouse">
|
||||||
<merge key="input.x11_driver" type="string">mouse</merge>
|
<merge key="input.x11_driver" type="string">mouse</merge>
|
||||||
<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
|
<match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
|
||||||
|
|
|
||||||
|
|
@ -133,7 +133,7 @@ RGB_COLOR_MAP @
|
||||||
compute a corresponding pixel value with the expression:
|
compute a corresponding pixel value with the expression:
|
||||||
|
|
||||||
r * red_mult + g * green_mult + b * blue_mult + base_pixel
|
r * red_mult + g * green_mult + b * blue_mult + base_pixel
|
||||||
|
|
||||||
For gray-scale colormaps, only the colormap, red_max, red_mult,
|
For gray-scale colormaps, only the colormap, red_max, red_mult,
|
||||||
and base_pixel fields are defined; the other fields are
|
and base_pixel fields are defined; the other fields are
|
||||||
ignored. To compute a gray-scale pixel value, use:
|
ignored. To compute a gray-scale pixel value, use:
|
||||||
|
|
@ -273,7 +273,7 @@ SUBSCRIPT_Y @
|
||||||
UNDERLINE_POSITION @
|
UNDERLINE_POSITION @
|
||||||
Font property: INT32
|
Font property: INT32
|
||||||
UNDERLINE_THICKNESS @
|
UNDERLINE_THICKNESS @
|
||||||
Font property: CARD32
|
Font property: CARD32
|
||||||
STRIKEOUT_ASCENT @
|
STRIKEOUT_ASCENT @
|
||||||
Font property: INT32
|
Font property: INT32
|
||||||
STRIKEOUT_DESCENT @
|
STRIKEOUT_DESCENT @
|
||||||
|
|
@ -314,8 +314,8 @@ CAP_HEIGHT @
|
||||||
|
|
||||||
WM_CLASS @
|
WM_CLASS @
|
||||||
Property name: (type: STRING)
|
Property name: (type: STRING)
|
||||||
Used (possibly by some window managers; definitely by
|
Used (possibly by some window managers; definitely by
|
||||||
session managers) to look up resources in the resource
|
session managers) to look up resources in the resource
|
||||||
data base on behalf of the client who set this property.
|
data base on behalf of the client who set this property.
|
||||||
There are 2 elements:
|
There are 2 elements:
|
||||||
{char *resource_name; char *resource_class;}
|
{char *resource_name; char *resource_class;}
|
||||||
|
|
@ -323,7 +323,7 @@ WM_CLASS @
|
||||||
|
|
||||||
WM_TRANSIENT_FOR @
|
WM_TRANSIENT_FOR @
|
||||||
Property name: (type: WINDOW)
|
Property name: (type: WINDOW)
|
||||||
Used by transient top-level windows, such as dialog
|
Used by transient top-level windows, such as dialog
|
||||||
boxes, to point to their logical "parents". The window
|
boxes, to point to their logical "parents". The window
|
||||||
manager can then take down the dialog boxes when the
|
manager can then take down the dialog boxes when the
|
||||||
"parent" gets iconified, for instance.
|
"parent" gets iconified, for instance.
|
||||||
|
|
|
||||||
220
doc/Xinput.xml
220
doc/Xinput.xml
|
|
@ -50,32 +50,32 @@ dard of the X Consortium and is therefore subject to change.
|
||||||
<title>X11 Input Extension Porting Document</title>
|
<title>X11 Input Extension Porting Document</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
This document is intended to aid the process of integrating the
|
This document is intended to aid the process of integrating the
|
||||||
X11 Input Extension into an X server.
|
X11 Input Extension into an X server.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
Most of the functionality provided by the input extension is
|
Most of the functionality provided by the input extension is
|
||||||
device- and implementation-independent, and should require no changes.
|
device- and implementation-independent, and should require no changes.
|
||||||
The functionality is implemented by
|
The functionality is implemented by
|
||||||
routines that typically reside in the server source tree directory
|
routines that typically reside in the server source tree directory
|
||||||
extensions/server/xinput.
|
extensions/server/xinput.
|
||||||
This extension includes functions to enable and disable input extension devices,
|
This extension includes functions to enable and disable input extension devices,
|
||||||
select input, grab and focus those devices, query and change key
|
select input, grab and focus those devices, query and change key
|
||||||
and button mappings, and others. The only input extension requirements
|
and button mappings, and others. The only input extension requirements
|
||||||
for the device-dependent part of X are that the input devices be
|
for the device-dependent part of X are that the input devices be
|
||||||
correctly initialized and input events from those devices be correctly
|
correctly initialized and input events from those devices be correctly
|
||||||
generated. Device-dependent X is responsible for reading input data from
|
generated. Device-dependent X is responsible for reading input data from
|
||||||
the input device hardware and if necessary, reformatting it into X events.
|
the input device hardware and if necessary, reformatting it into X events.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
The process of initializing input extension devices is similar to that used
|
The process of initializing input extension devices is similar to that used
|
||||||
for the core devices, and is described in the following sections. When
|
for the core devices, and is described in the following sections. When
|
||||||
multiple input devices are attached to X server, the choice of which devices
|
multiple input devices are attached to X server, the choice of which devices
|
||||||
to initially use as the core X pointer and keyboard is left
|
to initially use as the core X pointer and keyboard is left
|
||||||
implementation-dependent. It is also up to each implementation to decide
|
implementation-dependent. It is also up to each implementation to decide
|
||||||
whether all input devices will be opened by the server during its
|
whether all input devices will be opened by the server during its
|
||||||
initialization and kept open for the life of the server. The alternative is
|
initialization and kept open for the life of the server. The alternative is
|
||||||
to open only the X keyboard and X pointer during server initialization, and
|
to open only the X keyboard and X pointer during server initialization, and
|
||||||
open other input devices only when requested by a client to do so. Either
|
open other input devices only when requested by a client to do so. Either
|
||||||
|
|
@ -95,10 +95,10 @@ events.
|
||||||
<title>Initializing Extension Devices</title>
|
<title>Initializing Extension Devices</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
Extension input devices are initialized in the same manner as the core
|
Extension input devices are initialized in the same manner as the core
|
||||||
X input devices. Device-Independent X provides functions that can be
|
X input devices. Device-Independent X provides functions that can be
|
||||||
called from DDX to initialize these devices. Which functions are called
|
called from DDX to initialize these devices. Which functions are called
|
||||||
and when will vary by implementation, and will depend on whether the
|
and when will vary by implementation, and will depend on whether the
|
||||||
implementation opens all the input devices available to X when X is initialized,
|
implementation opens all the input devices available to X when X is initialized,
|
||||||
or waits until a client requests that a device be opened.
|
or waits until a client requests that a device be opened.
|
||||||
In the simplest case, DDX will open all input devices as part of its
|
In the simplest case, DDX will open all input devices as part of its
|
||||||
|
|
@ -110,32 +110,32 @@ initialization, when the InitInput routine is called.
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
<literallayout class="monospaced">
|
<literallayout class="monospaced">
|
||||||
Device-Independent X | Device-Dependent X
|
Device-Independent X | Device-Dependent X
|
||||||
-------------------- | -------------------
|
-------------------- | -------------------
|
||||||
|
|
|
|
||||||
InitInput --------------> | - do device-specific initialization
|
InitInput --------------> | - do device-specific initialization
|
||||||
|
|
|
|
||||||
| - call AddInputDevice (deviceProc,AutoStart)
|
| - call AddInputDevice (deviceProc,AutoStart)
|
||||||
AddInputDevice |
|
AddInputDevice |
|
||||||
- creates DeviceIntRec |
|
- creates DeviceIntRec |
|
||||||
- records deviceProc |
|
- records deviceProc |
|
||||||
- adds new device to |
|
- adds new device to |
|
||||||
list of off_devices. |
|
list of off_devices. |
|
||||||
sets dev->startup=AutoStart|
|
sets dev->startup=AutoStart|
|
||||||
| - call one of:
|
| - call one of:
|
||||||
| - RegisterPointerDevice (X pointer)
|
| - RegisterPointerDevice (X pointer)
|
||||||
| - processInputProc = ProcessPointerEvents
|
| - processInputProc = ProcessPointerEvents
|
||||||
| - RegisterKeyboardDevice (X keyboard)
|
| - RegisterKeyboardDevice (X keyboard)
|
||||||
| - processInputProc = ProcessKeyboardEvents
|
| - processInputProc = ProcessKeyboardEvents
|
||||||
| - RegisterOtherDevice (extension device)
|
| - RegisterOtherDevice (extension device)
|
||||||
| - processInputProc = ProcessOtherEvents
|
| - processInputProc = ProcessOtherEvents
|
||||||
|
|
|
|
||||||
|
|
|
|
||||||
InitAndStartDevices -----> | - calls deviceProc with parameters
|
InitAndStartDevices -----> | - calls deviceProc with parameters
|
||||||
| (DEVICE_INIT, AutoStart)
|
| (DEVICE_INIT, AutoStart)
|
||||||
sets dev->inited = return |
|
sets dev->inited = return |
|
||||||
value from deviceProc |
|
value from deviceProc |
|
||||||
|
|
|
|
||||||
| - in deviceProc, do one of:
|
| - in deviceProc, do one of:
|
||||||
| - call InitPointerDeviceStruct (X pointer)
|
| - call InitPointerDeviceStruct (X pointer)
|
||||||
| - call InitKeyboardDeviceStruct (X keybd)
|
| - call InitKeyboardDeviceStruct (X keybd)
|
||||||
| - init extension device by calling some of:
|
| - init extension device by calling some of:
|
||||||
|
|
@ -152,23 +152,23 @@ sets dev->inited = return |
|
||||||
| - InitIntegerFeedbackClassDeviceStruct
|
| - InitIntegerFeedbackClassDeviceStruct
|
||||||
| - InitBellFeedbackClassDeviceStruct
|
| - InitBellFeedbackClassDeviceStruct
|
||||||
| - init device name and type by:
|
| - init device name and type by:
|
||||||
| - calling MakeAtom with one of the
|
| - calling MakeAtom with one of the
|
||||||
| predefined names
|
| predefined names
|
||||||
| - calling AssignTypeAndName
|
| - calling AssignTypeAndName
|
||||||
|
|
|
|
||||||
|
|
|
|
||||||
for each device added |
|
for each device added |
|
||||||
by AddInputDevice, |
|
by AddInputDevice, |
|
||||||
InitAndStartDevices |
|
InitAndStartDevices |
|
||||||
calls EnableDevice if | - EnableDevice calls deviceProc with
|
calls EnableDevice if | - EnableDevice calls deviceProc with
|
||||||
dev->startup & | (DEVICE_ON, AutoStart)
|
dev->startup & | (DEVICE_ON, AutoStart)
|
||||||
dev->inited |
|
dev->inited |
|
||||||
|
|
|
|
||||||
If deviceProc returns | - core devices are now enabled, extension
|
If deviceProc returns | - core devices are now enabled, extension
|
||||||
Success, EnableDevice | devices are now available to be accessed
|
Success, EnableDevice | devices are now available to be accessed
|
||||||
move the device from | through the input extension protocol
|
move the device from | through the input extension protocol
|
||||||
inputInfo.off_devices | requests.
|
inputInfo.off_devices | requests.
|
||||||
to inputInfo.devices |
|
to inputInfo.devices |
|
||||||
</literallayout>
|
</literallayout>
|
||||||
</para>
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
@ -216,7 +216,7 @@ InitInput(argc,argv)
|
||||||
DeviceProc kbdproc, ptrproc, extproc;
|
DeviceProc kbdproc, ptrproc, extproc;
|
||||||
|
|
||||||
/**************************************************************
|
/**************************************************************
|
||||||
* Open the appropriate input devices, determine which are
|
* Open the appropriate input devices, determine which are
|
||||||
* available, and choose an X pointer and X keyboard device
|
* available, and choose an X pointer and X keyboard device
|
||||||
* in some implementation-dependent manner.
|
* in some implementation-dependent manner.
|
||||||
***************************************************************/
|
***************************************************************/
|
||||||
|
|
@ -239,7 +239,7 @@ InitInput(argc,argv)
|
||||||
dev = AddInputDevice (ptrproc, TRUE);
|
dev = AddInputDevice (ptrproc, TRUE);
|
||||||
RegisterPointerDevice (dev);
|
RegisterPointerDevice (dev);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dev = AddInputDevice (extproc, FALSE);
|
dev = AddInputDevice (extproc, FALSE);
|
||||||
RegisterOtherDevice (dev);
|
RegisterOtherDevice (dev);
|
||||||
|
|
@ -256,7 +256,7 @@ InitInput(argc,argv)
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
After InitInput has returned,
|
After InitInput has returned,
|
||||||
InitAndStartDevices is the DIX routine that is called to enable input devices.
|
InitAndStartDevices is the DIX routine that is called to enable input devices.
|
||||||
It calls the device control routine that was passed to AddInputDevice,
|
It calls the device control routine that was passed to AddInputDevice,
|
||||||
with a mode value of DEVICE_INIT. The action taken by the device control
|
with a mode value of DEVICE_INIT. The action taken by the device control
|
||||||
routine depends on how the device is to be used. If the device is to be
|
routine depends on how the device is to be used. If the device is to be
|
||||||
|
|
@ -271,7 +271,7 @@ input, and are described in the following sections.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
A sample device control routine called from InitAndStartDevices is
|
A sample device control routine called from InitAndStartDevices is
|
||||||
shown below.
|
shown below.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
|
|
@ -299,7 +299,7 @@ Bool extproc (dev, mode)
|
||||||
InitValuatorClassDeviceStruct (dev, localdev->n_axes,);
|
InitValuatorClassDeviceStruct (dev, localdev->n_axes,);
|
||||||
motionproc, MOTION_BUF_SIZE, Absolute);
|
motionproc, MOTION_BUF_SIZE, Absolute);
|
||||||
for (i=0; i<localdev->n_axes; i++)
|
for (i=0; i<localdev->n_axes; i++)
|
||||||
InitValuatorAxisStruct (dev, i, min_val, max_val,
|
InitValuatorAxisStruct (dev, i, min_val, max_val,
|
||||||
resolution);
|
resolution);
|
||||||
InitFocusClassDeviceStruct (dev);
|
InitFocusClassDeviceStruct (dev);
|
||||||
InitProximityClassDeviceStruct (dev);
|
InitProximityClassDeviceStruct (dev);
|
||||||
|
|
@ -325,11 +325,11 @@ Bool extproc (dev, mode)
|
||||||
InitValuatorClassDeviceStruct (dev, localdev->n_axes,);
|
InitValuatorClassDeviceStruct (dev, localdev->n_axes,);
|
||||||
motionproc, MOTION_BUF_SIZE, Absolute);
|
motionproc, MOTION_BUF_SIZE, Absolute);
|
||||||
for (i=0; i<localdev->n_axes; i++)
|
for (i=0; i<localdev->n_axes; i++)
|
||||||
InitValuatorAxisStruct (dev, i, min_val, max_val,
|
InitValuatorAxisStruct (dev, i, min_val, max_val,
|
||||||
resolution);
|
resolution);
|
||||||
InitFocusClassDeviceStruct (dev);
|
InitFocusClassDeviceStruct (dev);
|
||||||
}
|
}
|
||||||
localdev->atom =
|
localdev->atom =
|
||||||
MakeAtom(localdev->name, strlen(localdev->name), FALSE);
|
MakeAtom(localdev->name, strlen(localdev->name), FALSE);
|
||||||
AssignTypeAndName (dev, localdev->atom, localdev->name);
|
AssignTypeAndName (dev, localdev->atom, localdev->name);
|
||||||
break;
|
break;
|
||||||
|
|
@ -350,8 +350,8 @@ Bool extproc (dev, mode)
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
The device control routine is called with a mode value of DEVICE_ON
|
The device control routine is called with a mode value of DEVICE_ON
|
||||||
by the DIX routine EnableDevice, which is called from InitAndStartDevices.
|
by the DIX routine EnableDevice, which is called from InitAndStartDevices.
|
||||||
When called with this mode, it should call AddEnabledDevice to cause the
|
When called with this mode, it should call AddEnabledDevice to cause the
|
||||||
server to begin checking for available input from this device.
|
server to begin checking for available input from this device.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
|
|
@ -367,8 +367,8 @@ field is set by AddInputDevice to value of the second parameter (autoStart).
|
||||||
When the server is first initialized, it should only be checking for input
|
When the server is first initialized, it should only be checking for input
|
||||||
from the core X keyboard and pointer. One way to accomplish this is to
|
from the core X keyboard and pointer. One way to accomplish this is to
|
||||||
call AddInputDevice for the core X keyboard and pointer with an
|
call AddInputDevice for the core X keyboard and pointer with an
|
||||||
autoStart value equal to TRUE, while calling AddInputDevice for
|
autoStart value equal to TRUE, while calling AddInputDevice for
|
||||||
input extension devices with an autoStart value equal to FALSE. If this is
|
input extension devices with an autoStart value equal to FALSE. If this is
|
||||||
done, EnableDevice will skip all input extension devices during server
|
done, EnableDevice will skip all input extension devices during server
|
||||||
initialization. In this case,
|
initialization. In this case,
|
||||||
the OpenInputDevice routine should set the "startup" field to TRUE
|
the OpenInputDevice routine should set the "startup" field to TRUE
|
||||||
|
|
@ -423,12 +423,12 @@ FeedbackClass - the device supports some kind of feedback.
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
DIX routines are provided to initialize the X pointer and keyboard, as in
|
DIX routines are provided to initialize the X pointer and keyboard, as in
|
||||||
previous releases of X. During X initialization, InitPointerDeviceStruct
|
previous releases of X. During X initialization, InitPointerDeviceStruct
|
||||||
is called to initialize the X pointer, and InitKeyboardDeviceStruct is
|
is called to initialize the X pointer, and InitKeyboardDeviceStruct is
|
||||||
called to initialize the X keyboard. There is no
|
called to initialize the X keyboard. There is no
|
||||||
corresponding routine for extension input devices, since they do not all
|
corresponding routine for extension input devices, since they do not all
|
||||||
support the same classes of input. Instead, DDX is responsible for the
|
support the same classes of input. Instead, DDX is responsible for the
|
||||||
initialization of the input classes supported by extension devices.
|
initialization of the input classes supported by extension devices.
|
||||||
A description of the routines provided by DIX to perform that initialization
|
A description of the routines provided by DIX to perform that initialization
|
||||||
follows.
|
follows.
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -436,7 +436,7 @@ follows.
|
||||||
<title>InitKeyClassDeviceStruct</title>
|
<title>InitKeyClassDeviceStruct</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
This function is provided to allocate and initialize a KeyClassRec, and
|
This function is provided to allocate and initialize a KeyClassRec, and
|
||||||
should be called for extension devices that have keys. It is passed a pointer
|
should be called for extension devices that have keys. It is passed a pointer
|
||||||
to the device, and pointers to arrays of keysyms and modifiers reported by
|
to the device, and pointers to arrays of keysyms and modifiers reported by
|
||||||
the device. It returns FALSE if the KeyClassRec could not be allocated,
|
the device. It returns FALSE if the KeyClassRec could not be allocated,
|
||||||
|
|
@ -464,10 +464,10 @@ that have keys.
|
||||||
<title>InitButtonClassDeviceStruct</title>
|
<title>InitButtonClassDeviceStruct</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
This function is provided to allocate and initialize a ButtonClassRec, and
|
This function is provided to allocate and initialize a ButtonClassRec, and
|
||||||
should be called for extension devices that have buttons. It is passed a
|
should be called for extension devices that have buttons. It is passed a
|
||||||
pointer to the device, the number of buttons supported, and a map of the
|
pointer to the device, the number of buttons supported, and a map of the
|
||||||
reported button codes. It returns FALSE if the ButtonClassRec could not be
|
reported button codes. It returns FALSE if the ButtonClassRec could not be
|
||||||
allocated. Its parameters are:
|
allocated. Its parameters are:
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
|
|
@ -491,11 +491,11 @@ have buttons.
|
||||||
<title>InitValuatorClassDeviceStruct</title>
|
<title>InitValuatorClassDeviceStruct</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
This function is provided to allocate and initialize a ValuatorClassRec, and
|
This function is provided to allocate and initialize a ValuatorClassRec, and
|
||||||
should be called for extension devices that have valuators. It is passed the
|
should be called for extension devices that have valuators. It is passed the
|
||||||
number of axes of motion reported by the device, the address of the motion
|
number of axes of motion reported by the device, the address of the motion
|
||||||
history procedure for the device, the size of the motion history buffer,
|
history procedure for the device, the size of the motion history buffer,
|
||||||
and the mode (Absolute or Relative) of the device. It returns FALSE if
|
and the mode (Absolute or Relative) of the device. It returns FALSE if
|
||||||
the ValuatorClassRec could not be allocated. Its parameters are:
|
the ValuatorClassRec could not be allocated. Its parameters are:
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
|
|
@ -521,14 +521,14 @@ report motion.
|
||||||
<title>InitValuatorAxisStruct</title>
|
<title>InitValuatorAxisStruct</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
This function is provided to initialize an XAxisInfoRec, and
|
This function is provided to initialize an XAxisInfoRec, and
|
||||||
should be called for core and extension devices that have valuators.
|
should be called for core and extension devices that have valuators.
|
||||||
The space for the XAxisInfoRec is allocated by
|
The space for the XAxisInfoRec is allocated by
|
||||||
the InitValuatorClassDeviceStruct function, but is not initialized.
|
the InitValuatorClassDeviceStruct function, but is not initialized.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
InitValuatorAxisStruct should be called once for each axis of motion
|
InitValuatorAxisStruct should be called once for each axis of motion
|
||||||
reported by the device. Each
|
reported by the device. Each
|
||||||
invocation should be passed the axis number (starting with 0), the
|
invocation should be passed the axis number (starting with 0), the
|
||||||
minimum value for that axis, the maximum value for that axis, and the
|
minimum value for that axis, the maximum value for that axis, and the
|
||||||
|
|
@ -547,7 +547,7 @@ InitValuatorAxisStruct(dev, axnum, minval, maxval, resolution)
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
This routine is not called by InitPointerDeviceStruct for the
|
This routine is not called by InitPointerDeviceStruct for the
|
||||||
core X pointer. It must be called explicitly for core and extension devices
|
core X pointer. It must be called explicitly for core and extension devices
|
||||||
that report motion.
|
that report motion.
|
||||||
</para>
|
</para>
|
||||||
</sect3>
|
</sect3>
|
||||||
|
|
@ -555,7 +555,7 @@ that report motion.
|
||||||
<title>InitFocusClassDeviceStruct</title>
|
<title>InitFocusClassDeviceStruct</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
This function is provided to allocate and initialize a FocusClassRec, and
|
This function is provided to allocate and initialize a FocusClassRec, and
|
||||||
should be called for extension devices that can be focused. It is passed a
|
should be called for extension devices that can be focused. It is passed a
|
||||||
pointer to the device, and returns FALSE if the allocation fails.
|
pointer to the device, and returns FALSE if the allocation fails.
|
||||||
It has the following parameter:
|
It has the following parameter:
|
||||||
|
|
@ -577,7 +577,7 @@ is left implementation-dependent.
|
||||||
<title>InitProximityClassDeviceStruct</title>
|
<title>InitProximityClassDeviceStruct</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
This function is provided to allocate and initialize a ProximityClassRec, and
|
This function is provided to allocate and initialize a ProximityClassRec, and
|
||||||
should be called for extension absolute pointing devices that report proximity.
|
should be called for extension absolute pointing devices that report proximity.
|
||||||
It is passed a pointer to the device, and returns FALSE if the allocation fails.
|
It is passed a pointer to the device, and returns FALSE if the allocation fails.
|
||||||
It has the following parameter:
|
It has the following parameter:
|
||||||
|
|
@ -597,8 +597,8 @@ InitProximityClassDeviceStruct(dev)
|
||||||
<title>InitKbdFeedbackClassDeviceStruct</title>
|
<title>InitKbdFeedbackClassDeviceStruct</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
This function is provided to allocate and initialize a KbdFeedbackClassRec, and
|
This function is provided to allocate and initialize a KbdFeedbackClassRec, and
|
||||||
may be called for extension devices that support some or all of the
|
may be called for extension devices that support some or all of the
|
||||||
feedbacks that the core keyboard supports. It is passed a
|
feedbacks that the core keyboard supports. It is passed a
|
||||||
pointer to the device, a pointer to the procedure that sounds the bell,
|
pointer to the device, a pointer to the procedure that sounds the bell,
|
||||||
and a pointer to the device control procedure.
|
and a pointer to the device control procedure.
|
||||||
|
|
@ -621,7 +621,7 @@ and LedFeedbackClass feedbacks.
|
||||||
<title>InitPtrFeedbackClassDeviceStruct</title>
|
<title>InitPtrFeedbackClassDeviceStruct</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
This function is provided to allocate and initialize a PtrFeedbackClassRec, and
|
This function is provided to allocate and initialize a PtrFeedbackClassRec, and
|
||||||
should be called for extension devices that allow the setting of acceleration
|
should be called for extension devices that allow the setting of acceleration
|
||||||
and threshold. It is passed a pointer to the device,
|
and threshold. It is passed a pointer to the device,
|
||||||
and a pointer to the device control procedure.
|
and a pointer to the device control procedure.
|
||||||
|
|
@ -644,7 +644,7 @@ that support the setting of acceleration and threshold.
|
||||||
<title>InitLedFeedbackClassDeviceStruct</title>
|
<title>InitLedFeedbackClassDeviceStruct</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
This function is provided to allocate and initialize a LedFeedbackClassRec, and
|
This function is provided to allocate and initialize a LedFeedbackClassRec, and
|
||||||
should be called for extension devices that have LEDs.
|
should be called for extension devices that have LEDs.
|
||||||
It is passed a pointer to the device,
|
It is passed a pointer to the device,
|
||||||
and a pointer to the device control procedure.
|
and a pointer to the device control procedure.
|
||||||
|
|
@ -658,7 +658,7 @@ InitLedFeedbackClassDeviceStruct(dev, controlProc)
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
Up to 32 LEDs per feedback can be supported, and a device may have
|
Up to 32 LEDs per feedback can be supported, and a device may have
|
||||||
multiple feedbacks of the same type.
|
multiple feedbacks of the same type.
|
||||||
</para>
|
</para>
|
||||||
</sect4>
|
</sect4>
|
||||||
|
|
@ -666,7 +666,7 @@ multiple feedbacks of the same type.
|
||||||
<title>InitBellFeedbackClassDeviceStruct</title>
|
<title>InitBellFeedbackClassDeviceStruct</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
This function is provided to allocate and initialize a BellFeedbackClassRec,
|
This function is provided to allocate and initialize a BellFeedbackClassRec,
|
||||||
and should be called for extension devices that have a bell.
|
and should be called for extension devices that have a bell.
|
||||||
It is passed a pointer to the device,
|
It is passed a pointer to the device,
|
||||||
and a pointer to the device control procedure.
|
and a pointer to the device control procedure.
|
||||||
|
|
@ -684,15 +684,15 @@ InitBellFeedbackClassDeviceStruct(dev, bellProc, controlProc)
|
||||||
<title>InitStringFeedbackClassDeviceStruct</title>
|
<title>InitStringFeedbackClassDeviceStruct</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
This function is provided to allocate and initialize a StringFeedbackClassRec,
|
This function is provided to allocate and initialize a StringFeedbackClassRec,
|
||||||
and should be called for extension devices that have a display upon which a
|
and should be called for extension devices that have a display upon which a
|
||||||
string can be displayed.
|
string can be displayed.
|
||||||
It is passed a pointer to the device,
|
It is passed a pointer to the device,
|
||||||
and a pointer to the device control procedure.
|
and a pointer to the device control procedure.
|
||||||
It returns FALSE if the allocation fails, and has the following parameters:
|
It returns FALSE if the allocation fails, and has the following parameters:
|
||||||
<literallayout class="monospaced">
|
<literallayout class="monospaced">
|
||||||
Bool
|
Bool
|
||||||
InitStringFeedbackClassDeviceStruct(dev, controlProc, max_symbols,
|
InitStringFeedbackClassDeviceStruct(dev, controlProc, max_symbols,
|
||||||
num_symbols_supported, symbols)
|
num_symbols_supported, symbols)
|
||||||
DeviceIntPtr dev;
|
DeviceIntPtr dev;
|
||||||
void (*controlProc)();
|
void (*controlProc)();
|
||||||
|
|
@ -706,8 +706,8 @@ InitStringFeedbackClassDeviceStruct(dev, controlProc, max_symbols,
|
||||||
<title>InitIntegerFeedbackClassDeviceStruct</title>
|
<title>InitIntegerFeedbackClassDeviceStruct</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
This function is provided to allocate and initialize an
|
This function is provided to allocate and initialize an
|
||||||
IntegerFeedbackClassRec,
|
IntegerFeedbackClassRec,
|
||||||
and should be called for extension devices that have a display upon which an
|
and should be called for extension devices that have a display upon which an
|
||||||
integer can be displayed.
|
integer can be displayed.
|
||||||
It is passed a pointer to the device,
|
It is passed a pointer to the device,
|
||||||
|
|
@ -769,7 +769,7 @@ that device.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
DisableDevice is not called by any input extension routines. It can be
|
DisableDevice is not called by any input extension routines. It can be
|
||||||
called from the CloseInputDevice routine, which is called by
|
called from the CloseInputDevice routine, which is called by
|
||||||
ProcXCloseDevice when a client makes an XCloseDevice request. If
|
ProcXCloseDevice when a client makes an XCloseDevice request. If
|
||||||
DisableDevice is called, it should only be called when the last client
|
DisableDevice is called, it should only be called when the last client
|
||||||
|
|
@ -780,7 +780,7 @@ using the extension device has terminated or called XCloseDevice.
|
||||||
<title>Implementation-Dependent Routines</title>
|
<title>Implementation-Dependent Routines</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
Several input extension protocol requests have
|
Several input extension protocol requests have
|
||||||
implementation-dependent entry points. Default routines
|
implementation-dependent entry points. Default routines
|
||||||
are defined for these entry points and contained in the source
|
are defined for these entry points and contained in the source
|
||||||
file extensions/server/xinput/xstubs.c. Some implementations may
|
file extensions/server/xinput/xstubs.c. Some implementations may
|
||||||
|
|
@ -791,14 +791,14 @@ The following sections describe each of these routines.
|
||||||
<title>AddOtherInputDevices</title>
|
<title>AddOtherInputDevices</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
AddOtherInputDevice is called from ProcXListInputDevices as a result of
|
AddOtherInputDevice is called from ProcXListInputDevices as a result of
|
||||||
an XListInputDevices protocol request. It may be needed by
|
an XListInputDevices protocol request. It may be needed by
|
||||||
implementations that do not open extension input devices until requested
|
implementations that do not open extension input devices until requested
|
||||||
to do so by some client. These implementations may not initialize
|
to do so by some client. These implementations may not initialize
|
||||||
all devices when the X server starts up, because some of those devices
|
all devices when the X server starts up, because some of those devices
|
||||||
may be in use. Since the XListInputDevices
|
may be in use. Since the XListInputDevices
|
||||||
function only lists those devices that have been initialized,
|
function only lists those devices that have been initialized,
|
||||||
AddOtherInputDevices is called to give DDX a chance to
|
AddOtherInputDevices is called to give DDX a chance to
|
||||||
initialize any previously unavailable input devices.
|
initialize any previously unavailable input devices.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
|
|
@ -811,7 +811,7 @@ AddOtherInputDevices ()
|
||||||
DeviceIntPtr dev;
|
DeviceIntPtr dev;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i=0; i<MAX_DEVICES; i++)
|
for (i=0; i<MAX_DEVICES; i++)
|
||||||
{
|
{
|
||||||
if (!local_dev[i].initialized && available(local_dev[i]))
|
if (!local_dev[i].initialized && available(local_dev[i]))
|
||||||
{
|
{
|
||||||
|
|
@ -827,7 +827,7 @@ AddOtherInputDevices ()
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
The default AddOtherInputDevices routine in xstubs.c does nothing.
|
The default AddOtherInputDevices routine in xstubs.c does nothing.
|
||||||
If all input extension devices are initialized when the server
|
If all input extension devices are initialized when the server
|
||||||
starts up, it can be left as a null routine.
|
starts up, it can be left as a null routine.
|
||||||
</para>
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
@ -839,13 +839,13 @@ Some X server implementations open all input devices when the server
|
||||||
is initialized and never close them. Other implementations may open only
|
is initialized and never close them. Other implementations may open only
|
||||||
the X pointer and keyboard devices during server initialization,
|
the X pointer and keyboard devices during server initialization,
|
||||||
and open other input devices only when some client makes an
|
and open other input devices only when some client makes an
|
||||||
XOpenDevice request. This entry point is for the latter type of
|
XOpenDevice request. This entry point is for the latter type of
|
||||||
implementation.
|
implementation.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
If the physical device is not already open, it can be done in this routine.
|
If the physical device is not already open, it can be done in this routine.
|
||||||
In this case, the server must keep track of the fact that one or more clients
|
In this case, the server must keep track of the fact that one or more clients
|
||||||
have the device open, and physically close it when the last client that has
|
have the device open, and physically close it when the last client that has
|
||||||
it open makes an XCloseDevice request.
|
it open makes an XCloseDevice request.
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -874,15 +874,15 @@ are opened during X server initialization and kept open).
|
||||||
<title>SetDeviceMode</title>
|
<title>SetDeviceMode</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
Some implementations support input devices that can report
|
Some implementations support input devices that can report
|
||||||
either absolute positional data or relative motion. The XSetDeviceMode
|
either absolute positional data or relative motion. The XSetDeviceMode
|
||||||
protocol request is provided to allow DDX to change the current mode of
|
protocol request is provided to allow DDX to change the current mode of
|
||||||
such a device.
|
such a device.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
The default implementation is to always return a BadMatch error. If the
|
The default implementation is to always return a BadMatch error. If the
|
||||||
implementation does not support any input devices that are capable of
|
implementation does not support any input devices that are capable of
|
||||||
reporting both relative motion and absolute position information, the
|
reporting both relative motion and absolute position information, the
|
||||||
default implementation may be left unchanged.
|
default implementation may be left unchanged.
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -891,8 +891,8 @@ default implementation may be left unchanged.
|
||||||
<title>SetDeviceValuators</title>
|
<title>SetDeviceValuators</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
Some implementations support input devices that allow their valuators to be
|
Some implementations support input devices that allow their valuators to be
|
||||||
set to an initial value. The XSetDeviceValuators
|
set to an initial value. The XSetDeviceValuators
|
||||||
protocol request is provided to allow DDX to set the valuators of
|
protocol request is provided to allow DDX to set the valuators of
|
||||||
such a device.
|
such a device.
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -910,40 +910,40 @@ valuators to be set, the default implementation may be left unchanged.
|
||||||
The XChangePointerDevice protocol request is provided to change which device is
|
The XChangePointerDevice protocol request is provided to change which device is
|
||||||
used as the X pointer. Some implementations may maintain information
|
used as the X pointer. Some implementations may maintain information
|
||||||
specific to the X pointer in the private data structure pointed to by
|
specific to the X pointer in the private data structure pointed to by
|
||||||
the DeviceIntRec. ChangePointerDevice is called to allow such
|
the DeviceIntRec. ChangePointerDevice is called to allow such
|
||||||
implementations to move that information to the new pointer device.
|
implementations to move that information to the new pointer device.
|
||||||
The current location of the X cursor is an example of the type of
|
The current location of the X cursor is an example of the type of
|
||||||
information that might be affected.
|
information that might be affected.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
The DeviceIntRec structure that describes the X pointer device does not
|
The DeviceIntRec structure that describes the X pointer device does not
|
||||||
contain a FocusRec. If the device that has been made into the new X pointer
|
contain a FocusRec. If the device that has been made into the new X pointer
|
||||||
was previously a device that could be focused, ProcXChangePointerDevice will
|
was previously a device that could be focused, ProcXChangePointerDevice will
|
||||||
free the FocusRec associated with that device.
|
free the FocusRec associated with that device.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
If the server implementation desires to allow clients to focus the old pointer
|
If the server implementation desires to allow clients to focus the old pointer
|
||||||
device (which is now accessible through the input extension), it should call
|
device (which is now accessible through the input extension), it should call
|
||||||
InitFocusClassDeviceStruct for the old pointer device.
|
InitFocusClassDeviceStruct for the old pointer device.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
The XChangePointerDevice protocol request also allows the client
|
The XChangePointerDevice protocol request also allows the client
|
||||||
to choose which axes of the new pointer device are used to move
|
to choose which axes of the new pointer device are used to move
|
||||||
the X cursor in the X- and Y- directions. If the axes are different
|
the X cursor in the X- and Y- directions. If the axes are different
|
||||||
than the default ones, the server implementation should record that fact.
|
than the default ones, the server implementation should record that fact.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
If the server implementation supports input devices with valuators that
|
If the server implementation supports input devices with valuators that
|
||||||
are not allowed to be used as the X pointer, they should be screened out
|
are not allowed to be used as the X pointer, they should be screened out
|
||||||
by this routine and a BadDevice error returned.
|
by this routine and a BadDevice error returned.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
The default implementation is to do nothing.
|
The default implementation is to do nothing.
|
||||||
</para>
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
<sect2 id="ChangeKeyboardDevice">
|
<sect2 id="ChangeKeyboardDevice">
|
||||||
|
|
@ -953,19 +953,19 @@ The default implementation is to do nothing.
|
||||||
The XChangeKeyboardDevice protocol request is provided to change which device is
|
The XChangeKeyboardDevice protocol request is provided to change which device is
|
||||||
used as the X keyboard. Some implementations may maintain information
|
used as the X keyboard. Some implementations may maintain information
|
||||||
specific to the X keyboard in the private data structure pointed to by
|
specific to the X keyboard in the private data structure pointed to by
|
||||||
the DeviceIntRec. ChangeKeyboardDevice is called to allow such
|
the DeviceIntRec. ChangeKeyboardDevice is called to allow such
|
||||||
implementations to move that information to the new keyboard device.
|
implementations to move that information to the new keyboard device.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
The X keyboard device can be focused, and the DeviceIntRec that describes
|
The X keyboard device can be focused, and the DeviceIntRec that describes
|
||||||
that device has a FocusRec. If the device that has been made into the new X
|
that device has a FocusRec. If the device that has been made into the new X
|
||||||
keyboard did not previously have a FocusRec,
|
keyboard did not previously have a FocusRec,
|
||||||
ProcXChangeKeyboardDevice will allocate one for it.
|
ProcXChangeKeyboardDevice will allocate one for it.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
If the implementation does not want clients to be able to focus the old X
|
If the implementation does not want clients to be able to focus the old X
|
||||||
keyboard (which has now become available as an input extension device)
|
keyboard (which has now become available as an input extension device)
|
||||||
it should call DeleteFocusClassDeviceStruct to free the FocusRec.
|
it should call DeleteFocusClassDeviceStruct to free the FocusRec.
|
||||||
</para>
|
</para>
|
||||||
|
|
@ -977,7 +977,7 @@ BadDevice error returned.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
The default implementation is to do nothing.
|
The default implementation is to do nothing.
|
||||||
</para>
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
@ -986,11 +986,11 @@ The default implementation is to do nothing.
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
Events accessed through the input extension are analogous to the core input
|
Events accessed through the input extension are analogous to the core input
|
||||||
events, but have different event types. They are of types
|
events, but have different event types. They are of types
|
||||||
<function>DeviceKeyPress</function>, <function>DeviceKeyRelease</function>, <function>DeviceButtonPress</function>,
|
<function>DeviceKeyPress</function>, <function>DeviceKeyRelease</function>, <function>DeviceButtonPress</function>,
|
||||||
<function>DeviceButtonRelease</function>, <function>DeviceDeviceMotionNotify</function>,
|
<function>DeviceButtonRelease</function>, <function>DeviceDeviceMotionNotify</function>,
|
||||||
<function>DeviceProximityIn</function>, <function>DeviceProximityOut</function>, and <function>DeviceValuator</function>.
|
<function>DeviceProximityIn</function>, <function>DeviceProximityOut</function>, and <function>DeviceValuator</function>.
|
||||||
These event types are not constants. Instead, they are external integers
|
These event types are not constants. Instead, they are external integers
|
||||||
defined by the input extension. Their actual values will depend on which
|
defined by the input extension. Their actual values will depend on which
|
||||||
extensions are supported by a server, and the order in which they are
|
extensions are supported by a server, and the order in which they are
|
||||||
initialized.
|
initialized.
|
||||||
|
|
@ -1007,7 +1007,7 @@ input extension constants needed by DDX are defined in the file
|
||||||
Some events defined by the input extension contain more information than can
|
Some events defined by the input extension contain more information than can
|
||||||
be contained in the 32-byte xEvent data structure. To send this information
|
be contained in the 32-byte xEvent data structure. To send this information
|
||||||
to clients, DDX must generate two or more 32-byte wire events. The following
|
to clients, DDX must generate two or more 32-byte wire events. The following
|
||||||
sections describe the contents of these events.
|
sections describe the contents of these events.
|
||||||
</para>
|
</para>
|
||||||
<sect2 id="Device_Key_Events">
|
<sect2 id="Device_Key_Events">
|
||||||
<title>Device Key Events</title>
|
<title>Device Key Events</title>
|
||||||
|
|
@ -1053,7 +1053,7 @@ valuator0 through valuator5 - the values of the valuators.
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
In order to pass this information to the input extension library, two 32-byte
|
In order to pass this information to the input extension library, two 32-byte
|
||||||
wire events must be generated by DDX. The first has an event type of
|
wire events must be generated by DDX. The first has an event type of
|
||||||
<function>DeviceKeyPress</function>, and the second has an event type of <function>DeviceValuator</function>.
|
<function>DeviceKeyPress</function>, and the second has an event type of <function>DeviceValuator</function>.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
|
|
@ -1106,7 +1106,7 @@ The following code fragment shows how the two wire events could be initialized:
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
<function>DeviceButton</function> events contain all the information that is contained in
|
<function>DeviceButton</function> events contain all the information that is contained in
|
||||||
a core button event, and also the same additional information that a
|
a core button event, and also the same additional information that a
|
||||||
<function>DeviceKey</function> event contains.
|
<function>DeviceKey</function> event contains.
|
||||||
</para>
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
@ -1174,8 +1174,8 @@ set correctly.
|
||||||
<title>Device Proximity Events</title>
|
<title>Device Proximity Events</title>
|
||||||
<para>
|
<para>
|
||||||
<!-- .LP -->
|
<!-- .LP -->
|
||||||
Some input devices that report absolute positional information, such as
|
Some input devices that report absolute positional information, such as
|
||||||
graphics tablets and touchscreens, may report proximity events.
|
graphics tablets and touchscreens, may report proximity events.
|
||||||
<function>ProximityIn</function>
|
<function>ProximityIn</function>
|
||||||
events are generated when a pointing device like a stylus, or in the case
|
events are generated when a pointing device like a stylus, or in the case
|
||||||
of a touchscreen, the user's finger, comes into close proximity with the
|
of a touchscreen, the user's finger, comes into close proximity with the
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ History:
|
||||||
Since the original X server was written at Digital in 1987, the OS and DIX
|
Since the original X server was written at Digital in 1987, the OS and DIX
|
||||||
layers shared responsibility for scheduling the order to service
|
layers shared responsibility for scheduling the order to service
|
||||||
client requests. The original design was simplistic; under the maximum
|
client requests. The original design was simplistic; under the maximum
|
||||||
first make it work, then make it work well, this was a good idea. Now
|
first make it work, then make it work well, this was a good idea. Now
|
||||||
that we have a bit more experience with X applications, it's time to
|
that we have a bit more experience with X applications, it's time to
|
||||||
rethink the design.
|
rethink the design.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,7 @@ static const FbBits fbStipple1Bits[2] = {
|
||||||
* Example: srcX = 0 dstX = 8 (FB unit 32 dstBpp 8)
|
* Example: srcX = 0 dstX = 8 (FB unit 32 dstBpp 8)
|
||||||
*
|
*
|
||||||
* **** **** **** **** **** **** **** ****
|
* **** **** **** **** **** **** **** ****
|
||||||
* ^
|
* ^
|
||||||
* ******** ******** ******** ********
|
* ******** ******** ******** ********
|
||||||
* ^
|
* ^
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -1045,7 +1045,7 @@ glamor_egl_try_gles_api(ScrnInfoPtr scrn)
|
||||||
{
|
{
|
||||||
struct glamor_egl_screen_private *glamor_egl =
|
struct glamor_egl_screen_private *glamor_egl =
|
||||||
glamor_egl_get_screen_private(scrn);
|
glamor_egl_get_screen_private(scrn);
|
||||||
|
|
||||||
static const EGLint config_attribs[] = {
|
static const EGLint config_attribs[] = {
|
||||||
EGL_CONTEXT_CLIENT_VERSION, 2,
|
EGL_CONTEXT_CLIENT_VERSION, 2,
|
||||||
EGL_NONE
|
EGL_NONE
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
// Default modes distilled from
|
// Default modes distilled from
|
||||||
// "VESA and Industry Standards and Guide for Computer Display Monitor
|
// "VESA and Industry Standards and Guide for Computer Display Monitor
|
||||||
// Timing", version 1.0, revision 0.8, adopted September 17, 1998.
|
// Timing", version 1.0, revision 0.8, adopted September 17, 1998.
|
||||||
//
|
//
|
||||||
// $XFree86: xc/programs/Xserver/hw/xfree86/etc/vesamodes,v 1.3 1999/11/16 03:28:03 tsi Exp $
|
// $XFree86: xc/programs/Xserver/hw/xfree86/etc/vesamodes,v 1.3 1999/11/16 03:28:03 tsi Exp $
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,26 +5,26 @@
|
||||||
1) DDC INITIALIZATION
|
1) DDC INITIALIZATION
|
||||||
|
|
||||||
When implementing DDC in the driver one has the choice between
|
When implementing DDC in the driver one has the choice between
|
||||||
DDC1 and DDC2.
|
DDC1 and DDC2.
|
||||||
DDC1 data is continuously transmitted by a DDC1 capable display
|
DDC1 data is continuously transmitted by a DDC1 capable display
|
||||||
device. The data is send serially over a data line; the Vsync
|
device. The data is send serially over a data line; the Vsync
|
||||||
signal serves as clock. Only one EDID 1.x data block can be
|
signal serves as clock. Only one EDID 1.x data block can be
|
||||||
transmitted using DDC1. Since transmission of an EDID1 block
|
transmitted using DDC1. Since transmission of an EDID1 block
|
||||||
using a regular Vsync frequency would take up several seconds
|
using a regular Vsync frequency would take up several seconds
|
||||||
the driver can increase the Vsync frequency to up to 25 kHz as
|
the driver can increase the Vsync frequency to up to 25 kHz as
|
||||||
soon as it detects DDC1 activity on the data line.
|
soon as it detects DDC1 activity on the data line.
|
||||||
DDC2 data is transmitted using the I2C protocol. This requires
|
DDC2 data is transmitted using the I2C protocol. This requires
|
||||||
an additional clock line. DDC2 is capable of transmitting EDID1
|
an additional clock line. DDC2 is capable of transmitting EDID1
|
||||||
and EDID2 block as well as a VDIF block on display devices that
|
and EDID2 block as well as a VDIF block on display devices that
|
||||||
support these.
|
support these.
|
||||||
Display devices switch into the DDC2 mode as soon as they detect
|
Display devices switch into the DDC2 mode as soon as they detect
|
||||||
activity on the DDC clock line. Once the are in DDC2 mode they
|
activity on the DDC clock line. Once the are in DDC2 mode they
|
||||||
stop transmitting DDC1 signals until the next power cycle.
|
stop transmitting DDC1 signals until the next power cycle.
|
||||||
|
|
||||||
Some graphics chipset configurations which are not capable of
|
Some graphics chipset configurations which are not capable of
|
||||||
DDC2 might still be able to read DDC1 data. Where available
|
DDC2 might still be able to read DDC1 data. Where available
|
||||||
DDC2 it is preferable.
|
DDC2 it is preferable.
|
||||||
|
|
||||||
All relevant prototypes and defines are in xf86DDC.h.
|
All relevant prototypes and defines are in xf86DDC.h.
|
||||||
DDC2 additionally requires I2C support. The I2C prototypes
|
DDC2 additionally requires I2C support. The I2C prototypes
|
||||||
are in xf86i2c.h.
|
are in xf86i2c.h.
|
||||||
|
|
@ -36,25 +36,25 @@
|
||||||
of the DDC line:
|
of the DDC line:
|
||||||
|
|
||||||
unsigned int XXX_ddc1Read(ScrnInfoPtr pScrn)
|
unsigned int XXX_ddc1Read(ScrnInfoPtr pScrn)
|
||||||
|
|
||||||
Additionally a function is required to increase the Vsync
|
Additionally a function is required to increase the Vsync
|
||||||
frequency to max. 25 kHz.
|
frequency to max. 25 kHz.
|
||||||
|
|
||||||
void XXX_ddc1SetSpeed(ScrnInfoPtr pScrn, xf86ddcSpeed speed)
|
void XXX_ddc1SetSpeed(ScrnInfoPtr pScrn, xf86ddcSpeed speed)
|
||||||
|
|
||||||
If the speed argument is DDC_FAST the function should increase
|
If the speed argument is DDC_FAST the function should increase
|
||||||
the Vsync frequency on DDC_SLOW it should restore the original
|
the Vsync frequency on DDC_SLOW it should restore the original
|
||||||
value. For convenience a generic ddc1SetSpeed() function is provided
|
value. For convenience a generic ddc1SetSpeed() function is provided
|
||||||
in the vga module for VGA-like chipsets.
|
in the vga module for VGA-like chipsets.
|
||||||
|
|
||||||
void vgaHWddc1SetSpeed(ScrnInfoPtr pScrn, sf86ddcSpeed speed).
|
void vgaHWddc1SetSpeed(ScrnInfoPtr pScrn, sf86ddcSpeed speed).
|
||||||
|
|
||||||
To read out the DDC1 data the driver should call
|
To read out the DDC1 data the driver should call
|
||||||
|
|
||||||
xf86MonPtr xf86DoEDID_DDC1(int scrnIndex,
|
xf86MonPtr xf86DoEDID_DDC1(int scrnIndex,
|
||||||
void (*DDC1SetSpeed)(ScrnInfoPtr, xf86ddcSpeed),
|
void (*DDC1SetSpeed)(ScrnInfoPtr, xf86ddcSpeed),
|
||||||
unsigned int (*DDC1Read)(ScrnInfoPtr))
|
unsigned int (*DDC1Read)(ScrnInfoPtr))
|
||||||
|
|
||||||
in PreInit(). DDC1SetSpeed is a pointer to the SetSpeed()
|
in PreInit(). DDC1SetSpeed is a pointer to the SetSpeed()
|
||||||
function, DDC1Read has to point to the DDC1 read function.
|
function, DDC1Read has to point to the DDC1 read function.
|
||||||
The function will return a pointer to the xf86Monitor structure
|
The function will return a pointer to the xf86Monitor structure
|
||||||
|
|
@ -62,11 +62,11 @@
|
||||||
NULL will be returned on failure.
|
NULL will be returned on failure.
|
||||||
|
|
||||||
DDC2 Support
|
DDC2 Support
|
||||||
|
|
||||||
To read out DDC2 information I2C has to be initialized first.
|
To read out DDC2 information I2C has to be initialized first.
|
||||||
(See documentation for the i2c module).
|
(See documentation for the i2c module).
|
||||||
The function
|
The function
|
||||||
|
|
||||||
xf86MonPtr xf86DoEDID_DDC2(int scrnIndex, I2CBusPtr pBus)
|
xf86MonPtr xf86DoEDID_DDC2(int scrnIndex, I2CBusPtr pBus)
|
||||||
|
|
||||||
is provided to read out and process DDC2 data. A pointer
|
is provided to read out and process DDC2 data. A pointer
|
||||||
|
|
@ -76,16 +76,16 @@
|
||||||
which contains all information retrieved by DDC.
|
which contains all information retrieved by DDC.
|
||||||
NULL will be returned on failure.
|
NULL will be returned on failure.
|
||||||
|
|
||||||
Printing monitor parameters
|
Printing monitor parameters
|
||||||
|
|
||||||
To print out the information contained in the xf86Monitor
|
To print out the information contained in the xf86Monitor
|
||||||
structure the function
|
structure the function
|
||||||
|
|
||||||
xf86MonPtr xf86PrintEDID(xf86MonPtr monitor)
|
xf86MonPtr xf86PrintEDID(xf86MonPtr monitor)
|
||||||
|
|
||||||
is provided.
|
is provided.
|
||||||
|
|
||||||
Further processing of the xf86Monitor structure is not yet
|
Further processing of the xf86Monitor structure is not yet
|
||||||
implemented. However, it is planned to use the information
|
implemented. However, it is planned to use the information
|
||||||
about video modes, gamma values etc.
|
about video modes, gamma values etc.
|
||||||
Therefore it is strongly recommended to read out DDC data
|
Therefore it is strongly recommended to read out DDC data
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ goal is to always have one 'special' output which is used for operations
|
||||||
which need a single defined monitor (like XFree86-VidModeExtension mode
|
which need a single defined monitor (like XFree86-VidModeExtension mode
|
||||||
setting, RandR 1.1 mode setting, DDC property setting, etc.).
|
setting, RandR 1.1 mode setting, DDC property setting, etc.).
|
||||||
|
|
||||||
2.1.1 Output overview
|
2.1.1 Output overview
|
||||||
|
|
||||||
As outputs are connected to monitors, they hold a list of modes supported by
|
As outputs are connected to monitors, they hold a list of modes supported by
|
||||||
the monitor. If the monitor and output support DDC, then the list of modes
|
the monitor. If the monitor and output support DDC, then the list of modes
|
||||||
|
|
@ -102,12 +102,12 @@ This sets the range of screen sizes supported by the driver.
|
||||||
xf86CrtcPtr
|
xf86CrtcPtr
|
||||||
xf86CrtcCreate (ScrnInfoPtr scrn,
|
xf86CrtcCreate (ScrnInfoPtr scrn,
|
||||||
const xf86CrtcFuncsRec *funcs)
|
const xf86CrtcFuncsRec *funcs)
|
||||||
|
|
||||||
Create one CRTC object. See the discussion below for a description of the
|
Create one CRTC object. See the discussion below for a description of the
|
||||||
contents of the xf86CrtcFuncsRec. Note that this is done in PreInit, so it
|
contents of the xf86CrtcFuncsRec. Note that this is done in PreInit, so it
|
||||||
should not be re-invoked at each server generation. Create one of these for
|
should not be re-invoked at each server generation. Create one of these for
|
||||||
each CRTC present in the hardware.
|
each CRTC present in the hardware.
|
||||||
|
|
||||||
xf86OutputPtr
|
xf86OutputPtr
|
||||||
xf86OutputCreate (ScrnInfoPtr scrn,
|
xf86OutputCreate (ScrnInfoPtr scrn,
|
||||||
const xf86OutputFuncsRec *funcs,
|
const xf86OutputFuncsRec *funcs,
|
||||||
|
|
@ -118,26 +118,26 @@ contents of the xf86OutputFuncsRec. This is also called from PreInit and
|
||||||
need not be re-invoked at each ScreenInit time. An Output should be created
|
need not be re-invoked at each ScreenInit time. An Output should be created
|
||||||
for every Output present in the hardware, not just for outputs which have
|
for every Output present in the hardware, not just for outputs which have
|
||||||
detected monitors.
|
detected monitors.
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
xf86OutputRename (xf86OutputPtr output, const char *name)
|
xf86OutputRename (xf86OutputPtr output, const char *name)
|
||||||
|
|
||||||
If necessary, the name of an output can be changed after it is created using
|
If necessary, the name of an output can be changed after it is created using
|
||||||
this function.
|
this function.
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
|
xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow)
|
||||||
|
|
||||||
Using the resources provided, and the configuration specified by the user,
|
Using the resources provided, and the configuration specified by the user,
|
||||||
this function computes an initial configuration for the server. It tries to
|
this function computes an initial configuration for the server. It tries to
|
||||||
enable as much hardware as possible using some fairly simple heuristics.
|
enable as much hardware as possible using some fairly simple heuristics.
|
||||||
|
|
||||||
The 'canGrow' parameter indicates that the frame buffer does not have a fixed
|
The 'canGrow' parameter indicates that the frame buffer does not have a fixed
|
||||||
size. When the frame buffer has a fixed size, the configuration selects a
|
size. When the frame buffer has a fixed size, the configuration selects a
|
||||||
'reasonablely large' frame buffer so that common reconfiguration options are
|
'reasonablely large' frame buffer so that common reconfiguration options are
|
||||||
possible. For resizable frame buffers, the frame buffer is set to the smallest
|
possible. For resizable frame buffers, the frame buffer is set to the smallest
|
||||||
size that encloses the desired configuration.
|
size that encloses the desired configuration.
|
||||||
|
|
||||||
3.2 ScreenInit functions
|
3.2 ScreenInit functions
|
||||||
|
|
||||||
These functions should be used during the driver ScreenInit phase.
|
These functions should be used during the driver ScreenInit phase.
|
||||||
|
|
@ -189,7 +189,7 @@ Functions called from the pScrn->SwitchMode hook, which is used by the
|
||||||
XFree86-VidModeExtension and the keypad mode switch commands.
|
XFree86-VidModeExtension and the keypad mode switch commands.
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
xf86SetSingleMode (ScrnInfoPtr scrn,
|
xf86SetSingleMode (ScrnInfoPtr scrn,
|
||||||
DisplayModePtr desired,
|
DisplayModePtr desired,
|
||||||
Rotation rotation)
|
Rotation rotation)
|
||||||
|
|
||||||
|
|
@ -237,7 +237,7 @@ specified CRTC are included in the mode setting process. 'x' and 'y' are the
|
||||||
offset within the frame buffer that the crtc is placed at. No checking is
|
offset within the frame buffer that the crtc is placed at. No checking is
|
||||||
done in this function to ensure that the mode is usable by the active
|
done in this function to ensure that the mode is usable by the active
|
||||||
outputs.
|
outputs.
|
||||||
|
|
||||||
void
|
void
|
||||||
xf86ProbeOutputModes (ScrnInfoPtr pScrn, int maxX, int maxY)
|
xf86ProbeOutputModes (ScrnInfoPtr pScrn, int maxX, int maxY)
|
||||||
|
|
||||||
|
|
@ -246,7 +246,7 @@ and then acquires new mode lists for all monitors which are not disconnected.
|
||||||
Monitor configuration data is used to modify the mode lists returned by the
|
Monitor configuration data is used to modify the mode lists returned by the
|
||||||
outputs. 'maxX' and 'maxY' limit the maximum size modes that will be
|
outputs. 'maxX' and 'maxY' limit the maximum size modes that will be
|
||||||
returned.
|
returned.
|
||||||
|
|
||||||
void
|
void
|
||||||
xf86SetScrnInfoModes (ScrnInfoPtr pScrn)
|
xf86SetScrnInfoModes (ScrnInfoPtr pScrn)
|
||||||
|
|
||||||
|
|
@ -258,7 +258,7 @@ Usually, the driver won't need to call this function as
|
||||||
xf86InitialConfiguration will do so automatically, as well as any RandR
|
xf86InitialConfiguration will do so automatically, as well as any RandR
|
||||||
functions which reprobe for modes. However, if the driver reprobes for modes
|
functions which reprobe for modes. However, if the driver reprobes for modes
|
||||||
at other times using xf86ProbeOutputModes, this function needs to be called.
|
at other times using xf86ProbeOutputModes, this function needs to be called.
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
xf86DiDGAReInit (ScreenPtr pScreen)
|
xf86DiDGAReInit (ScreenPtr pScreen)
|
||||||
|
|
||||||
|
|
@ -273,7 +273,7 @@ After any sequence of calls using xf86CrtcSetMode, this function cleans up
|
||||||
any leftover Output and CRTC objects by disabling them, saving power. It is
|
any leftover Output and CRTC objects by disabling them, saving power. It is
|
||||||
safe to call this whenever the server is running as it only disables objects
|
safe to call this whenever the server is running as it only disables objects
|
||||||
which are not currently in use.
|
which are not currently in use.
|
||||||
|
|
||||||
4. CRTC operations
|
4. CRTC operations
|
||||||
|
|
||||||
4.1 CRTC functions
|
4.1 CRTC functions
|
||||||
|
|
@ -291,7 +291,7 @@ crtc dpms functions.
|
||||||
|
|
||||||
void
|
void
|
||||||
crtc->funcs->save (xf86CrtcPtr crtc)
|
crtc->funcs->save (xf86CrtcPtr crtc)
|
||||||
|
|
||||||
void
|
void
|
||||||
crtc->funcs->restore (xf86CrtcPtr crtc)
|
crtc->funcs->restore (xf86CrtcPtr crtc)
|
||||||
|
|
||||||
|
|
@ -302,7 +302,7 @@ code here. In particular, the server itself never uses this function.
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
crtc->funcs->lock (xf86CrtcPtr crtc)
|
crtc->funcs->lock (xf86CrtcPtr crtc)
|
||||||
|
|
||||||
void
|
void
|
||||||
crtc->funcs->unlock (xf86CrtcPtr crtc)
|
crtc->funcs->unlock (xf86CrtcPtr crtc)
|
||||||
|
|
||||||
|
|
@ -312,7 +312,7 @@ the hardware while the server is busy changing the output configuration. If
|
||||||
the lock function returns FALSE, the unlock function will not be invoked.
|
the lock function returns FALSE, the unlock function will not be invoked.
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
crtc->funcs->mode_fixup (xf86CrtcPtr crtc,
|
crtc->funcs->mode_fixup (xf86CrtcPtr crtc,
|
||||||
DisplayModePtr mode,
|
DisplayModePtr mode,
|
||||||
DisplayModePtr adjusted_mode)
|
DisplayModePtr adjusted_mode)
|
||||||
|
|
||||||
|
|
@ -388,20 +388,20 @@ driver writer.
|
||||||
* Associated ScrnInfo
|
* Associated ScrnInfo
|
||||||
*/
|
*/
|
||||||
ScrnInfoPtr scrn;
|
ScrnInfoPtr scrn;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Active state of this CRTC
|
* Active state of this CRTC
|
||||||
*
|
*
|
||||||
* Set when this CRTC is driving one or more outputs
|
* Set when this CRTC is driving one or more outputs
|
||||||
*/
|
*/
|
||||||
Bool enabled;
|
Bool enabled;
|
||||||
|
|
||||||
/** Track whether cursor is within CRTC range */
|
/** Track whether cursor is within CRTC range */
|
||||||
Bool cursorInRange;
|
Bool cursorInRange;
|
||||||
|
|
||||||
/** Track state of cursor associated with this CRTC */
|
/** Track state of cursor associated with this CRTC */
|
||||||
Bool cursorShown;
|
Bool cursorShown;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Active mode
|
* Active mode
|
||||||
*
|
*
|
||||||
|
|
@ -413,14 +413,14 @@ driver writer.
|
||||||
Rotation rotation;
|
Rotation rotation;
|
||||||
PixmapPtr rotatedPixmap;
|
PixmapPtr rotatedPixmap;
|
||||||
void *rotatedData;
|
void *rotatedData;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Position on screen
|
* Position on screen
|
||||||
*
|
*
|
||||||
* Locates this CRTC within the frame buffer
|
* Locates this CRTC within the frame buffer
|
||||||
*/
|
*/
|
||||||
int x, y;
|
int x, y;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Desired mode
|
* Desired mode
|
||||||
*
|
*
|
||||||
|
|
@ -432,10 +432,10 @@ driver writer.
|
||||||
DisplayModeRec desiredMode;
|
DisplayModeRec desiredMode;
|
||||||
Rotation desiredRotation;
|
Rotation desiredRotation;
|
||||||
int desiredX, desiredY;
|
int desiredX, desiredY;
|
||||||
|
|
||||||
/** crtc-specific functions */
|
/** crtc-specific functions */
|
||||||
const xf86CrtcFuncsRec *funcs;
|
const xf86CrtcFuncsRec *funcs;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Driver private
|
* Driver private
|
||||||
*
|
*
|
||||||
|
|
@ -455,7 +455,7 @@ driver writer.
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
5. Output functions.
|
5. Output functions.
|
||||||
|
|
||||||
6. Configuration
|
6. Configuration
|
||||||
|
|
|
||||||
|
|
@ -2324,7 +2324,7 @@ CloseScreen(ScreenPtr pScreen)
|
||||||
dixLookupPrivate(&pScreen->devPrivates, miPointerScreenKey);
|
dixLookupPrivate(&pScreen->devPrivates, miPointerScreenKey);
|
||||||
|
|
||||||
if (PointPriv->spriteFuncs == &drmmode_sprite_funcs)
|
if (PointPriv->spriteFuncs == &drmmode_sprite_funcs)
|
||||||
PointPriv->spriteFuncs = ms->SpriteFuncs;
|
PointPriv->spriteFuncs = ms->SpriteFuncs;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pScrn->vtSema) {
|
if (pScrn->vtSema) {
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ calls to other int10 module functions.
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
To allocate memory in the real mode execution environment
|
To allocate memory in the real mode execution environment
|
||||||
|
|
||||||
void * xf86Int10AllocPages(xf86Int10InfoPtr pInt,int num, int *off);
|
void * xf86Int10AllocPages(xf86Int10InfoPtr pInt,int num, int *off);
|
||||||
|
|
||||||
can be called. It allocates num consecutive pagesize chunks. It
|
can be called. It allocates num consecutive pagesize chunks. It
|
||||||
|
|
@ -45,7 +45,7 @@ Is used to free num pages beginning at pbase.
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
The BIOS call is executed by calling:
|
The BIOS call is executed by calling:
|
||||||
|
|
||||||
void xf86ExecX86int10(xf86Int10InfoPtr pInt);
|
void xf86ExecX86int10(xf86Int10InfoPtr pInt);
|
||||||
|
|
||||||
The number of the interrupt (normally 10) and the initial values of
|
The number of the interrupt (normally 10) and the initial values of
|
||||||
|
|
@ -143,11 +143,11 @@ to find out if the user has requested not to initialize int10. If so
|
||||||
xf86InitInt10() should return NULL. Otherwise an xf86Int10InfoRec
|
xf86InitInt10() should return NULL. Otherwise an xf86Int10InfoRec
|
||||||
should be allocated. This structure contains the following fields:
|
should be allocated. This structure contains the following fields:
|
||||||
|
|
||||||
a. int entityIndex - index of the entity whose BIOS is to be
|
a. int entityIndex - index of the entity whose BIOS is to be
|
||||||
executed.
|
executed.
|
||||||
b. int scrnIndex - index of the screen assigned the entity.
|
b. int scrnIndex - index of the screen assigned the entity.
|
||||||
c. pointer cpuRegs - pointer to a emulator/vm86-mode private
|
c. pointer cpuRegs - pointer to a emulator/vm86-mode private
|
||||||
structure. May hold cpu register values
|
structure. May hold cpu register values
|
||||||
for the emulator.
|
for the emulator.
|
||||||
d. CARD16 BIOSseg - Video BIOS segment address.
|
d. CARD16 BIOSseg - Video BIOS segment address.
|
||||||
e. pointer private - pointer to a os specific data structure.
|
e. pointer private - pointer to a os specific data structure.
|
||||||
|
|
@ -166,9 +166,9 @@ memory should be freed and xf86Int10Init(0 should exit returning NULL.
|
||||||
|
|
||||||
If the platform has a PC like system BIOS it may be copied to or
|
If the platform has a PC like system BIOS it may be copied to or
|
||||||
mapped into memory locations SYS_BIOS to SYS_SIZE-1 of the real mode
|
mapped into memory locations SYS_BIOS to SYS_SIZE-1 of the real mode
|
||||||
memory environment of this process. Otherwise the helper function:
|
memory environment of this process. Otherwise the helper function:
|
||||||
|
|
||||||
int setup_system_bios(CARD32 base_addr);
|
int setup_system_bios(CARD32 base_addr);
|
||||||
|
|
||||||
may be called to set up a rudimentary system BIOS sufficient to be
|
may be called to set up a rudimentary system BIOS sufficient to be
|
||||||
used to boot video BIOSes. base_addr specifies the virtual address
|
used to boot video BIOSes. base_addr specifies the virtual address
|
||||||
|
|
@ -181,16 +181,16 @@ cards by calling:
|
||||||
void reset_int_vect(xf86Int10InfoPtr pInt); To initialize the
|
void reset_int_vect(xf86Int10InfoPtr pInt); To initialize the
|
||||||
|
|
||||||
correct video BIOS entry points the BIOS must be warm-booted. If no
|
correct video BIOS entry points the BIOS must be warm-booted. If no
|
||||||
PC-like int vector is available one can be set up by calling
|
PC-like int vector is available one can be set up by calling
|
||||||
|
|
||||||
void setup_int_vect(xf86Int10InfoPtr pInt);
|
void setup_int_vect(xf86Int10InfoPtr pInt);
|
||||||
|
|
||||||
In this case the video BIOS has to be warm-booted always. If the
|
In this case the video BIOS has to be warm-booted always. If the
|
||||||
video BIOS for this entity has been installed during boot it may be
|
video BIOS for this entity has been installed during boot it may be
|
||||||
mapped (or copied) directly to the correct address in the real mode
|
mapped (or copied) directly to the correct address in the real mode
|
||||||
memory environment. Otherwise
|
memory environment. Otherwise
|
||||||
|
|
||||||
int mapPciRom(xf86Int10InfoPtr pInt, unsigned char * address);
|
int mapPciRom(xf86Int10InfoPtr pInt, unsigned char * address);
|
||||||
|
|
||||||
should be called to copy the BIOS image from PCI ROM. 'address'
|
should be called to copy the BIOS image from PCI ROM. 'address'
|
||||||
specifies the address this image should be copied to. Sufficient space
|
specifies the address this image should be copied to. Sufficient space
|
||||||
|
|
@ -199,7 +199,7 @@ mapPciRom(). This function will return the size of the BIOS image in
|
||||||
bytes if it was able to successfully copy the image and 0
|
bytes if it was able to successfully copy the image and 0
|
||||||
otherwise. To create a well defined point to exit the softbooter
|
otherwise. To create a well defined point to exit the softbooter
|
||||||
|
|
||||||
void set_return_trap(xf86Int10Ptr pInt);
|
void set_return_trap(xf86Int10Ptr pInt);
|
||||||
|
|
||||||
may be called. It sets up a 'hlt' instruction in the emulator memory
|
may be called. It sets up a 'hlt' instruction in the emulator memory
|
||||||
just above the BIOS variable area. Before entering real mode execution
|
just above the BIOS variable area. Before entering real mode execution
|
||||||
|
|
@ -207,7 +207,7 @@ this address will be pushed onto the return stack. If the BIOS needs
|
||||||
to be warm-booted this should be done before leaving xf86InitInt10()
|
to be warm-booted this should be done before leaving xf86InitInt10()
|
||||||
by setting num in the xf86Int10InfoRec to 0xe6 and calling
|
by setting num in the xf86Int10InfoRec to 0xe6 and calling
|
||||||
|
|
||||||
void xf86ExecX86int10(xf86Int10IfoPtr pInt);
|
void xf86ExecX86int10(xf86Int10IfoPtr pInt);
|
||||||
|
|
||||||
The implementation of this function will be discussed below. This
|
The implementation of this function will be discussed below. This
|
||||||
function should be wrapped by calls to void LockLegacyVGA(screen,
|
function should be wrapped by calls to void LockLegacyVGA(screen,
|
||||||
|
|
@ -240,7 +240,7 @@ the function
|
||||||
should be provided. If the entity to be freed was mapped by
|
should be provided. If the entity to be freed was mapped by
|
||||||
MapCurrentInt10() this mapping needs to be undone also.
|
MapCurrentInt10() this mapping needs to be undone also.
|
||||||
|
|
||||||
4.
|
4.
|
||||||
void * xf86Int10AllocPages(xf86Int10InfoPtr pInt,int num, int *off)
|
void * xf86Int10AllocPages(xf86Int10InfoPtr pInt,int num, int *off)
|
||||||
void xf86Int10FreePages(xf86Int10InfoPtr pInt, void *pbase, int num)
|
void xf86Int10FreePages(xf86Int10InfoPtr pInt, void *pbase, int num)
|
||||||
|
|
||||||
|
|
@ -277,7 +277,7 @@ set up the non-static real mode execution environment. On return from
|
||||||
setup_int() 'Int10Current' holds a pointer to the current
|
setup_int() 'Int10Current' holds a pointer to the current
|
||||||
xf86Int10InfoRec.
|
xf86Int10InfoRec.
|
||||||
|
|
||||||
It should start execution by calling
|
It should start execution by calling
|
||||||
|
|
||||||
Bool int_handler(xf86Int10InfoPtr pInt);
|
Bool int_handler(xf86Int10InfoPtr pInt);
|
||||||
|
|
||||||
|
|
@ -287,7 +287,7 @@ the resulting register values back to the xf86Int10InfoRec structure
|
||||||
|
|
||||||
void finish_int(xf86Int10InfoPtr pInt);
|
void finish_int(xf86Int10InfoPtr pInt);
|
||||||
|
|
||||||
should be called.
|
should be called.
|
||||||
|
|
||||||
Helper functions are provided to aid the implementation of a vm86
|
Helper functions are provided to aid the implementation of a vm86
|
||||||
call:
|
call:
|
||||||
|
|
|
||||||
|
|
@ -810,7 +810,7 @@ xf86CVTMode(int HDisplay, int VDisplay, float VRefresh, Bool Reduced,
|
||||||
|
|
||||||
XNFasprintf(&tmp, "%dx%d", HDisplay, VDisplay);
|
XNFasprintf(&tmp, "%dx%d", HDisplay, VDisplay);
|
||||||
Mode->name = tmp;
|
Mode->name = tmp;
|
||||||
|
|
||||||
Mode->VDisplay = libxcvt_mode_info->vdisplay;
|
Mode->VDisplay = libxcvt_mode_info->vdisplay;
|
||||||
Mode->HDisplay = libxcvt_mode_info->hdisplay;
|
Mode->HDisplay = libxcvt_mode_info->hdisplay;
|
||||||
Mode->Clock = libxcvt_mode_info->dot_clock;
|
Mode->Clock = libxcvt_mode_info->dot_clock;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/ Copyright (c) 2005, Oracle and/or its affiliates.
|
/ Copyright (c) 2005, Oracle and/or its affiliates.
|
||||||
/
|
/
|
||||||
/ Permission is hereby granted, free of charge, to any person obtaining a
|
/ Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
/ copy of this software and associated documentation files (the "Software"),
|
/ copy of this software and associated documentation files (the "Software"),
|
||||||
/ to deal in the Software without restriction, including without limitation
|
/ to deal in the Software without restriction, including without limitation
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/ Copyright (c) 2004, Oracle and/or its affiliates.
|
/ Copyright (c) 2004, Oracle and/or its affiliates.
|
||||||
/
|
/
|
||||||
/ Permission is hereby granted, free of charge, to any person obtaining a
|
/ Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
/ copy of this software and associated documentation files (the "Software"),
|
/ copy of this software and associated documentation files (the "Software"),
|
||||||
/ to deal in the Software without restriction, including without limitation
|
/ to deal in the Software without restriction, including without limitation
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/* Copyright (c) 2004, Oracle and/or its affiliates.
|
/* Copyright (c) 2004, Oracle and/or its affiliates.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
* to deal in the Software without restriction, including without limitation
|
* to deal in the Software without restriction, including without limitation
|
||||||
|
|
@ -31,8 +31,8 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Converted from common/compiler.h gcc inline format to Sun cc inline
|
/* Converted from common/compiler.h gcc inline format to Sun cc inline
|
||||||
* format by Kenjiro Tsuji
|
* format by Kenjiro Tsuji
|
||||||
*
|
*
|
||||||
* The value 0x88 means ASI_PRIMARY_LITTLE.
|
* The value 0x88 means ASI_PRIMARY_LITTLE.
|
||||||
* The store or load to/from the address space will be done
|
* The store or load to/from the address space will be done
|
||||||
* as little-endian. In the original xrog code, the value
|
* as little-endian. In the original xrog code, the value
|
||||||
|
|
|
||||||
|
|
@ -902,7 +902,7 @@ wait_for_mieq_init(void);
|
||||||
[e type] == NSOtherMouseDragged ||
|
[e type] == NSOtherMouseDragged ||
|
||||||
[e type] == NSRightMouseDragged ||
|
[e type] == NSRightMouseDragged ||
|
||||||
[e type] == NSMouseMoved ||
|
[e type] == NSMouseMoved ||
|
||||||
[e type] == NSTabletPoint ||
|
[e type] == NSTabletPoint ||
|
||||||
[e type] == NSScrollWheel;
|
[e type] == NSScrollWheel;
|
||||||
|
|
||||||
isTabletEvent = ([e type] == NSTabletPoint) ||
|
isTabletEvent = ([e type] == NSTabletPoint) ||
|
||||||
|
|
@ -985,7 +985,7 @@ wait_for_mieq_init(void);
|
||||||
NX_DEVICELCTLKEYMASK | NX_DEVICERCTLKEYMASK,
|
NX_DEVICELCTLKEYMASK | NX_DEVICERCTLKEYMASK,
|
||||||
NX_DEVICELCTLKEYMASK);
|
NX_DEVICELCTLKEYMASK);
|
||||||
modifierFlags = ensure_flag(modifierFlags, NX_SHIFTMASK,
|
modifierFlags = ensure_flag(modifierFlags, NX_SHIFTMASK,
|
||||||
NX_DEVICELSHIFTKEYMASK | NX_DEVICERSHIFTKEYMASK,
|
NX_DEVICELSHIFTKEYMASK | NX_DEVICERSHIFTKEYMASK,
|
||||||
NX_DEVICELSHIFTKEYMASK);
|
NX_DEVICELSHIFTKEYMASK);
|
||||||
modifierFlags = ensure_flag(modifierFlags, NX_COMMANDMASK,
|
modifierFlags = ensure_flag(modifierFlags, NX_COMMANDMASK,
|
||||||
NX_DEVICELCMDKEYMASK | NX_DEVICERCMDKEYMASK,
|
NX_DEVICELCMDKEYMASK | NX_DEVICERCMDKEYMASK,
|
||||||
|
|
@ -1201,16 +1201,16 @@ handle_mouse:
|
||||||
if (source) {
|
if (source) {
|
||||||
double lineHeight = CGEventSourceGetPixelsPerLine(source);
|
double lineHeight = CGEventSourceGetPixelsPerLine(source);
|
||||||
CFRelease(source);
|
CFRelease(source);
|
||||||
|
|
||||||
/* There's no real reason for the 1/5 ratio here other than that
|
/* There's no real reason for the 1/5 ratio here other than that
|
||||||
* it feels like a good ratio after some testing.
|
* it feels like a good ratio after some testing.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
deltaX *= lineHeight / 5.0;
|
deltaX *= lineHeight / 5.0;
|
||||||
deltaY *= lineHeight / 5.0;
|
deltaY *= lineHeight / 5.0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (XQuartzScrollInDeviceDirection &&
|
if (XQuartzScrollInDeviceDirection &&
|
||||||
[e isDirectionInvertedFromDevice]) {
|
[e isDirectionInvertedFromDevice]) {
|
||||||
deltaX *= -1;
|
deltaX *= -1;
|
||||||
|
|
@ -1244,7 +1244,7 @@ handle_mouse:
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Eat up the deficit, but ensure that something is
|
/* Eat up the deficit, but ensure that something is
|
||||||
* always sent
|
* always sent
|
||||||
*/
|
*/
|
||||||
if (fabs(deltaX) > fabs(deficit_x)) {
|
if (fabs(deltaX) > fabs(deficit_x)) {
|
||||||
deltaX -= deficit_x;
|
deltaX -= deficit_x;
|
||||||
|
|
@ -1277,7 +1277,7 @@ handle_mouse:
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Eat up the deficit, but ensure that something is
|
/* Eat up the deficit, but ensure that something is
|
||||||
* always sent
|
* always sent
|
||||||
*/
|
*/
|
||||||
if (fabs(deltaY) > fabs(deficit_y)) {
|
if (fabs(deltaY) > fabs(deficit_y)) {
|
||||||
deltaY -= deficit_y;
|
deltaY -= deficit_y;
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ void
|
||||||
xwl_glamor_egl_make_current(struct xwl_screen *xwl_screen)
|
xwl_glamor_egl_make_current(struct xwl_screen *xwl_screen)
|
||||||
{
|
{
|
||||||
EGLContext ctx = xwl_screen->glamor_ctx->ctx;
|
EGLContext ctx = xwl_screen->glamor_ctx->ctx;
|
||||||
|
|
||||||
if (lastGLContext == ctx)
|
if (lastGLContext == ctx)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
*or other dealings in this Software without prior written authorization
|
*or other dealings in this Software without prior written authorization
|
||||||
*from the XFree86 Project.
|
*from the XFree86 Project.
|
||||||
*
|
*
|
||||||
* Authors: Alexander Gottwald
|
* Authors: Alexander Gottwald
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef HAVE_XWIN_CONFIG_H
|
#ifdef HAVE_XWIN_CONFIG_H
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
*or other dealings in this Software without prior written authorization
|
*or other dealings in this Software without prior written authorization
|
||||||
*from the XFree86 Project.
|
*from the XFree86 Project.
|
||||||
*
|
*
|
||||||
* Authors: Alexander Gottwald
|
* Authors: Alexander Gottwald
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "win.h"
|
#include "win.h"
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
*or other dealings in this Software without prior written authorization
|
*or other dealings in this Software without prior written authorization
|
||||||
*from the XFree86 Project.
|
*from the XFree86 Project.
|
||||||
*
|
*
|
||||||
* Authors: Alexander Gottwald
|
* Authors: Alexander Gottwald
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef HAVE_XWIN_CONFIG_H
|
#ifdef HAVE_XWIN_CONFIG_H
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
*or other dealings in this Software without prior written authorization
|
*or other dealings in this Software without prior written authorization
|
||||||
*from the XFree86 Project.
|
*from the XFree86 Project.
|
||||||
*
|
*
|
||||||
* Authors: Alexander Gottwald
|
* Authors: Alexander Gottwald
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __WIN_MSG_H__
|
#ifndef __WIN_MSG_H__
|
||||||
|
|
|
||||||
|
|
@ -118,7 +118,7 @@ parse_file (FILE *file)
|
||||||
|
|
||||||
if (!file)
|
if (!file)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
yylineno = 1;
|
yylineno = 1;
|
||||||
yyin = file;
|
yyin = file;
|
||||||
ret = yyparse ();
|
ret = yyparse ();
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
/* The global pref settings */
|
/* The global pref settings */
|
||||||
WINPREFS pref;
|
WINPREFS pref;
|
||||||
|
|
||||||
/* The working menu */
|
/* The working menu */
|
||||||
static MENUPARSED menu;
|
static MENUPARSED menu;
|
||||||
|
|
||||||
/* Functions for parsing the tokens into out structure */
|
/* Functions for parsing the tokens into out structure */
|
||||||
|
|
@ -139,7 +139,7 @@ line: NEWLINE
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
newline_or_nada:
|
newline_or_nada:
|
||||||
| NEWLINE newline_or_nada
|
| NEWLINE newline_or_nada
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
@ -335,19 +335,19 @@ CloseMenu (void)
|
||||||
ErrorF("LoadPreferences: Empty menu detected\n");
|
ErrorF("LoadPreferences: Empty menu detected\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pref.menuItems)
|
if (pref.menuItems)
|
||||||
pref.menu = realloc (pref.menu, (pref.menuItems+1)*sizeof(MENUPARSED));
|
pref.menu = realloc (pref.menu, (pref.menuItems+1)*sizeof(MENUPARSED));
|
||||||
else
|
else
|
||||||
pref.menu = malloc (sizeof(MENUPARSED));
|
pref.menu = malloc (sizeof(MENUPARSED));
|
||||||
|
|
||||||
memcpy (pref.menu+pref.menuItems, &menu, sizeof(MENUPARSED));
|
memcpy (pref.menu+pref.menuItems, &menu, sizeof(MENUPARSED));
|
||||||
pref.menuItems++;
|
pref.menuItems++;
|
||||||
|
|
||||||
memset (&menu, 0, sizeof(MENUPARSED));
|
memset (&menu, 0, sizeof(MENUPARSED));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
OpenIcons (void)
|
OpenIcons (void)
|
||||||
{
|
{
|
||||||
if (pref.icon != NULL) {
|
if (pref.icon != NULL) {
|
||||||
|
|
@ -377,7 +377,7 @@ AddIconLine (char *matchstr, char *iconfile)
|
||||||
pref.iconItems++;
|
pref.iconItems++;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
CloseIcons (void)
|
CloseIcons (void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/* xkb-config.h.in: not at all generated. -*- c -*-
|
/* xkb-config.h.in: not at all generated. -*- c -*-
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _XKB_CONFIG_H_
|
#ifndef _XKB_CONFIG_H_
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/* xorg-config.h.in: not at all generated. -*- c -*-
|
/* xorg-config.h.in: not at all generated. -*- c -*-
|
||||||
*
|
*
|
||||||
* This file differs from xorg-server.h.in in that -server is installed
|
* This file differs from xorg-server.h.in in that -server is installed
|
||||||
* with the rest of the SDK for external drivers/modules to use, whereas
|
* with the rest of the SDK for external drivers/modules to use, whereas
|
||||||
* -config is for internal use only (i.e. building the DDX).
|
* -config is for internal use only (i.e. building the DDX).
|
||||||
|
|
|
||||||
|
|
@ -8,80 +8,80 @@
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
|
|
||||||
The generic rootless layer allows an X server to be implemented
|
The generic rootless layer allows an X server to be implemented
|
||||||
on top of another window server in a cooperative manner. This allows the
|
on top of another window server in a cooperative manner. This allows the
|
||||||
X11 windows and native windows of the underlying window server to
|
X11 windows and native windows of the underlying window server to
|
||||||
coexist on the same screen. The layer is called "rootless" because the root
|
coexist on the same screen. The layer is called "rootless" because the root
|
||||||
window of the X server is generally not drawn. Instead, each top-level
|
window of the X server is generally not drawn. Instead, each top-level
|
||||||
child of the root window is represented as a separate on-screen window by
|
child of the root window is represented as a separate on-screen window by
|
||||||
the underlying window server. The layer is referred to as "generic"
|
the underlying window server. The layer is referred to as "generic"
|
||||||
because it abstracts away the details of the underlying window system and
|
because it abstracts away the details of the underlying window system and
|
||||||
contains code that is useful for any rootless X server. The code for the
|
contains code that is useful for any rootless X server. The code for the
|
||||||
generic rootless layer is located in xc/programs/Xserver/miext/rootless. To
|
generic rootless layer is located in xc/programs/Xserver/miext/rootless. To
|
||||||
build a complete rootless X server requires a specific rootless
|
build a complete rootless X server requires a specific rootless
|
||||||
implementation, which provides functions that allow the generic rootless
|
implementation, which provides functions that allow the generic rootless
|
||||||
layer to interact with the underlying window system.
|
layer to interact with the underlying window system.
|
||||||
|
|
||||||
|
|
||||||
Concepts
|
Concepts
|
||||||
|
|
||||||
In the context of a rootless X server the term window is used to
|
In the context of a rootless X server the term window is used to
|
||||||
mean many fundamentally different things. For X11 a window is a DDX
|
mean many fundamentally different things. For X11 a window is a DDX
|
||||||
resource that describes a visible, or potentially visible, rectangle on the
|
resource that describes a visible, or potentially visible, rectangle on the
|
||||||
screen. A top-level window is a direct child of the root window. To avoid
|
screen. A top-level window is a direct child of the root window. To avoid
|
||||||
confusion, an on-screen native window of the underlying window system
|
confusion, an on-screen native window of the underlying window system
|
||||||
is referred to as a "frame". The generic rootless layer associates each
|
is referred to as a "frame". The generic rootless layer associates each
|
||||||
mapped top-level X11 window with a frame. An X11 window may be said
|
mapped top-level X11 window with a frame. An X11 window may be said
|
||||||
to be "framed" if it or its top-level parent is represented by a frame.
|
to be "framed" if it or its top-level parent is represented by a frame.
|
||||||
|
|
||||||
The generic rootless layer models each frame as being backed at
|
The generic rootless layer models each frame as being backed at
|
||||||
all times by a backing buffer, which is periodically flushed to the screen.
|
all times by a backing buffer, which is periodically flushed to the screen.
|
||||||
If the underlying window system does not provide a backing buffer for
|
If the underlying window system does not provide a backing buffer for
|
||||||
frames, this must be done by the rootless implementation. The generic
|
frames, this must be done by the rootless implementation. The generic
|
||||||
rootless layer model does not assume it always has access to the frames'
|
rootless layer model does not assume it always has access to the frames'
|
||||||
backing buffers. Any drawing to the buffer will be proceeded by a call to
|
backing buffers. Any drawing to the buffer will be proceeded by a call to
|
||||||
the rootless implementation's StartDrawing() function and StopDrawing()
|
the rootless implementation's StartDrawing() function and StopDrawing()
|
||||||
will be called when the drawing is concluded. The address of the frame's
|
will be called when the drawing is concluded. The address of the frame's
|
||||||
backing buffer is returned by the StartDrawing() function and it can
|
backing buffer is returned by the StartDrawing() function and it can
|
||||||
change between successive calls.
|
change between successive calls.
|
||||||
|
|
||||||
Because each frame is assumed to have a backing buffer, the
|
Because each frame is assumed to have a backing buffer, the
|
||||||
generic rootless layer will stop Expose events being generated when the
|
generic rootless layer will stop Expose events being generated when the
|
||||||
regions of visibility of a frame change on screen. This is similar to backing
|
regions of visibility of a frame change on screen. This is similar to backing
|
||||||
store, but backing buffers are different in that they always store a copy of
|
store, but backing buffers are different in that they always store a copy of
|
||||||
the entire window contents, not just the obscured portions. The price paid
|
the entire window contents, not just the obscured portions. The price paid
|
||||||
in increased memory consumption is made up by the greatly decreased
|
in increased memory consumption is made up by the greatly decreased
|
||||||
complexity in not having to track and record regions as they are obscured.
|
complexity in not having to track and record regions as they are obscured.
|
||||||
|
|
||||||
|
|
||||||
Rootless Implementation
|
Rootless Implementation
|
||||||
|
|
||||||
The specifics of the underlying window system are provided to the
|
The specifics of the underlying window system are provided to the
|
||||||
generic rootless layer through rootless implementation functions, compile-
|
generic rootless layer through rootless implementation functions, compile-
|
||||||
time options, and runtime parameters. The rootless implementation
|
time options, and runtime parameters. The rootless implementation
|
||||||
functions are a list of functions that allow the generic rootless layer to
|
functions are a list of functions that allow the generic rootless layer to
|
||||||
perform operations such as creating, destroying, moving, and resizing
|
perform operations such as creating, destroying, moving, and resizing
|
||||||
frames. Some of the implementation functions are optional. A detailed
|
frames. Some of the implementation functions are optional. A detailed
|
||||||
description of the rootless implementation functions is provided in
|
description of the rootless implementation functions is provided in
|
||||||
Appendix A.
|
Appendix A.
|
||||||
|
|
||||||
By design, a rootless implementation should only have to include
|
By design, a rootless implementation should only have to include
|
||||||
the rootless.h header file. The rootlessCommon.h file contains definitions
|
the rootless.h header file. The rootlessCommon.h file contains definitions
|
||||||
internal to the generic rootless layer. (If you find you need to use
|
internal to the generic rootless layer. (If you find you need to use
|
||||||
rootlessCommon.h in your implementation, let the generic rootless layer
|
rootlessCommon.h in your implementation, let the generic rootless layer
|
||||||
maintainers know. This could be an area where the generic rootless layer
|
maintainers know. This could be an area where the generic rootless layer
|
||||||
should be generalized.) A rootless implementation should also modify
|
should be generalized.) A rootless implementation should also modify
|
||||||
rootlessConfig.h to specify compile time options for its platform.
|
rootlessConfig.h to specify compile time options for its platform.
|
||||||
|
|
||||||
The following compile-time options are defined in
|
The following compile-time options are defined in
|
||||||
rootlessConfig.h:
|
rootlessConfig.h:
|
||||||
|
|
||||||
o ROOTLESS_PROTECT_ALPHA: By default for a color bit depth of 24 and
|
o ROOTLESS_PROTECT_ALPHA: By default for a color bit depth of 24 and
|
||||||
32 bits per pixel, fb will overwrite the "unused" 8 bits to optimize
|
32 bits per pixel, fb will overwrite the "unused" 8 bits to optimize
|
||||||
drawing speed. If this is true, the alpha channel of frames is
|
drawing speed. If this is true, the alpha channel of frames is
|
||||||
protected and is not modified when drawing to them. The bits
|
protected and is not modified when drawing to them. The bits
|
||||||
containing the alpha channel are defined by the macro
|
containing the alpha channel are defined by the macro
|
||||||
RootlessAlphaMask(bpp), which should return a bit mask for
|
RootlessAlphaMask(bpp), which should return a bit mask for
|
||||||
various bits per pixel.
|
various bits per pixel.
|
||||||
|
|
||||||
o ROOTLESS_REDISPLAY_DELAY: Time in milliseconds between updates to
|
o ROOTLESS_REDISPLAY_DELAY: Time in milliseconds between updates to
|
||||||
|
|
@ -103,56 +103,56 @@ rootlessConfig.h:
|
||||||
|
|
||||||
Accelerated Drawing
|
Accelerated Drawing
|
||||||
|
|
||||||
The rootless implementation typically does not have direct access
|
The rootless implementation typically does not have direct access
|
||||||
to the hardware. Its access to the graphics hardware is generally through
|
to the hardware. Its access to the graphics hardware is generally through
|
||||||
the API of the underlying window system. This underlying API may not
|
the API of the underlying window system. This underlying API may not
|
||||||
overlap well with the X11 drawing primitives. The generic rootless layer
|
overlap well with the X11 drawing primitives. The generic rootless layer
|
||||||
falls back to using fb for all its 2-D drawing. Providing optional rootless
|
falls back to using fb for all its 2-D drawing. Providing optional rootless
|
||||||
implementation acceleration functions can accelerate some graphics
|
implementation acceleration functions can accelerate some graphics
|
||||||
primitives and some window functions. Typically calling through to the
|
primitives and some window functions. Typically calling through to the
|
||||||
underlying window systems API will not speed up these operations for
|
underlying window systems API will not speed up these operations for
|
||||||
small enough areas. The rootless_*_threshold runtime options allow the
|
small enough areas. The rootless_*_threshold runtime options allow the
|
||||||
rootless implementation to provide hints for when the acceleration
|
rootless implementation to provide hints for when the acceleration
|
||||||
functions should be used instead of fb.
|
functions should be used instead of fb.
|
||||||
|
|
||||||
|
|
||||||
Alpha Channel Protection
|
Alpha Channel Protection
|
||||||
|
|
||||||
If the bits per pixel is greater then the color bit depth, the contents
|
If the bits per pixel is greater then the color bit depth, the contents
|
||||||
of the extra bits are undefined by the X11 protocol. Some window systems
|
of the extra bits are undefined by the X11 protocol. Some window systems
|
||||||
will use these extra bits as an alpha channel. The generic rootless layer can
|
will use these extra bits as an alpha channel. The generic rootless layer can
|
||||||
be configured to protect these bits and make sure they are not modified by
|
be configured to protect these bits and make sure they are not modified by
|
||||||
other parts of the X server. To protect the alpha channel
|
other parts of the X server. To protect the alpha channel
|
||||||
ROOTLESS_PROTECT_ALPHA and RootlessAlphaMask(bpp) must be
|
ROOTLESS_PROTECT_ALPHA and RootlessAlphaMask(bpp) must be
|
||||||
set appropriately as described under the compile time options. This
|
set appropriately as described under the compile time options. This
|
||||||
ensures that the X11 graphics primitives do not overwrite the alpha
|
ensures that the X11 graphics primitives do not overwrite the alpha
|
||||||
channel in an attempt to optimize drawing. In addition, the window
|
channel in an attempt to optimize drawing. In addition, the window
|
||||||
functions PaintWindow() and Composite() must be replaced by alpha
|
functions PaintWindow() and Composite() must be replaced by alpha
|
||||||
channel safe variants. These are provided in rootless/safeAlpha.
|
channel safe variants. These are provided in rootless/safeAlpha.
|
||||||
|
|
||||||
|
|
||||||
Credits
|
Credits
|
||||||
|
|
||||||
The generic rootless layer was originally conceived and developed
|
The generic rootless layer was originally conceived and developed
|
||||||
by Greg Parker as part of the XDarwin X server on Mac OS X. John
|
by Greg Parker as part of the XDarwin X server on Mac OS X. John
|
||||||
Harper made later optimizations to this code but removed its generic
|
Harper made later optimizations to this code but removed its generic
|
||||||
independence of the underlying window system. Torrey T. Lyons
|
independence of the underlying window system. Torrey T. Lyons
|
||||||
reintroduced the generic abstractions and made the rootless code suitable
|
reintroduced the generic abstractions and made the rootless code suitable
|
||||||
for use by other X servers.
|
for use by other X servers.
|
||||||
|
|
||||||
|
|
||||||
Appendix A: Rootless Implementation Functions
|
Appendix A: Rootless Implementation Functions
|
||||||
|
|
||||||
The rootless implementation functions are defined in rootless.h. It
|
The rootless implementation functions are defined in rootless.h. It
|
||||||
is intended that rootless.h contains the complete interface that is needed by
|
is intended that rootless.h contains the complete interface that is needed by
|
||||||
rootless implementations. The definitions contained in rootlessCommon.h
|
rootless implementations. The definitions contained in rootlessCommon.h
|
||||||
are intended for internal use by the generic rootless layer and are more
|
are intended for internal use by the generic rootless layer and are more
|
||||||
likely to change.
|
likely to change.
|
||||||
|
|
||||||
Most of these functions take a RootlessFrameID as a parameter.
|
Most of these functions take a RootlessFrameID as a parameter.
|
||||||
The RootlessFrameID is an opaque object that is returned by the
|
The RootlessFrameID is an opaque object that is returned by the
|
||||||
implementation's CreateFrame() function. The generic rootless layer does
|
implementation's CreateFrame() function. The generic rootless layer does
|
||||||
not use this frame id other than to pass it back to the rootless
|
not use this frame id other than to pass it back to the rootless
|
||||||
implementation to indicate the frame to operate on.
|
implementation to indicate the frame to operate on.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -188,7 +188,7 @@ typedef void (*RootlessDestroyFrameProc)
|
||||||
* pScreen Screen to move the new frame to
|
* pScreen Screen to move the new frame to
|
||||||
* newX, newY New position of the frame
|
* newX, newY New position of the frame
|
||||||
*/
|
*/
|
||||||
typedef void (*RootlessMoveFrameProc)
|
typedef void (*RootlessMoveFrameProc)
|
||||||
(RootlessFrameID wid, ScreenPtr pScreen, int newX, int newY);
|
(RootlessFrameID wid, ScreenPtr pScreen, int newX, int newY);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -2087,6 +2087,6 @@ RRHasScanoutPixmap(ScreenPtr pScreen)
|
||||||
if (crtc->scanout_pixmap)
|
if (crtc->scanout_pixmap)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -444,7 +444,7 @@ RecordFindClientOnContext(RecordContextPtr pContext,
|
||||||
*
|
*
|
||||||
* Side Effects:
|
* Side Effects:
|
||||||
* The big request is recorded with the correct length field re-inserted.
|
* The big request is recorded with the correct length field re-inserted.
|
||||||
*
|
*
|
||||||
* Note: this function exists mainly to make RecordARequest smaller.
|
* Note: this function exists mainly to make RecordARequest smaller.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
|
|
@ -842,7 +842,7 @@ RecordFlushAllContexts(CallbackListPtr *pcbl,
|
||||||
* If oneclient is zero, recording hooks needed for all clients and
|
* If oneclient is zero, recording hooks needed for all clients and
|
||||||
* protocol on the RCAP are installed. If oneclient is non-zero,
|
* protocol on the RCAP are installed. If oneclient is non-zero,
|
||||||
* only those hooks needed for the specified client are installed.
|
* only those hooks needed for the specified client are installed.
|
||||||
*
|
*
|
||||||
* Client requestVectors may be altered. numEnabledRCAPs will be
|
* Client requestVectors may be altered. numEnabledRCAPs will be
|
||||||
* incremented if oneclient == 0. Callbacks may be added to
|
* incremented if oneclient == 0. Callbacks may be added to
|
||||||
* various callback lists.
|
* various callback lists.
|
||||||
|
|
@ -927,7 +927,7 @@ RecordInstallHooks(RecordClientsAndProtocolPtr pRCAP, XID oneclient)
|
||||||
* If oneclient is zero, recording hooks needed for all clients and
|
* If oneclient is zero, recording hooks needed for all clients and
|
||||||
* protocol on the RCAP may be uninstalled. If oneclient is non-zero,
|
* protocol on the RCAP may be uninstalled. If oneclient is non-zero,
|
||||||
* only those hooks needed for the specified client may be uninstalled.
|
* only those hooks needed for the specified client may be uninstalled.
|
||||||
*
|
*
|
||||||
* Client requestVectors may be altered. numEnabledRCAPs will be
|
* Client requestVectors may be altered. numEnabledRCAPs will be
|
||||||
* decremented if oneclient == 0. Callbacks may be deleted from
|
* decremented if oneclient == 0. Callbacks may be deleted from
|
||||||
* various callback lists.
|
* various callback lists.
|
||||||
|
|
@ -2760,7 +2760,7 @@ RecordAClientStateChange(CallbackListPtr *pcbl, void *nulldata,
|
||||||
*
|
*
|
||||||
* Side Effects:
|
* Side Effects:
|
||||||
* Performs any cleanup needed by RECORD at server shutdown time.
|
* Performs any cleanup needed by RECORD at server shutdown time.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
RecordCloseDown(ExtensionEntry * extEntry)
|
RecordCloseDown(ExtensionEntry * extEntry)
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,11 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is a test which try to test correct glamor colors when rendered.
|
* This is a test which try to test correct glamor colors when rendered.
|
||||||
* It should be run with fullscreen Xephyr (with glamor) with present and with
|
* It should be run with fullscreen Xephyr (with glamor) with present and with
|
||||||
* etalon high-level Xserver (can be any, on CI - Xvfb). For testing this test
|
* etalon high-level Xserver (can be any, on CI - Xvfb). For testing this test
|
||||||
* creates an image in Xephyr X server, which filled by one of colors defined in
|
* creates an image in Xephyr X server, which filled by one of colors defined in
|
||||||
* test_pixels. Then it captures central pixel from both Xephyr and Xserver above.
|
* test_pixels. Then it captures central pixel from both Xephyr and Xserver above.
|
||||||
* If pixels differ - test failed. Sleep is used to ensure than presentation on both
|
* If pixels differ - test failed. Sleep is used to ensure than presentation on both
|
||||||
* Xephyr and Xvfb kicks (xcb_aux_sync was not enough) and test results will be actual
|
* Xephyr and Xvfb kicks (xcb_aux_sync was not enough) and test results will be actual
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ so it is not a safe place to store compiled keymaps for long periods of
|
||||||
time. The default keymap for any server is usually stored in:
|
time. The default keymap for any server is usually stored in:
|
||||||
X<num>-default.xkm
|
X<num>-default.xkm
|
||||||
where <num> is the display number of the server in question, which makes
|
where <num> is the display number of the server in question, which makes
|
||||||
it possible for several servers *on the same host* to share the same
|
it possible for several servers *on the same host* to share the same
|
||||||
directory.
|
directory.
|
||||||
|
|
||||||
Unless the X server is modified, sharing this directory between servers on
|
Unless the X server is modified, sharing this directory between servers on
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
dnl Copyright 2005 Red Hat, Inc
|
dnl Copyright 2005 Red Hat, Inc
|
||||||
dnl
|
dnl
|
||||||
dnl Permission to use, copy, modify, distribute, and sell this software and its
|
dnl Permission to use, copy, modify, distribute, and sell this software and its
|
||||||
dnl documentation for any purpose is hereby granted without fee, provided that
|
dnl documentation for any purpose is hereby granted without fee, provided that
|
||||||
dnl the above copyright notice appear in all copies and that both that
|
dnl the above copyright notice appear in all copies and that both that
|
||||||
dnl copyright notice and this permission notice appear in supporting
|
dnl copyright notice and this permission notice appear in supporting
|
||||||
dnl documentation.
|
dnl documentation.
|
||||||
dnl
|
dnl
|
||||||
dnl The above copyright notice and this permission notice shall be included
|
dnl The above copyright notice and this permission notice shall be included
|
||||||
dnl in all copies or substantial portions of the Software.
|
dnl in all copies or substantial portions of the Software.
|
||||||
dnl
|
dnl
|
||||||
dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
|
@ -16,12 +16,12 @@ dnl IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
dnl OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
dnl OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
dnl ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
dnl ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
dnl OTHER DEALINGS IN THE SOFTWARE.
|
dnl OTHER DEALINGS IN THE SOFTWARE.
|
||||||
dnl
|
dnl
|
||||||
dnl Except as contained in this notice, the name of the copyright holders shall
|
dnl Except as contained in this notice, the name of the copyright holders shall
|
||||||
dnl not be used in advertising or otherwise to promote the sale, use or
|
dnl not be used in advertising or otherwise to promote the sale, use or
|
||||||
dnl other dealings in this Software without prior written authorization
|
dnl other dealings in this Software without prior written authorization
|
||||||
dnl from the copyright holders.
|
dnl from the copyright holders.
|
||||||
dnl
|
dnl
|
||||||
|
|
||||||
# XORG_DRIVER_CHECK_EXT(MACRO, PROTO)
|
# XORG_DRIVER_CHECK_EXT(MACRO, PROTO)
|
||||||
# --------------------------
|
# --------------------------
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue