Directfb Xorg server

Mike Emmel mike.emmel at gmail.com
Wed May 31 08:05:39 PDT 2006


Lets refactor the servers so the DDX contains main not the DIX layer.
So I can remove my hack.

Thats a first step.

A lot of the conditionals in the DIX layer can be removed by having
the ddx provide
a list of function pointers to the dix during initialization. Right
now the dix controls
the flow of initialization if we reverse this and let the ddx manage startup and
make the dix a real library of default  functions. This will greatly
reduce or eliminate
all the wrapping and unwrapping going on since the ddx knows the
functions it wants to call.
Finally it would allow more extensions to be optional since they can
provide there own
function lists to the DDX thence DIX when loaded.

On the ddx side there is probably a new set of ddx common  implementation
 code that was once part of the dix but this is now optional for the
ddx layer and it
provides example code for ddx implementations that differ to
dramatically from the norm
to work.

In my case I'd love to see the X protocal handling split out from the
implementation
this would allow a completely different server implementation. So dix
splits into
xprotocol or wire handling and sample event processing.

For example in dispatch.c ProcCreateWindow

      return BadValue;
    }
    pWin = CreateWindow(stuff->wid, pParent, stuff->x,
                  stuff->y, stuff->width, stuff->height,
                  stuff->borderWidth, stuff->class,
                  stuff->mask, (XID *) &stuff[1],
                  (int)stuff->depth,
                  client, stuff->visual, &result);

If this call was done via a new function pointer
say
ddx->CreateWindow ....

we have isolated the event handling and the ddx layer need not
implement even the
current design.

My suggestion is get rid of main in the dix
add a new struct provided by the ddx and passed into the new dix intializer.
Split the protocol handling out to call through the ddx function pointers.
Let the ddx use the remainig dix functions as a default implementation
library and
let it control initialization.

Mike




On 5/31/06, Adam Jackson <ajax at nwnk.net> wrote:
> On Wednesday 31 May 2006 05:10, Enrico Weigelt wrote:
> > * Adam Jackson <ajax at nwnk.net> schrieb:
> >
> > <snip>
> >
> > > The goal here is to be _capable_ of building every DDX at once.
> >
> > Why is that a goal ?
>
> Because the ability to do so is a prerequisite for the DIX layer being
> correctly factored, such that:
>
> > Coulnd't we just splitt off the server into base libs and the
> > individual servers (DDX'es) ?
>
> is eventually possible.  This should be intuitive from direct inspection;
> formal proof is left as an exercise for the reader.
>
> - ajax
>
>
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg
>
>
>



More information about the xorg mailing list