From 6e5853268985eb4fb97cc4d28a3ed78e0a63b4aa Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Fri, 19 Jul 2024 17:25:37 +0200 Subject: [PATCH] (submit/modset-fix-vrr-hook) xace: export XaceRegisterCallback() and XaceDeleteCallback() Allow drivers to use Xace as a clean way for retrieving property updates. Signed-off-by: Enrico Weigelt, metux IT consult --- Xext/xace.c | 12 ++++++++++++ Xext/xace.h | 17 ++++------------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/Xext/xace.c b/Xext/xace.c index bb8ce6997..e4afde7d9 100644 --- a/Xext/xace.c +++ b/Xext/xace.c @@ -280,3 +280,15 @@ XaceIsLocal(ClientPtr client) { return ClientIsLocal(client); } + +Bool +XaceRegisterCallback(int hook, CallbackProcPtr callback, void *data) +{ + return AddCallback(XaceHooks+(hook), callback, data); +} + +Bool +XaceDeleteCallback(int hook, CallbackProcPtr callback, void *data) +{ + return DeleteCallback(XaceHooks+(hook), callback, data); +} diff --git a/Xext/xace.h b/Xext/xace.h index 481110a1c..8026886f7 100644 --- a/Xext/xace.h +++ b/Xext/xace.h @@ -58,11 +58,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. extern CallbackListPtr XaceHooks[XACE_NUM_HOOKS]; /* Entry point for hook functions. Called by Xserver. - * Required by libdbe and libextmod + * Required by several modules */ -/* needs to be exported for in-tree modsetting driver, but not part - of public API for external modules */ _X_EXPORT int XaceHook(int hook, ... /* appropriate args for hook */); +_X_EXPORT Bool XaceRegisterCallback(int hook, CallbackProcPtr callback, void *data); +_X_EXPORT Bool XaceDeleteCallback(int hook, CallbackProcPtr callback, void *data); /* determine whether any callbacks are present for the XACE hook */ int XaceHookIsSet(int hook); @@ -96,16 +96,7 @@ int XaceHookScreensaverAccess(ClientPtr client, ScreenPtr screen, Mask access_mo int XaceHookAuthAvail(ClientPtr client, XID authId); int XaceHookKeyAvail(xEventPtr ev, DeviceIntPtr dev, int count); - -/* Register a callback for a given hook. - */ -#define XaceRegisterCallback(hook,callback,data) \ - AddCallback(XaceHooks+(hook), callback, data) - -/* Unregister an existing callback for a given hook. - */ -#define XaceDeleteCallback(hook,callback,data) \ - DeleteCallback(XaceHooks+(hook), callback, data) +/* Register / unregister a callback for a given hook. */ /* XTrans wrappers for use by security modules */