Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Explicitly mark outdated Xserver ABI sections #356

Open
wants to merge 3 commits into
base: 3.6.x
Choose a base branch
from

Conversation

sunweaver
Copy link
Member

@sunweaver sunweaver commented Feb 24, 2017

This PR introduces various macro names for tagging nx-libs's specifc deviations from X.org because of missing ABI implementations or missing extensions.

Macro names:

XSERVER_LACKS_PRIVATES_ABI
XSERVER_LACKS_XACE_EXT
XSERVER_OLD_DEVICE_ABI
XSERVER_OLD_RESOURCE_NAME_ABI
XSERVER_OLD_CLOSE_SCREEN_ABI
XSERVER_EVENT_STILL_NEEDS_SEQNO

Marco names can be subject to discussion. The list is probably not yet complete.

This PR needs to wait for #311 to be merged. It will close issue #144.

@sunweaver sunweaver force-pushed the pr/explicitly-mark-outdated-ABI-sections branch from a6c9ca1 to a06b99b Compare February 24, 2017 16:18
@sunweaver sunweaver changed the title Explicitly mark outdated abi sections Explicitly mark outdated Xserver ABI sections Feb 24, 2017
@sunweaver sunweaver added this to the 3.6.0.0 milestone Mar 2, 2017
@sunweaver sunweaver force-pushed the pr/explicitly-mark-outdated-ABI-sections branch 2 times, most recently from 958a2ae to 501205b Compare March 3, 2017 12:22
@sunweaver sunweaver requested a review from Ionic March 3, 2017 12:22
@sunweaver sunweaver self-assigned this Mar 3, 2017
@sunweaver
Copy link
Member Author

@Ionic: This PR introduces explicit names for ancient ABIs in nxagent's Xserver code that we still have to work around. Whenever new backports are done, we should use such macro names. If needed, more macro names should be invented (instead of using ifdef NXAGENT_SERVER everywhere).

Can you review?

@Ionic
Copy link
Member

Ionic commented Mar 3, 2017

I think dix lookup and dix privates are very closely related. Not sure if splitting them up makes a lot of sense, as we cannot really have one without the other.

@@ -518,7 +518,7 @@ RRDeliverResourceEvent(ClientPtr client, WindowPtr pWin)
xRRResourceChangeNotifyEvent re = {
.type = RRNotify + RREventBase,
.subCode = RRNotify_ResourceChange,
#ifdef NXAGENT_SERVER
#ifdef XSERVER_EVENT_STILL_NEEDS_SEQNO
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Used but not defined.

@sunweaver sunweaver force-pushed the pr/explicitly-mark-outdated-ABI-sections branch 2 times, most recently from a23f5f5 to f2164f9 Compare March 3, 2017 14:23
@sunweaver
Copy link
Member Author

@Ionic: XSERVER_LACKS_DIXLOOKUP_ABI now dropped. XSERVER_EVENT_STILL_NEEDS_SEQNO now defined.

@sunweaver
Copy link
Member Author

@Ionic: next iteration.

@sunweaver sunweaver force-pushed the pr/explicitly-mark-outdated-ABI-sections branch from f2164f9 to b43e380 Compare March 3, 2017 14:25
@sunweaver sunweaver force-pushed the pr/explicitly-mark-outdated-ABI-sections branch from b43e380 to 899fcf2 Compare March 3, 2017 15:46
Copy link
Member

@Ionic Ionic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, took a real close look at all NXAGENT_SERVER places now and came up with this additional potential.

pDraw =
SecurityLookupDrawable(stuff->drawable, client, DixWriteAccess);
rc = pDraw ? Success : BadDrawable;
#endif /* !defined(NXAGENT_SERVER) */
#endif /* !defined(XSERVER_LACKS_PRIVATES_ABI) */

if (rc != Success)
return rc;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All Randr files still have NXAGENT ifdefs for... well, I'm not sure what to call it. Mostly it's for operations on a linked list, which we don't have support for yet, so XSERVER_LACKS_LINKED_LIST might sound appropriate at first. But the linked list is actually part of (newer) Screen structures, so maybe XSERVER_LACKS_SCREEN_LINKED_LISTS? Maybe you have a better idea for the name. Semantically it would make sense to include them in this PR, though.

There are also Screen->isGPU blocks, but they are so rare that I don't think it makes a lot of sense to assign them a special macro.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants