X Generic Event Extension. Peter Hutterer

Similar documents
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

git-pr Release dev2+ng5b0396a

Feed Cache for Umbraco Version 2.0

Sensor-fusion Demo Documentation

mp3fm Documentation Release Akshit Agarwal

The XIM Transport Specification

Asthma Eliminator MicroMedic Competition Entry

RTI Connext DDS Core Libraries

Dellve CuDNN Documentation

XEP-0099: IQ Query Action Protocol

XTEST Extension Protocol

Spotter Documentation Version 0.5, Released 4/12/2010

Firebase PHP SDK. Release

Inptools Manual. Steffen Macke

Elegans Documentation

Tailor Documentation. Release 0.1. Derek Stegelman, Garrett Pennington, and Jon Faustman

Industries Package. TARMS Inc.

MCAFEE THREAT INTELLIGENCE EXCHANGE RESILIENT THREAT SERVICE INTEGRATION GUIDE V1.0

NDIS Implementation Guide

sensor-documentation Documentation

XEP-0087: Stream Initiation

Extended Visual Information Extension

Open Source Used In Cisco Configuration Professional for Catalyst 1.0

agate-sql Documentation

The XIM Transport Specification

MEAS HTU21D PERIPHERAL MODULE

NTLM NTLM. Feature Description

SW MAPS TEMPLATE BUILDER. User s Manual

deepatari Documentation

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

Packet Trace Guide. Packet Trace Guide. Technical Note

Guest Book. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

inflection Documentation

BME280 Documentation. Release Richard Hull

MIT-SHM The MIT Shared Memory Extension

utidylib Documentation Release 0.4

International Color Consortium

LANDISVIEW Beta v1.0-user Guide

Moodle. Moodle. Deployment Guide

LoadMaster VMware Horizon (with View) 6. Deployment Guide

VMware vcenter Log Insight Manager. Deployment Guide

disspcap Documentation

XTEST Extension Library

aiounittest Documentation

Splunk. Splunk. Deployment Guide

Colgate, WI

MEAS TEMPERATURE SYSTEM SENSOR (TSYS01) XPLAINED PRO BOARD

SWTP 6800 Simulator Usage 27-Mar-2012

XEP-0044: Full Namespace Support for XML Streams

PHP-FCM Documentation

Preprocessing of fmri data

KEMP Driver for Red Hat OpenStack. KEMP LBaaS Red Hat OpenStack Driver. Installation Guide

Migration Tool. Migration Tool (Beta) Technical Note

RSA Two Factor Authentication

Adobe Connect. Adobe Connect. Deployment Guide

HTNG Web Services Product Specification. Version 2011A

PyCon APAC 2014 Documentation

TWO-FACTOR AUTHENTICATION Version 1.1.0

Instagram PHP Documentation

puppet-diamond Documentation

Epic. Epic Systems. Deployment Guide

Daedalus Documentation

HTNG Web Services Product Specification. Version 2014A

XEP-0052: File Transfer

SopaJS JavaScript library package

LANDISVIEW User Guide

User Guide. Calibrated Software, Inc.

ProFont began life as a better version of Monaco 9 which is especially good for programmers. It was created circa 1987 by Andrew Welch.

Django Mail Queue Documentation

Upgrading BankLink Books

XEP-0399: Client Key Support

XEP-0206: XMPP Over BOSH

Transparency & Consent Framework

X Locale Database Specification. Yoshio Horiuchi, IBM Japan

X Synchronization Extension Protocol

Intel Hex Encoder/Decoder Class

dublincore Documentation

Transparency & Consent Framework

Imagination Documentation

XEP-0104: HTTP Scheme for URL Data

XEP-0361: Zero Handshake Server to Server Protocol

LoadMaster Clustering

Additional License Authorizations for HPE OneView for Microsoft Azure Log Analytics

XEP-0363: HTTP File Upload

Compound Text Encoding

RTXAGENDA v Use Manual. A program, free and easy to use, to modify your RT4 phonebook, on PC.

XEP-0344: Impact of TLS and DNSSEC on Dialback

RTXAGENDA v Use Manual. A program, free and easy to use, to modify your RT4, RT5 or RT6 phonebook, on PC.

ClassPad Manager Subscription

Bluetooth Low Energy in C++ for nrfx Microcontrollers

Testworks User Guide. Release 1.0. Dylan Hackers

XStatic Documentation

Intel Parallel Inspector Release Notes

Record Extension Protocol Specification

Hyper-V - Windows 2012 and 8. Virtual LoadMaster for Microsoft Hyper-V on Windows Server 2012, 2012 R2 and Windows 8. Installation Guide

SDN Adaptive Load Balancing. Feature Description

XEP-0140: Shared Groups

Java Relying Party API v1.0 Programmer s Guide

Piexif Documentation. Release 1.0.X. hmatoba

ExaFMM. Fast multipole method software aiming for exascale systems. User's Manual. Rio Yokota, L. A. Barba. November Revision 1

Transcription:

X Generic Event Extension Peter Hutterer

X Generic Event Extension Peter Hutterer X Version 11, Release 7.7 Version 1.0 Copyright 2007 Peter Hutterer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Table of Contents 1. Introduction... 1 2. Extension Initialization... 2 3. Events... 3 4. Notes... 4 iii

Chapter 1. Introduction X was designed to provide 64 event opcodes for all extensions. These events are limited to 32 bytes. The Generic Event Extension provides a template event for extensions to re-use a single event opcode. GE only provide headers and the most basic functionality, leaving the extensions to interpret the events in their specific context. GenericEvents may be longer than 32 bytes. If so, the number of 4 byte units following the initial 32 bytes must be specified in the length field of the event. 1

Chapter 2. Extension Initialization The name of this extension is "Generic Event Extension" GEQueryVersion client-major-version: CARD16 client-minor-version: CARD16 ==> major-version: CARD16 minor-version: CARD16 The client sends the highest supported version to the server and the server sends the highest version it supports, but no higher than the requested version. Major versions changes can introduce incompatibilities in existing functionality, minor version changes introduce only backward compatible changes. It is the clients responsibility to ensure that the server supports a version which is compatible with its expectations. As of version 1.0, no other requests are provided by this extension. 2

Chapter 3. Events GE defines a single event, to be used by all extensions. The event's structure is similar to a reply. This is a core protocol event, ID 35, and is not itself an extension event. GenericEvent type: BYTE always GenericEvent (35) extension: CARD8 extension offset sequencenumber: CARD16 low 16 bits of request seq. number length: CARD32 length evtype: CARD16 event type The field 'extension' is to be set to the major opcode of the extension. The 'evtype' field is the actual opcode of the event. The length field specifies the number of 4- byte blocks after the initial 32 bytes. If length is 0, the event is 32 bytes long. 3

Chapter 4. Notes Although the wire event is of arbitrary length, the actual size of an XEvent is restricted to sizeof(xevent) [96 bytes, see Xlib.h]. If an extension converts a wire event to an XEvent > 96 bytes, it will overwrite the space allocated for the event. See struct _XSQEvent in Xlibint.h for details. Extensions need to malloc additional data and fill the XEvent structure with pointers to the malloc'd data. The client then needs to free the data, only the XEvent structure will be released by Xlib. The server must not send GenericEvents longer than 32 bytes until it has verified that the client is able to interpret these events. If a long event is sent to a client unable to process GenericEvents, future interpretation of replies and events by this client will fail. 4