Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nx-libs
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dimbor
nx-libs
Commits
ca1e8571
Commit
ca1e8571
authored
Apr 06, 2016
by
Mike Gabriel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hw/nxagent/NXextension.c: Shrink file, drop duplicate code that is indentically…
hw/nxagent/NXextension.c: Shrink file, drop duplicate code that is indentically found in dix/extension.c.
parent
5d160461
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
327 deletions
+15
-327
Imakefile
nx-X11/programs/Xserver/dix/Imakefile
+12
-2
extension.c
nx-X11/programs/Xserver/dix/extension.c
+2
-2
NXextension.c
nx-X11/programs/Xserver/hw/nxagent/NXextension.c
+1
-323
No files found.
nx-X11/programs/Xserver/dix/Imakefile
View file @
ca1e8571
...
...
@@ -13,6 +13,16 @@ FFS_SRC = ffs.c
FFS_OBJ = ffs.o
#endif
#if (!(defined(NXAgentServer) && NXAgentServer))
NXAGENT_SKIP_SRCS = \
extension.c \
$(NULL)
NXAGENT_SKIP_OBJS = \
extension.o \
$(NULL)
#endif
SRCS = \
atom.c \
colormap.c \
...
...
@@ -21,7 +31,6 @@ SRCS = \
dispatch.c \
dixutils.c \
events.c \
extension.c \
gc.c \
globals.c \
glyphcurs.c \
...
...
@@ -38,6 +47,7 @@ SRCS = \
dixfonts.c \
privates.c \
pixmap.c \
$(NXAGENT_SKIP_SRCS) \
$(FFS_SRC) \
$(NULL)
...
...
@@ -49,7 +59,6 @@ OBJS = \
dispatch.o \
dixutils.o \
events.o \
extension.o \
gc.o \
globals.o \
glyphcurs.o \
...
...
@@ -66,6 +75,7 @@ OBJS = \
dixfonts.o \
privates.o \
pixmap.o \
$(NXAGENT_SKIP_OBJS) \
$(FFS_OBJ) \
$(NULL)
...
...
nx-X11/programs/Xserver/dix/extension.c
View file @
ca1e8571
...
...
@@ -287,7 +287,7 @@ CloseDownExtensions()
}
}
#ifndef NXAGENT_SERVER
int
ProcQueryExtension
(
ClientPtr
client
)
{
...
...
@@ -392,7 +392,7 @@ ProcListExtensions(ClientPtr client)
}
return
(
client
->
noClientException
);
}
#endif
ExtensionLookupProc
LookupProc
(
char
*
name
,
GCPtr
pGC
)
...
...
nx-X11/programs/Xserver/hw/nxagent/NXextension.c
View file @
ca1e8571
...
...
@@ -64,265 +64,9 @@ SOFTWARE.
******************************************************************/
/* $Xorg: extension.c,v 1.4 2001/02/09 02:04:40 xorgcvs Exp $ */
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
#include <nx-X11/X.h>
#define NEED_EVENTS
#define NEED_REPLIES
#include <nx-X11/Xproto.h>
#include "misc.h"
#include "dixstruct.h"
#include "extnsionst.h"
#include "gcstruct.h"
#include "scrnintstr.h"
#include "../../dix/dispatch.h"
#ifdef XCSECURITY
#define _SECURITY_SERVER
#include <nx-X11/extensions/security.h>
#endif
#ifdef LBX
#include "lbxserve.h"
#endif
#include "Trap.h"
#define EXTENSION_BASE 128
#define EXTENSION_EVENT_BASE 64
#define LAST_EVENT 128
#define LAST_ERROR 255
ScreenProcEntry
AuxillaryScreenProcs
[
MAXSCREENS
];
static
ExtensionEntry
**
extensions
=
(
ExtensionEntry
**
)
NULL
;
int
lastEvent
=
EXTENSION_EVENT_BASE
;
static
int
lastError
=
FirstExtensionError
;
static
unsigned
int
NumExtensions
=
0
;
ExtensionEntry
*
AddExtension
(
char
*
name
,
int
NumEvents
,
int
NumErrors
,
int
(
*
MainProc
)(
ClientPtr
c1
),
int
(
*
SwappedMainProc
)(
ClientPtr
c2
),
void
(
*
CloseDownProc
)(
ExtensionEntry
*
e
),
unsigned
short
(
*
MinorOpcodeProc
)(
ClientPtr
c3
))
{
int
i
;
register
ExtensionEntry
*
ext
,
**
newexts
;
if
(
!
MainProc
||
!
SwappedMainProc
||
!
MinorOpcodeProc
)
return
((
ExtensionEntry
*
)
NULL
);
if
((
lastEvent
+
NumEvents
>
LAST_EVENT
)
||
(
unsigned
)(
lastError
+
NumErrors
>
LAST_ERROR
))
return
((
ExtensionEntry
*
)
NULL
);
ext
=
(
ExtensionEntry
*
)
xalloc
(
sizeof
(
ExtensionEntry
));
if
(
!
ext
)
return
((
ExtensionEntry
*
)
NULL
);
ext
->
name
=
(
char
*
)
xalloc
(
strlen
(
name
)
+
1
);
ext
->
num_aliases
=
0
;
ext
->
aliases
=
(
char
**
)
NULL
;
if
(
!
ext
->
name
)
{
xfree
(
ext
);
return
((
ExtensionEntry
*
)
NULL
);
}
strcpy
(
ext
->
name
,
name
);
i
=
NumExtensions
;
newexts
=
(
ExtensionEntry
**
)
xrealloc
(
extensions
,
(
i
+
1
)
*
sizeof
(
ExtensionEntry
*
));
if
(
!
newexts
)
{
xfree
(
ext
->
name
);
xfree
(
ext
);
return
((
ExtensionEntry
*
)
NULL
);
}
NumExtensions
++
;
extensions
=
newexts
;
extensions
[
i
]
=
ext
;
ext
->
index
=
i
;
ext
->
base
=
i
+
EXTENSION_BASE
;
ext
->
CloseDown
=
CloseDownProc
;
ext
->
MinorOpcode
=
MinorOpcodeProc
;
ProcVector
[
i
+
EXTENSION_BASE
]
=
MainProc
;
SwappedProcVector
[
i
+
EXTENSION_BASE
]
=
SwappedMainProc
;
if
(
NumEvents
)
{
ext
->
eventBase
=
lastEvent
;
ext
->
eventLast
=
lastEvent
+
NumEvents
;
lastEvent
+=
NumEvents
;
}
else
{
ext
->
eventBase
=
0
;
ext
->
eventLast
=
0
;
}
if
(
NumErrors
)
{
ext
->
errorBase
=
lastError
;
ext
->
errorLast
=
lastError
+
NumErrors
;
lastError
+=
NumErrors
;
}
else
{
ext
->
errorBase
=
0
;
ext
->
errorLast
=
0
;
}
#ifdef XCSECURITY
ext
->
secure
=
FALSE
;
#endif
#ifdef LBX
(
void
)
LbxAddExtension
(
name
,
ext
->
base
,
ext
->
eventBase
,
ext
->
errorBase
);
#endif
return
(
ext
);
}
Bool
AddExtensionAlias
(
char
*
alias
,
ExtensionEntry
*
ext
)
{
char
*
name
;
char
**
aliases
;
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
++
;
#ifdef LBX
return
LbxAddExtensionAlias
(
ext
->
index
,
alias
);
#else
return
TRUE
;
#endif
}
static
int
FindExtension
(
char
*
extname
,
int
len
)
{
int
i
,
j
;
for
(
i
=
0
;
i
<
NumExtensions
;
i
++
)
{
if
((
strlen
(
extensions
[
i
]
->
name
)
==
len
)
&&
!
strncmp
(
extname
,
extensions
[
i
]
->
name
,
len
))
break
;
for
(
j
=
extensions
[
i
]
->
num_aliases
;
--
j
>=
0
;)
{
if
((
strlen
(
extensions
[
i
]
->
aliases
[
j
])
==
len
)
&&
!
strncmp
(
extname
,
extensions
[
i
]
->
aliases
[
j
],
len
))
break
;
}
if
(
j
>=
0
)
break
;
}
return
((
i
==
NumExtensions
)
?
-
1
:
i
);
}
/*
* CheckExtension returns the extensions[] entry for the requested
* extension name. Maybe this could just return a Bool instead?
*/
ExtensionEntry
*
CheckExtension
(
const
char
*
extname
)
{
int
n
;
n
=
FindExtension
((
char
*
)
extname
,
strlen
(
extname
));
if
(
n
!=
-
1
)
return
extensions
[
n
];
else
return
NULL
;
}
void
DeclareExtensionSecurity
(
char
*
extname
,
Bool
secure
)
{
#ifdef XCSECURITY
int
i
=
FindExtension
(
extname
,
strlen
(
extname
));
if
(
i
>=
0
)
{
int
majorop
=
extensions
[
i
]
->
base
;
extensions
[
i
]
->
secure
=
secure
;
if
(
secure
)
{
UntrustedProcVector
[
majorop
]
=
ProcVector
[
majorop
];
SwappedUntrustedProcVector
[
majorop
]
=
SwappedProcVector
[
majorop
];
}
else
{
UntrustedProcVector
[
majorop
]
=
ProcBadRequest
;
SwappedUntrustedProcVector
[
majorop
]
=
ProcBadRequest
;
}
}
#endif
#ifdef LBX
LbxDeclareExtensionSecurity
(
extname
,
secure
);
#endif
}
unsigned
short
StandardMinorOpcode
(
ClientPtr
client
)
{
return
((
xReq
*
)
client
->
requestBuffer
)
->
data
;
}
unsigned
short
MinorOpcodeOfRequest
(
ClientPtr
client
)
{
unsigned
char
major
;
major
=
((
xReq
*
)
client
->
requestBuffer
)
->
reqType
;
if
(
major
<
EXTENSION_BASE
)
return
0
;
major
-=
EXTENSION_BASE
;
if
(
major
>=
NumExtensions
)
return
0
;
return
(
*
extensions
[
major
]
->
MinorOpcode
)(
client
);
}
void
CloseDownExtensions
()
{
register
int
i
,
j
;
#ifdef LBX
LbxCloseDownExtensions
();
#endif
for
(
i
=
NumExtensions
-
1
;
i
>=
0
;
i
--
)
{
if
(
extensions
[
i
]
->
CloseDown
)
(
*
extensions
[
i
]
->
CloseDown
)(
extensions
[
i
]);
NumExtensions
=
i
;
xfree
(
extensions
[
i
]
->
name
);
for
(
j
=
extensions
[
i
]
->
num_aliases
;
--
j
>=
0
;)
xfree
(
extensions
[
i
]
->
aliases
[
j
]);
xfree
(
extensions
[
i
]
->
aliases
);
xfree
(
extensions
[
i
]);
}
xfree
(
extensions
);
extensions
=
(
ExtensionEntry
**
)
NULL
;
lastEvent
=
EXTENSION_EVENT_BASE
;
lastError
=
FirstExtensionError
;
for
(
i
=
0
;
i
<
MAXSCREENS
;
i
++
)
{
register
ScreenProcEntry
*
spentry
=
&
AuxillaryScreenProcs
[
i
];
while
(
spentry
->
num
)
{
spentry
->
num
--
;
xfree
(
spentry
->
procList
[
spentry
->
num
].
name
);
}
xfree
(
spentry
->
procList
);
spentry
->
procList
=
(
ProcEntryPtr
)
NULL
;
}
}
#include "../../dix/extension.c"
int
ProcQueryExtension
(
ClientPtr
client
)
...
...
@@ -443,69 +187,3 @@ ProcListExtensions(ClientPtr client)
}
return
(
client
->
noClientException
);
}
ExtensionLookupProc
LookupProc
(
char
*
name
,
GCPtr
pGC
)
{
register
int
i
;
register
ScreenProcEntry
*
spentry
;
spentry
=
&
AuxillaryScreenProcs
[
pGC
->
pScreen
->
myNum
];
if
(
spentry
->
num
)
{
for
(
i
=
0
;
i
<
spentry
->
num
;
i
++
)
if
(
strcmp
(
name
,
spentry
->
procList
[
i
].
name
)
==
0
)
return
(
spentry
->
procList
[
i
].
proc
);
}
return
(
ExtensionLookupProc
)
NULL
;
}
Bool
RegisterProc
(
char
*
name
,
GC
*
pGC
,
ExtensionLookupProc
proc
)
{
return
RegisterScreenProc
(
name
,
pGC
->
pScreen
,
proc
);
}
Bool
RegisterScreenProc
(
char
*
name
,
ScreenPtr
pScreen
,
ExtensionLookupProc
proc
)
{
register
ScreenProcEntry
*
spentry
;
register
ProcEntryPtr
procEntry
=
(
ProcEntryPtr
)
NULL
;
char
*
newname
;
int
i
;
spentry
=
&
AuxillaryScreenProcs
[
pScreen
->
myNum
];
/* first replace duplicates */
if
(
spentry
->
num
)
{
for
(
i
=
0
;
i
<
spentry
->
num
;
i
++
)
if
(
strcmp
(
name
,
spentry
->
procList
[
i
].
name
)
==
0
)
{
procEntry
=
&
spentry
->
procList
[
i
];
break
;
}
}
if
(
procEntry
)
procEntry
->
proc
=
proc
;
else
{
newname
=
(
char
*
)
xalloc
(
strlen
(
name
)
+
1
);
if
(
!
newname
)
return
FALSE
;
procEntry
=
(
ProcEntryPtr
)
xrealloc
(
spentry
->
procList
,
sizeof
(
ProcEntryRec
)
*
(
spentry
->
num
+
1
));
if
(
!
procEntry
)
{
xfree
(
newname
);
return
FALSE
;
}
spentry
->
procList
=
procEntry
;
procEntry
+=
spentry
->
num
;
procEntry
->
name
=
newname
;
strcpy
(
newname
,
name
);
procEntry
->
proc
=
proc
;
spentry
->
num
++
;
}
return
TRUE
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment