aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/lbx/lbxexts.c
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/programs/Xserver/lbx/lbxexts.c')
-rw-r--r--nx-X11/programs/Xserver/lbx/lbxexts.c275
1 files changed, 0 insertions, 275 deletions
diff --git a/nx-X11/programs/Xserver/lbx/lbxexts.c b/nx-X11/programs/Xserver/lbx/lbxexts.c
deleted file mode 100644
index 1086b4bc5..000000000
--- a/nx-X11/programs/Xserver/lbx/lbxexts.c
+++ /dev/null
@@ -1,275 +0,0 @@
-/* $Xorg: lbxexts.c,v 1.3 2000/08/17 19:53:31 cpqbld Exp $ */
-/*
- * Copyright 1994 Network Computing Devices, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and
- * its documentation for any purpose is hereby granted without fee, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name Network Computing Devices, Inc. not be
- * used in advertising or publicity pertaining to distribution of this
- * software without specific, written prior permission.
- *
- * THIS SOFTWARE IS PROVIDED `AS-IS'. NETWORK COMPUTING DEVICES, INC.,
- * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT
- * LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT SHALL NETWORK
- * COMPUTING DEVICES, INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING
- * SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS OF USE, DATA,
- * OR PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, AND REGARDLESS OF
- * WHETHER IN AN ACTION IN CONTRACT, TORT OR NEGLIGENCE, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- */
-/* $XFree86: xc/programs/Xserver/lbx/lbxexts.c,v 1.2 2000/05/18 23:46:24 dawes Exp $ */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xproto.h>
-#include "misc.h"
-#include "dixstruct.h"
-#include "colormapst.h"
-#include "propertyst.h"
-#define _XLBX_SERVER_
-#include <X11/extensions/lbxstr.h>
-#include "lbxserve.h"
-#ifdef XCSECURITY
-#define _SECURITY_SERVER
-#include <X11/extensions/security.h>
-#endif
-
-typedef struct _lbxext {
- char *name;
- char **aliases;
- int num_aliases;
- int idx;
- int opcode;
- int ev_base;
- int err_base;
- int num_reqs;
- CARD8 *rep_mask;
- CARD8 *ev_mask;
-#ifdef XCSECURITY
- Bool secure;
-#endif
-} LbxExtensionEntry;
-
-static LbxExtensionEntry **lbx_extensions = NULL;
-static int num_exts = 0;
-
-
-Bool
-LbxAddExtension(char *name,
- int opcode,
- int ev_base,
- int err_base)
-{
- int i;
- LbxExtensionEntry *ext,
- **newexts;
-
- ext = (LbxExtensionEntry *) xalloc(sizeof(LbxExtensionEntry));
- if (!ext)
- return FALSE;
- ext->name = (char *) xalloc(strlen(name) + 1);
- ext->num_aliases = 0;
- ext->aliases = (char **) NULL;
- if (!ext->name) {
- xfree(ext);
- return FALSE;
- }
- strcpy(ext->name, name);
- i = num_exts;
- newexts = (LbxExtensionEntry **) xrealloc(lbx_extensions,
- (i + 1) * sizeof(LbxExtensionEntry *));
- if (!newexts) {
- xfree(ext->name);
- xfree(ext);
- return FALSE;
- }
- num_exts++;
- lbx_extensions = newexts;
- lbx_extensions[i] = ext;
- ext->idx = i;
-
- ext->opcode = opcode;;
- ext->ev_base = ev_base;;
- ext->err_base = err_base;
- ext->ev_mask = NULL;
- ext->rep_mask = NULL;
- ext->num_reqs = 0;
-#ifdef XCSECURITY
- ext->secure = FALSE;
-#endif
-
- return TRUE;
-}
-
-Bool
-LbxAddExtensionAlias(int idx,
- char *alias)
-{
- char *name;
- char **aliases;
- LbxExtensionEntry *ext = lbx_extensions[idx];
-
- aliases = (char **) xrealloc(ext->aliases,
- (ext->num_aliases + 1) * sizeof(char *));
- if (!aliases)
- return FALSE;
- ext->aliases = aliases;
- name = (char *) xalloc(strlen(alias) + 1);
- if (!name)
- return FALSE;
- strcpy(name, alias);
- ext->aliases[ext->num_aliases] = name;
- ext->num_aliases++;
- return TRUE;
-}
-
-static int
-LbxFindExtension(char *extname,
- int len)
-{
- int i, j;
-
- for (i = 0; i < num_exts; i++) {
- if ((strlen(lbx_extensions[i]->name) == len) &&
- (strncmp(lbx_extensions[i]->name, extname, len) == 0))
- return i;
- for (j = lbx_extensions[i]->num_aliases; --j >= 0;) {
- if ((strlen(lbx_extensions[i]->aliases[j]) == len) &&
- (strncmp(lbx_extensions[i]->aliases[j], extname, len) == 0))
- return i;
- }
- }
- return -1;
-}
-
-void
-LbxDeclareExtensionSecurity(char *extname,
- Bool secure)
-{
-#ifdef XCSECURITY
- int i = LbxFindExtension(extname, strlen(extname));
- if (i >= 0)
- lbx_extensions[i]->secure = secure;
-#endif
-}
-
-Bool
-LbxRegisterExtensionGenerationMasks(int idx,
- int num_reqs,
- char *rep_mask,
- char *ev_mask)
-{
- LbxExtensionEntry *ext = lbx_extensions[idx];
- CARD8 *nrm,
- *nem;
- int mlen = mlen = num_reqs / (8 * sizeof(CARD8)) + 1;
-
- nrm = (CARD8 *) xalloc(sizeof(CARD8) * mlen);
- nem = (CARD8 *) xalloc(sizeof(CARD8) * mlen);
-
- if (!nrm || !nem) {
- xfree(nrm);
- xfree(nem);
- return FALSE;
- }
- memcpy((char *) nrm, (char *) rep_mask, mlen);
- memcpy((char *) nem, (char *) ev_mask, mlen);
- ext->rep_mask = nrm;
- ext->ev_mask = nem;
- ext->num_reqs = num_reqs;
-
- return TRUE;
-}
-
-int
-LbxQueryExtension(ClientPtr client,
- char *ename,
- int nlen)
-{
- xLbxQueryExtensionReply rep;
- int i;
- int mlen = 0;
-
- rep.type = X_Reply;
- rep.sequenceNumber = client->sequence;
- rep.major_opcode = 0;
- rep.present = FALSE;
- rep.length = 0;
- rep.pad0 = rep.pad1 = rep.pad2 = rep.pad3 = rep.pad4 = 0;
-
- i = LbxFindExtension(ename, nlen);
-
- if (i < 0
-#ifdef XCSECURITY
- /* don't show insecure extensions to untrusted clients */
- || (client->trustLevel == XSecurityClientUntrusted &&
- !lbx_extensions[i]->secure)
-#endif
- )
- rep.present = FALSE;
- else {
- rep.present = TRUE;
- rep.major_opcode = lbx_extensions[i]->opcode;
- rep.first_event = lbx_extensions[i]->ev_base;
- rep.first_error = lbx_extensions[i]->err_base;
- rep.numReqs = lbx_extensions[i]->num_reqs;
- if (lbx_extensions[i]->rep_mask) {
- mlen = (lbx_extensions[i]->num_reqs + 7) >> 3;
- rep.length = ((mlen + 3) >> 2) * 2;
- }
- }
- if (client->swapped) {
- char n;
-
- swaps(&rep.sequenceNumber, n);
- swapl(&rep.length, n);
- }
- WriteToClient(client, sizeof(xLbxQueryExtensionReply), (char *)&rep);
- if (mlen) {
- WriteToClient(client, mlen, (char *)lbx_extensions[i]->rep_mask);
- WriteToClient(client, mlen, (char *)lbx_extensions[i]->ev_mask);
- }
- return Success;
-}
-
-void
-LbxCloseDownExtensions(void)
-{
- int i,j;
-
- for (i = 0; i < num_exts; i++) {
- xfree(lbx_extensions[i]->name);
- for (j = 0; j < lbx_extensions[i]->num_aliases; j++)
- xfree(lbx_extensions[i]->aliases[j]);
- xfree(lbx_extensions[i]->aliases);
- xfree(lbx_extensions[i]->rep_mask);
- xfree(lbx_extensions[i]->ev_mask);
- xfree(lbx_extensions[i]);
- }
- xfree(lbx_extensions);
- lbx_extensions = NULL;
- num_exts = 0;
-
-}
-
-void
-LbxSetReqMask(CARD8 *mask,
- int req,
- Bool on)
-{
- int mword = req / (8 * sizeof(CARD8));
-
- req = req % (8 * sizeof(CARD8));
- if (on) {
- mask[mword] |= (1 << req);
- } else {
- mask[mword] &= ~(1 << req);
- }
-}