From 850da1ad5f3e5471857dc9083a6bc86791e0e211 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Fri, 19 Jul 2024 17:25:37 +0200 Subject: [PATCH] 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, 19 insertions(+), 10 deletions(-) diff --git a/Xext/xace.c b/Xext/xace.c index d9472e8cd..051aef476 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 95f3a059c..590c5d757 100644 --- a/Xext/xace.h +++ b/Xext/xace.h @@ -56,6 +56,12 @@ 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 several modules + */ +_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); @@ -88,16 +94,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 */