From f7050e0ff2d1dd147ff5ef45f8ff7d8d7833db48 Mon Sep 17 00:00:00 2001 From: marha Date: Thu, 7 Nov 2013 08:21:08 +0100 Subject: xextproto fontconfig libxcb mesa xserver git update 7 Nov 2013 xserver commit ab4b1fb38a61feb73d8336cc7a3399eb9d3d25be libxcb commit e4e0c6eec861f4c69da12060dc8dbe7a63fa5eb6 libxcb/xcb-proto commit 530817c5a926f006d8d61f9dcfd9ab73269a9805 xextproto commit 3f355f138d6df57e067458a20f47307883048adb fontconfig commit a4443e64c89256087d40462cfbb482950873e366 mesa commit 110009302bddb4c42a5b3ed5ca451d6bb50a06a0 --- libxcb/xcb-proto/src/Makefile.am | 2 + libxcb/xcb-proto/src/dri3.xml | 97 ++++++++++++++++++ libxcb/xcb-proto/src/present.xml | 205 ++++++++++++++++++++++++++++++++++++++ libxcb/xcb-proto/src/shm.xml | 21 +++- libxcb/xcb-proto/src/sync.xml | 24 ++--- libxcb/xcb-proto/src/xkb.xml | 34 +++---- libxcb/xcb-proto/src/xproto.xml | 16 ++- libxcb/xcb-proto/xcbgen/expr.py | 3 +- libxcb/xcb-proto/xcbgen/state.py | 2 + libxcb/xcb-proto/xcbgen/xtypes.py | 60 ++++++++++- 10 files changed, 427 insertions(+), 37 deletions(-) create mode 100644 libxcb/xcb-proto/src/dri3.xml create mode 100644 libxcb/xcb-proto/src/present.xml (limited to 'libxcb') diff --git a/libxcb/xcb-proto/src/Makefile.am b/libxcb/xcb-proto/src/Makefile.am index eef2dbc45..d81d818a6 100644 --- a/libxcb/xcb-proto/src/Makefile.am +++ b/libxcb/xcb-proto/src/Makefile.am @@ -6,8 +6,10 @@ xcbinclude_HEADERS = \ damage.xml \ dpms.xml \ dri2.xml \ + dri3.xml \ ge.xml \ glx.xml \ + present.xml \ randr.xml \ record.xml \ render.xml \ diff --git a/libxcb/xcb-proto/src/dri3.xml b/libxcb/xcb-proto/src/dri3.xml new file mode 100644 index 000000000..608af3157 --- /dev/null +++ b/libxcb/xcb-proto/src/dri3.xml @@ -0,0 +1,97 @@ + + + + + xproto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libxcb/xcb-proto/src/present.xml b/libxcb/xcb-proto/src/present.xml new file mode 100644 index 000000000..d12ae4879 --- /dev/null +++ b/libxcb/xcb-proto/src/present.xml @@ -0,0 +1,205 @@ + + + + + xproto + randr + xfixes + sync + + + + + 0 + 1 + 2 + 3 + + + + 0 + 0 + 1 + 2 + 3 + + + + 0 + 0 + 1 + 2 + + + + 0 + 0 + 1 + 2 + + + + 0 + 1 + + + + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libxcb/xcb-proto/src/shm.xml b/libxcb/xcb-proto/src/shm.xml index adda50957..71fce14fa 100644 --- a/libxcb/xcb-proto/src/shm.xml +++ b/libxcb/xcb-proto/src/shm.xml @@ -26,7 +26,7 @@ sale, use or other dealings in this Software without prior written authorization from the authors. --> + major-version="1" minor-version="2"> xproto @@ -113,4 +113,23 @@ authorization from the authors. + + + + + + + + + + + + + + + + + + + diff --git a/libxcb/xcb-proto/src/sync.xml b/libxcb/xcb-proto/src/sync.xml index 7bcf0ae32..bc07c5b63 100644 --- a/libxcb/xcb-proto/src/sync.xml +++ b/libxcb/xcb-proto/src/sync.xml @@ -48,7 +48,7 @@ for licensing information. - + name_len @@ -58,13 +58,13 @@ for licensing information. - + - + @@ -103,7 +103,7 @@ for licensing information. - + @@ -114,7 +114,7 @@ for licensing information. - + @@ -124,12 +124,12 @@ for licensing information. - + - + @@ -205,7 +205,7 @@ for licensing information. - + @@ -259,8 +259,8 @@ for licensing information. - - + + @@ -270,8 +270,8 @@ for licensing information. - - + + diff --git a/libxcb/xcb-proto/src/xkb.xml b/libxcb/xcb-proto/src/xkb.xml index 45f64127e..2ea659c29 100644 --- a/libxcb/xcb-proto/src/xkb.xml +++ b/libxcb/xcb-proto/src/xkb.xml @@ -130,29 +130,21 @@ authorization from the authors. 31 - + 0 1 2 3 4 5 - 6 - 7 - 8 - 9 + 6 + 7 + 8 + 9 + 10 + 11 - - 6 - 7 - - - - - - - @@ -1229,10 +1221,10 @@ authorization from the authors. - + - - + + @@ -1255,7 +1247,7 @@ authorization from the authors. - + @@ -1272,8 +1264,8 @@ authorization from the authors. - - + + 32 diff --git a/libxcb/xcb-proto/src/xproto.xml b/libxcb/xcb-proto/src/xproto.xml index 16e04b442..defa11e6e 100644 --- a/libxcb/xcb-proto/src/xproto.xml +++ b/libxcb/xcb-proto/src/xproto.xml @@ -1080,7 +1080,21 @@ The number of keycodes altered. - + + + + generic event (with length) + + + + + diff --git a/libxcb/xcb-proto/xcbgen/expr.py b/libxcb/xcb-proto/xcbgen/expr.py index 4f8af6f83..f9d5179f0 100644 --- a/libxcb/xcb-proto/xcbgen/expr.py +++ b/libxcb/xcb-proto/xcbgen/expr.py @@ -13,7 +13,7 @@ class Field(object): auto is true iff the field is on the wire but not in the request API (e.g. opcode) enum is the enum name this field refers to, if any. ''' - def __init__(self, type, field_type, field_name, visible, wire, auto, enum=None): + def __init__(self, type, field_type, field_name, visible, wire, auto, enum=None, isfd=False): self.type = type self.field_type = field_type self.field_name = field_name @@ -21,6 +21,7 @@ class Field(object): self.visible = visible self.wire = wire self.auto = auto + self.isfd = isfd class Expression(object): diff --git a/libxcb/xcb-proto/xcbgen/state.py b/libxcb/xcb-proto/xcbgen/state.py index ae3d2d45f..10a8722ea 100644 --- a/libxcb/xcb-proto/xcbgen/state.py +++ b/libxcb/xcb-proto/xcbgen/state.py @@ -74,9 +74,11 @@ class Module(object): self.add_type('CARD8', '', ('uint8_t',), tcard8) self.add_type('CARD16', '', ('uint16_t',), tcard16) self.add_type('CARD32', '', ('uint32_t',), tcard32) + self.add_type('CARD64', '', ('uint64_t',), tcard64) self.add_type('INT8', '', ('int8_t',), tint8) self.add_type('INT16', '', ('int16_t',), tint16) self.add_type('INT32', '', ('int32_t',), tint32) + self.add_type('INT64', '', ('int64_t',), tint64) self.add_type('BYTE', '', ('uint8_t',), tcard8) self.add_type('BOOL', '', ('uint8_t',), tcard8) self.add_type('char', '', ('char',), tchar) diff --git a/libxcb/xcb-proto/xcbgen/xtypes.py b/libxcb/xcb-proto/xcbgen/xtypes.py index a4614d9d2..6150d1818 100644 --- a/libxcb/xcb-proto/xcbgen/xtypes.py +++ b/libxcb/xcb-proto/xcbgen/xtypes.py @@ -75,6 +75,18 @@ class Type(object): complex_type.fields.append(new_field) + def make_fd_of(self, module, complex_type, fd_name): + ''' + Method for making a fd member of a structure. + ''' + new_fd = Field(self, module.get_type_name('INT32'), fd_name, True, False, False, None, True) + # We dump the _placeholder_byte if any fields are added. + for (idx, field) in enumerate(complex_type.fields): + if field == _placeholder_byte: + complex_type.fields[idx] = new_fd + return + + complex_type.fields.append(new_fd) class SimpleType(Type): ''' @@ -103,9 +115,11 @@ class SimpleType(Type): tcard8 = SimpleType(('uint8_t',), 1) tcard16 = SimpleType(('uint16_t',), 2) tcard32 = SimpleType(('uint32_t',), 4) +tcard64 = SimpleType(('uint64_t',), 8) tint8 = SimpleType(('int8_t',), 1) tint16 = SimpleType(('int16_t',), 2) tint32 = SimpleType(('int32_t',), 4) +tint64 = SimpleType(('int64_t',), 8) tchar = SimpleType(('char',), 1) tfloat = SimpleType(('float',), 4) tdouble = SimpleType(('double',), 8) @@ -150,6 +164,44 @@ class Enum(SimpleType): out = __main__.output['enum'] +class FileDescriptor(SimpleType): + ''' + Derived class which represents a file descriptor. Passed via magic kernel stuff + + Public fields added: + values contains a list of (name, value) tuples. value is empty, or a number. + bits contains a list of (name, bitnum) tuples. items only appear if specified as a bit. bitnum is a number. + ''' + def __init__(self, name, elt): + SimpleType.__init__(self, name, 4) + self.values = [] + self.bits = [] + self.doc = None + for item in list(elt): + if item.tag == 'doc': + self.doc = Doc(name, item) + + # First check if we're using a default value + if len(list(item)) == 0: + self.values.append((item.get('name'), '')) + continue + + # An explicit value or bit was specified. + value = list(item)[0] + if value.tag == 'value': + self.values.append((item.get('name'), value.text)) + elif value.tag == 'bit': + self.values.append((item.get('name'), '%u' % (1 << int(value.text, 0)))) + self.bits.append((item.get('name'), value.text)) + + def resolve(self, module): + self.resolved = True + + def fixed_size(self): + return True + + out = __main__.output['enum'] + class ListType(Type): ''' Derived class which represents a list of some other datatype. Fixed- or variable-sized. @@ -277,6 +329,7 @@ class ComplexType(Type): self.nmemb = 1 self.size = 0 self.lenfield_parent = [self] + self.fds = [] def resolve(self, module): if self.resolved: @@ -322,9 +375,14 @@ class ComplexType(Type): type.make_member_of(module, self, field_type, field_name, visible, True, False) type.resolve(module) continue + elif child.tag == 'fd': + fd_name = child.get('name') + type = module.get_type('INT32') + type.make_fd_of(module, self, fd_name) + continue else: # Hit this on Reply - continue + continue # Get the full type name for the field field_type = module.get_type_name(fkey) -- cgit v1.2.3