From 9435b9c544ec9b8339f31fc89322a9b88af36af5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicolai=20H=C3=A4hnle?= Date: Fri, 30 Jun 2017 10:52:48 +0200 Subject: [PATCH] dri: define a version 2 of the DRI_ConfigOptions extension MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The new function is defined to return a malloc'ed pointer. In the following patches, this helps avoid leaking library handles when pipe drivers are linked dynamically. It also allows us to generate the XML string on the fly in the future. Reviewed-by: Marek Olšák --- include/GL/internal/dri_interface.h | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h index 457fc6308c5..31f1eba9871 100644 --- a/include/GL/internal/dri_interface.h +++ b/include/GL/internal/dri_interface.h @@ -1655,13 +1655,29 @@ typedef struct __DRInoErrorExtensionRec { * * This extension provides the XML string containing driver options for use by * the loader in supporting the driconf application. + * + * v2: + * - Add the getXml getter function which allows the driver more flexibility in + * how the XML is provided. + * - Deprecate the direct xml pointer. It is only provided as a fallback for + * older versions of libGL and must not be used by clients that are aware of + * the newer version. Future driver versions may set it to NULL. */ #define __DRI_CONFIG_OPTIONS "DRI_ConfigOptions" -#define __DRI_CONFIG_OPTIONS_VERSION 1 +#define __DRI_CONFIG_OPTIONS_VERSION 2 typedef struct __DRIconfigOptionsExtensionRec { __DRIextension base; - const char *xml; + const char *xml; /**< deprecated since v2, use getXml instead */ + + /** + * Get an XML string that describes available driver options for use by a + * config application. + * + * The returned string must be heap-allocated. The caller is responsible for + * freeing it. + */ + char *(*getXml)(const char *driver_name); } __DRIconfigOptionsExtension; /** -- 2.30.2