Commit Graph

282 Commits

Author SHA1 Message Date
Adam Jackson 021fc5cb2c Static markup and dead code cull over xkb/.
The former <X11/extensions/XKBsrv.h> has been pulled into the server now as
include/xkbsrv.h, and the world updated to look for it in the new place,
since it made no sense to define server API in an extension header.  Any
further work along this line will need to do similar things with XKBgeom.h
and friends.
2007-03-20 18:37:02 -04:00
Peter Hutterer 015d728bcd Merge branch 'master' into mpx
Conflicts:

	dix/devices.c
	dix/events.c
	mi/misprite.c
2007-03-19 09:42:56 +10:30
Peter Hutterer 65b0eb60b0 Xi: move IsPointerDevice into dix.
dix:    IsPointerDevice and IsKeyboardDevice, use same ways to identify type
        of device as XI does for the XListInputDevices reply.
        Autopair each non-pointer device with VCP when activating, pair with
        real device after activation.
        Don't return non-keyboard devices when calling GetPairedKeyboard or
        PickKeyboard, otherwise we segfault for 'evdev brain'.
2007-03-16 15:52:24 +10:30
Peter Hutterer ce9409aceb dix: Get the state from the paired device and the real device to fill the
state field in the event, rather than using the virtual devices.
        ProcessPointerEvent: name argument "device" instead of "other".
        Add GetPairedKeyboard().
2007-03-13 19:16:56 +10:30
Peter Hutterer 577464af43 dix: restore commit b3b2a6a0d4 that for some
reason got wiped.
        fix ProcGrabKeyboard to use PickKeyboard
        fix PickKeyboard to actually work.
2007-03-09 17:13:05 +10:30
Peter Hutterer 07806f4081 Xi: Add SetClientPointer request handling. 2007-03-09 15:45:25 +10:30
Peter Hutterer b3b2a6a0d4 dix: Check if client has a grab on any other device before mouse/kbd
event is delivered to the client. Client's don't cope well with
        receiving core events from other devices when having a grab on a
        pointer or keyboard.
2007-03-08 22:16:17 +10:30
Peter Hutterer ceca5670fe dix: Each device needs to differ between a core grab and an XI grab,
otherwise a Xi grab may overwrite or release a core grab.
        Replace grab and associates with coreGrab and deviceGrab structures,
        adjust rest of dix/Xi/etc to compile.

xfree86: Don't check for core devices, we'll have the virtual ones anyway.
         If we check, the first mouse device is duplicated and sends
         double events.
2007-03-08 17:17:23 +10:30
Peter Hutterer 537bc2ead4 Xi: Don't deactivate core grabs from non-core button/key releases.
dix:    set coreGrab flag for grabs caused by GrabPointer and button presses.
        remove virtual core devices from device list, only real devices are in
        the list now.
        Auto-pair each keyboard with a real pointer if one is available,
          provides multiple keyboards automatically after startup if devices
          are configured.
        fix GuessFreePointerDevice() to do what it's supposed to do.

mi:     fix: call miPointerMove from miPointerWarpCursor.
        fix: remove unused id field from miCursorInfoRec
        don't update sprite for virtual core pointer.
2007-03-07 18:19:20 +10:30
Eamon Walsh a7cd53deb9 remove PIXPRIV checks as this flag is always set. 2007-03-06 17:05:03 -05:00
Peter Hutterer 1f0075786f Merge branch 'master' into mpx
Conflicts:

	configure.ac
	dix/getevents.c
	hw/xfree86/ramdac/xf86Cursor.c
	mi/mipointer.c
	xkb/xkbUtils.c
2007-03-05 12:37:17 +10:30
Peter Hutterer e43b8a4e40 dix: Add ClientPointer to client, used for picking which pointer to use in
ambiguious request. PickPointer and PickKeyboard are used for getting
        the appropriate pointer when situation is unclear.
        Fix some issues with InitializeSprite.

dix, xfree86: Remove last traces of InitSprite.
2007-03-02 15:21:46 +10:30
Peter Hutterer 43bd35fcf8 dix: Remove InitSprite, work can be done by InitializeSprite.
Free sprite struct if a spriteOwner is paired.

xfree86: Use PairDevices instead of passing booleans around when creating a
         sprite.

Xext:    Switch back to using LookupPointer/KeyboardDevice instead of
         inputInfo.xyz.
2007-03-01 17:19:37 +10:30
Peter Hutterer 4b8b0e377a Xi: Add access control request handling.
dix:	New file access.c to handle all access control for devices.
2007-02-22 20:00:59 +10:30
Peter Hutterer cd0af7a785 Xi, dix: Only one client at a time can change the pointer-keyboard pairing,
using xRegisterPairingClient request.
2007-02-21 10:08:41 +10:30
Ben Byer 81444486be autoconf goodness for XDarwin, courtesy of pogma 2007-02-17 02:23:11 -08:00
Peter Hutterer f6c3b9fa97 xfree86: mouse and keyboard hotplugging support. New mouse devices will get
new cursors,  keyboard devices use VCP's focus until paired.
2007-02-15 13:51:20 +10:30
Peter Hutterer 33ef546b94 dix: Clean up GetPointerEvents. If pDev == inputInfo.pointer, assume that
we do not want Xi events.

mi:     Remove POINTER_CORE_ONLY flag.
2007-02-14 11:18:43 +10:30
Adam Jackson d21c95f80b Hook up --with-builderstring for vendor build identification. 2007-02-12 17:22:39 -05:00
Peter Hutterer 7cd73b00a2 dix: If POINTER_CORE_ONLY is set, GetPointerEvents() only creates a core event
mi:	fix: Create motion event in miPointerMoved
2007-02-05 14:48:48 +10:30
Peter Hutterer 4aaaa70d1b Xi: Adding ChangePointerKeyboardPairing request
Adding PointerKeyboardPairingChanged event
	Correct error values for XWarpDevicePointer

dix:	Adding device argument to SendMappingNotify
	Adding spriteOwner flag to devices
2007-01-29 18:23:24 +10:30
Peter Hutterer 15a81b6325 Merge branch 'master' 2007-01-28 17:18:57 +10:30
Eric Anholt 7fccec91c4 Bug #9555: Always define _GNU_SOURCE in glibc environments.
This keeps us from having to define _POSIX_C_SOURCE, _BSD_SOURCE, and
_XOPEN_SORUCE to get the C environment we want in different places.  It also
fixes the build on linux due to RTLD_DEFAULT having not been defined.
2007-01-10 13:10:43 -08:00
Peter Hutterer ea82333dc1 Xi: add missing call for SProcXChangeDeviceCursor
add DeviceEnterNotify and DeviceLeaveNotify
	fix: QueryDevicePointer crashed if called with keyboard device
2007-01-10 14:52:13 +10:30
Peter Hutterer 95e1a88050 Xi: Adding ChangeDeviceCursor request 2007-01-08 12:31:18 +10:30
Alan Coopersmith 2fd4626fa6 Make GLX byteswap macros more portable
- Use autoconf tests instead of platform-specific #ifdef's to decide
  which macros to use.
- Provide fallbacks for platforms like Solaris that don't provide any
  of the existing known forms.
2007-01-03 15:44:55 -08:00
Peter Hutterer 05f915050c dix/events: take screen number, not pointer, in PostSyntheticMotion
Since we were using PostSyntheticMotion incorrectly anyway, update the
declared API to match.
2006-12-27 16:38:06 +00:00
Peter Hutterer 056c919d84 removing MPX extension files 2006-12-20 14:49:17 +10:30
Peter Hutterer b55e1239ac xfree86: fix xf86ActivateDevice(): only set to MP device if not a keyboard 2006-12-20 14:43:38 +10:30
Peter Hutterer 202b46eb6b xfree86: Changing "IsMPDevice" to "SharedPointer" option. Devices will default
to MP devices.

Xi:	Adding QueryDevicePointer request/reply
	Adding WarpDevicePointer request/reply
2006-12-20 13:05:53 +10:30
Peter Hutterer 2d0a63126b Merge branch 'master' of git://anongit.freedesktop.org/git/xorg/xserver 2006-12-19 10:31:40 +10:30
Peter Hutterer d8b5394eda Cleaning up ifdef MPX from remaining files, removing it from configure.ac.
Removing building mpx extension from Makefile.am
2006-12-18 17:35:34 +10:30
Peter Hutterer 03c554283e mi: removing MPX ifdefs
global sprite renaming in mipointer and misprite
	fixed: multiple remove cursor call in miSpriteInstallColormap
	fixed: wrong core pointer usage in miSpriteStoreColors

dix:    bugfix in CheckCursorConfinement
	removing MPX ifdefs
	removing MPX event generation (using Xi solely now)
	bugfix GrabDevice: uninitialized field in grab struct caused segfault

xfree86: removing MPX fdefs

Xi:     removing MPX protocol events
2006-12-18 15:33:54 +10:30
Eamon Walsh ab1d5b0c31 Convert callers of LookupClient() to dixLookupClient(). 2006-12-15 17:26:58 -05:00
Eamon Walsh 9e32bf98bc Remove now-unused macro definitions from dix.h. 2006-12-14 19:31:58 -05:00
Eamon Walsh 00f0705b3b Remove instances of macros SECURITY_VERIFY_GEOMETRABLE and SECURITY_VERIFY_GC. 2006-12-14 19:15:21 -05:00
Eamon Walsh 60cdc592fe Add new, combined dix lookup functions. 2006-12-14 14:46:03 -05:00
Eamon Walsh 6c46645cfc Naming change: Security*Access -> Dix*Access 2006-12-14 14:45:42 -05:00
Peter Hutterer ae3c24da34 dix: Moving SpriteRec into DeviceIntRec
removing global sprite structure
	beginning to remove MPX ifdefs

xnest:  Fix to make xnest compile again
2006-12-11 18:09:59 +10:30
Daniel Stone 0c5dab5c8e config: move config.h to hotplug.h
Also, move configInitialise to after OsInit, since the next commit will
make it use a timer.
2006-12-06 23:24:24 +02:00
Peter Hutterer 3c8f166022 Merge branch 'master' of git://anongit.freedesktop.org/git/xorg/xserver into mpx
Conflicts:

	dix/events.c
2006-12-05 18:28:33 +10:30
Peter Hutterer 2a511492f9 Xi: adding MPX checks to ProcessOtherEvents
mpx:    adding QueryPointer request and reply
	adjusting names of requests to Xlib compatible naming (xMPX*** instead of
	mpx***)
2006-12-05 15:45:18 +10:30
Peter Hutterer 416f1bb99a mpx: SelectEvents and GetEventBase requests.
Some renaming and cleaning up in extinit.c
	MPXLastEvent added

Xi:	ShouldFreeInputMask() from XI is not static any more, used in mpx

dix:	GetPointerEvents() allocates MPX event for MPX devices.
	DeliverDeviceEvents() caters for MPX devices.
2006-12-01 15:56:52 +10:30
Peter Hutterer afd6af6551 mpx: Infrastructure for MPX extension, GetExtensionVersion request works. 2006-11-29 17:55:15 +10:30
Eric Anholt b4b0d901d9 Merge branch 'randr-1.2'
Conflicts:

	dix/events.c
	dix/getevents.c
	hw/xfree86/common/xf86Mode.c
	hw/xfree86/dri/Makefile.am
	hw/xfree86/os-support/drm/xf86drm.c
	hw/xfree86/os-support/xf86drm.h
2006-11-27 15:43:15 -08:00
Peter Hutterer 1c7568b8a1 mi: closing memory leak, miPointer is freed in miPointerCloseScreen
bugfix: uninitialized pPointer in miPointerGetPosition ifndef MPX
	adding DeviceIntPtr parameter to ScreenRec's cursor functions.
	cleanup of miPointer code to use same scheme in each function

dix:	MPHasCursor() function determines checking whether to invoke
	cursor rendering.

animcur: adding DeviceIntPtr parameter to cursor functions but animcur relies
	 on the core pointer right now.

xfixes: adding DeviceIntPtr parameter to cursor functions but xfixes relies on
	the core pointer right now.

rac:	adding DeviceIntPtr parameter to cursor functions but RAC relies on
	the core pointer right now.

ramdac:	adding DeviceIntPtr parameter to cursor functions but ramdac relies on
	the core pointer right now.
2006-11-23 17:15:14 +10:30
Aaron Plattner 64de3baf85 Add a -showDefaultLibPath option.
A corollary to the previous change, this option prints $libdir.
2006-11-22 14:46:51 -08:00
Peter Hutterer f52d53e060 dix: DeliverEventsToWindow adjusted for MPX
mi:     sprite debugging disabled
2006-11-22 17:58:57 +10:30
Peter Hutterer 8c16f21d5d dix GetSpriteWindow() adjusted for MPX
added device dependency for MPX to DoEnterLeaveEvents,
	EnterLeaveEvents, EnterNotifies, LeaveNotifies and
	FixUpEventFromWindow.
2006-11-22 17:06:47 +10:30
Peter Hutterer 9db851c22d dix: moved sprite from static to be pointer of type SpritePtr
added SpriteRecs for MPX devices
	changed sprite dependency and added MPX functionality to parts
	of events.c (ConfineToShape, PostNewCursor, XineramaCheckMotion,
	CheckMotion, XineramaChangeToCursor, ChangeToCursor, CheckPhysLimits,
	PointerConfinedToScreen)
	added DeviceIntRec param to GetSpritePosition(). This required some
	minor changes in ddx, xtest, xkb and xfixes.

mi:	changed miPointer to pointer instead of static struct.
2006-11-21 18:15:04 +10:30
Peter Hutterer 447efdc01d mi: constrain MPX cursors to screen 2006-11-21 14:46:00 +10:30
Peter Hutterer 94e106a898 dix: moved isMPdev field to end of _DeviceIntRec structure
mi:
        added miMPPointers array to mipointer.c
        added DeviceIntPtr to all miPointerSpriteFuncs. Coming from miPointer
        we use inputInfo.pointer as standard value. ABI BREAK!

ramdac:
        forcing failed HW Cursor initialisation. MPX needs software rendering.
        changes to use new miPointerSpriteFunc (this required externing
        inputInfo, should probably be fixed at a later point).

RAC: changes to use new miPointerSpriteFuncs.
2006-11-17 15:10:37 +10:30
Peter Hutterer 5388423eb0 mieq: EQ processing handles MP devices
global: MPX define added to xorg-server.h.in

xfree86/common: small fix to avoid byte overflow
2006-11-16 20:43:27 +10:30
Peter Hutterer c957a16180 dix: added isMPdev field to _DeviceIntRec, is used in GetPointerEvents()
mieq:   avoid merging events from different devices in mieqEnqueue()

xfree86/common
        isMPdev field used from xf86ActivateDevice(), xf86PostMotionEvent()
        and xf86PostButtonEvent()
2006-11-16 15:11:14 +10:30
Peter Hutterer 7ce2dc5784 dix:
merge with code cleanup from master
        GetPointerEvents treats events in the same way as XINPUT devices when flag
        has POINTER_MULTIPOINTER set.

xfree86/common:
    added XI86_MP_DEVICE flag and parsing in xf86ProcessCommonOptions
    added POINTER_MULTIPOINTER define. Is used in xf86PostMotionEvent and
    xf86PostButtonEvent for the flags that are passed into GetPointerEvents()

global:
    added flags to configure.ac to enable/disable MPX define
    added flags to dix-config.h.in to define MPX
2006-11-16 12:51:08 +10:30
George Sapountzis 5bfe7f4dfc DRI: call drmSetServerInfo() before drmOpen().
Also, remove some libdrm remnants.
2006-11-13 01:54:32 +02:00
Jurij Smakov acb5ff4c73 ffs: handle 0 argument (bug #8968)
Handle an argument of 0 in ffs(), instead of looping indefinitely.
Add an ffs prototype to dix.h, and add includes to ffs.c.
(cherry picked from 34164e551e4c3909322d50b09835ca4ac1d49d68 commit)
2006-11-11 14:13:56 +02:00
Daniel Stone c3ea1f7db4 dix/mi: still more warning fixes
Fix up prototypes for PrintChildren and PrintWindowTree in the dix.
Make miPrintRegion be unconditionally defined, and move the prototype into
regionstr.h.
Change a bunch of ScreenPtr pScreen = foo; to
ScreenPtr pScreen; pScreen = foo; in window.c, so we avoid unused variable
references (as inline REGION_* doesn't reference pScreen).
2006-11-08 15:29:16 +02:00
Daniel Stone 3a9b964258 dix: add missing prototypes
Add missing prototype for ffs, and include headers from ffs.c.
Move PostSyntheticMotion prototype to input.h.
2006-11-08 15:29:16 +02:00
Keith Packard 1dcda4f3c5 Avoid dereferencing sprite.screen when Xinerama is not running. (#8925)
With Xinerama support built into the X server but not in use,
sprite.screen is NULL and yet the SyntheticMotion
macro would dereference it. Avoid that by just passing sprite.screen
to PostSyntheticMotion which can then dereference it when Xinerama is
enabled.

Also, define PostSyntheticMotion in dixevents.h and include dixevents.h in
getevents.c
2006-11-07 01:29:51 -08:00
Keith Packard 028bbdc041 Merge master back to randr-1.2 2006-11-04 17:46:26 -08:00
Keith Packard 8b87ce1974 Allow X server to build against libdrm 2.1 2006-11-04 17:41:25 -08:00
Alan Coopersmith 49a26681b2 Add DTrace probe points for X server <-> client communications
See http://people.freedesktop.org/~alanc/dtrace/ for more details
2006-11-03 12:54:43 -08:00
Daniel Stone be291a6d97 Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into input-hotplug 2006-11-02 03:15:25 +02:00
Daniel Stone 81728558a0 input: add non-keyboard bell ringing function
Add a generic 'ring the bell' function (console bell on Linux and BSD,
/dev/audio on Solaris), and add DDX functions for this.  Make this the
core keyboard's bell.
Port Xvfb and Xnest to this.
Port XFree86 to this, with OS-specific hooks for Linux, BSD, and Solaris
taken from foo_io.c in the old layer.
2006-11-01 23:10:26 +02:00
Thomas Hellstrom 06b6b971d0 Make sure we have 64-bit file-offsets in libdrm. 2006-10-29 15:22:37 +01:00
Daniel Stone 96e32805d1 Xi: disallow changing core keyboard and pointer
Just short-circuit the change core keyboard/pointer requests.
2006-10-29 03:43:34 +03:00
Daniel Stone cdc8a4b7b2 Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into input-hotplug 2006-10-26 00:28:30 +03:00
Daniel Stone d285833290 GetTimeInMillis: spuport monotonic clock
Add support for CLOCK_MONOTONIC from clock_gettime, and use that in
GetTimeInMillis() if available, falling back to the old gettimeofday()
implementation.

This is _slightly_ faster on some 64-bit architectures, and _slightly_
slower on others (though barely measurable).
2006-10-25 23:57:00 +03:00
Daniel Stone 5b38eb69cd dix: add motion history support
Add motion history support (sort of based on the XFree86 DDX's
implementation) to the DIX.
2006-10-25 01:08:29 +03:00
Daniel Stone 37d1fffe79 inputstr: try to keep device structs the same size
Try to make sure DeviceIntRec and friends stay the same size,
regardless of whether or not XKB is enabled.
2006-10-24 23:06:57 +03:00
Daniel Stone 9f9ac01a81 inputstr: fix indentation 2006-10-24 23:01:05 +03:00
Daniel Stone cccf7ae0ff GetProximityEvents: add (untested) function
Add untested first guess at what GetProximityEvents should look like.
2006-10-23 06:55:21 +03:00
Daniel Stone a7c2d9a15d kdrive: numerous warning fixes 2006-10-23 06:08:27 +03:00
Daniel Stone bf4df9b73f include: move POINTER_* flags from inputstr.h to input.h
Given they're just numeric constants, they should be included in
input.h, not inputstr.h.
2006-10-23 02:50:53 +03:00
Zephaniah E. Hull e26a494f41 Merge branch 'input-hotplug' of git+ssh://git.freedesktop.org/git/xorg/xserver 2006-10-21 04:26:14 -04:00
Zephaniah E. Hull 736b0d5078 DEVICE_TOUCHSCREEN becomes DEVICE_ABS_CALIB.
Update the DEVICE_ABS_CALIB stuff to include the new elements.

New DEVICE_ABS_AREA support.

dev->touchscreen becomes dev->absolute, with _CALIB and _AREA stuff in it.

Update xfree86 to compile with this, kdrive needs an update too.
2006-10-21 04:24:49 -04:00
Daniel Stone aeba855b07 move keymap copy to event processing, from enqueuing
Move the keymap copying to event processing time (in
ProcessInputEvents), instead of being at event enqueuing time.
Break SetCore{Pointer,Keyboard} out into separate functions.
Change mieqEnqueue to take a device pointer, that asks for the
_original_ device associated with this event.
2006-10-20 00:43:11 +03:00
Daniel Stone a8d3dad9d9 xi: add DEVICE_ENABLE control
Add DEVICE_ENABLE control, which allows runtime enabling and disabling
of specific devices.
2006-10-20 00:43:11 +03:00
Alan Coopersmith d029c8f1b7 Use getisax() instead of asm code to determine available x86 ISA extensions on Solaris 2006-10-20 00:43:10 +03:00
Alan Coopersmith 357b37b382 Use getisax() instead of asm code to determine available x86 ISA extensions on Solaris 2006-10-18 18:11:06 -07:00
Daniel Stone 335b503c5e Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into input-hotplug 2006-10-13 18:10:45 +03:00
Daniel Stone 1546a39814 GetKeyboardValuatorEvents: also take first_valuator param
Take a first_valuator parameter, which specifies the first valuator.
2006-10-08 21:40:53 +03:00
Daniel Stone ca474e0920 Xi: move SendEventToAllWindows and FindInterestedChildren to exevents
Move SendEventToAllWindows and FindInterestedChildren from chgptr to exevents,
so the DIX can more easily use it.
Clean up two warnings (type mismatch, unused variable) in exevents.c.
2006-10-08 20:30:49 +03:00
Daniel Stone 14b157bdb1 include: actually declare DebugF
DebugF is ErrorF when DEBUG is defined, else a no-op.
2006-10-08 17:04:12 +03:00
Daniel Stone 58314756ae GetPointerEvents: add first_valuator parameter
Add a first_valuator parameter.  Looks correct by inspection, but untested
with first_valuator != 0 as yet.
2006-10-08 16:18:05 +03:00
Daniel Stone ad631afcf3 make core keyboard/pointer map functions act on all core-sending devices
Make Set{Keyboard,Modifier,Pointer}Mapping act on all devices which send core
events.
Change LegalModifier to accept a DeviceIntPtr.
2006-09-29 00:34:23 +03:00
Eamon Walsh 0b81fccd2e Merge branch 'master' into my-XACE-modular
Conflicts:

	configure.ac
2006-09-05 18:03:25 -04:00
Daniel Stone 4adf9af313 Merge branch 'master' into input-hotplug 2006-08-24 10:59:33 +03:00
Alan Coopersmith d9a86566c2 Add LOCALCONN to dix-config.h template for xtrans 2006-08-23 16:15:19 -07:00
Eamon Walsh 52ba722e4c Merge branch 'XACE-modular' into my-XACE-modular 2006-08-21 18:49:31 -04:00
Alan Coopersmith 05541259bd Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into XACE-modular 2006-08-21 13:07:41 -07:00
Daniel Stone a56b98bb04 dix: enable null root cursor
Enable a blank root cursor, selectable with --enable-null-root-cursor at
configure time.
2006-08-18 18:10:09 +03:00
Daniel Stone 0704bb298c Merge branch 'master' into input-hotplug 2006-08-18 17:30:14 +03:00
Daniel Stone c14036977f input.h: add InitCoreDevices prototype 2006-08-18 17:24:34 +03:00
Daniel Stone cb0a565d2b dix: add whiteroot flag
Add a -wr option to use a white root window, and use a BackPixel rather
than BackPixmap for both white and black root windows.
2006-08-18 17:04:48 +03:00
Daniel Stone d6433be3cc Merge branch 'master' into input-hotplug 2006-08-12 21:50:52 +03:00
Daniel Stone 5a3488ccac configure.ac: fix execinfo.h test (Debian #363218)
Define HAVE_EXECINFO_H as well as HAVE_BACKTRACE, when we find execinfo.h.
2006-08-12 19:25:06 +03:00
Alan Coopersmith c2535f6792 Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into XACE-modular 2006-08-10 10:37:59 -07:00
Daniel Stone 539d1f3347 GKVE/GPE: have DDX allocate events
Don't allocate events on every GKE/GKVE/GPE call, just have the DDX manage
it instead.  Introduce GetMaximumEventsNum(), which is the maximum number
of events these functions will ever produce.
2006-08-10 14:00:14 +03:00