Subject: Re: hp300 X
To: None <carrel@cisco.com, mike@cs.utah.edu>
From: Mike Hibler <mike@cs.utah.edu>
List: port-hp300
Date: 06/17/1994 11:41:40
> To: mike@cs (Mike Hibler)
> Subject: Re: hp300 X
> Date: Fri, 17 Jun 1994 10:30:10 -0700
> From: David Carrel <carrel@cisco.com>
>
> > What are the shared memory extensions?
>
> X11 has a set of shared memory extensions in libXext.a. They are extra and
> not mandatory. A flag in the Imake config file causes them to get built.
> They utilize the SYSV shared memory routines. Since they were recently
> "re-added" to NetBSD, I thought I would try them out. I only have one app
> that uses the X11 shared memory extensions. It is an mpeg player called
> mpeg_play.
>
So it is sharing memory between the client and the server? Does it use this
shared memory in place of sockets for taking the X protocol?
> Sounds great. But you forgot to add the diffs at the end.
Oops! Lets try again.
> I was just running mpeg_play and KABLEWEY. I don't remember the panic
> message offhand, I have it written down at home. The post-mortem debugging
> sounds cool. But I don't have access to 44Lite code. Is it public on the
> net??? All I play with is NetBSD, and while it is more 44Lite-ish every
> day, it doesn't have a /usr/src/contrib that I know of. I'm definitely not
> UP on the politics of BSD.
>
I thought the netbsd people had a copy of Lite now?
--------
diff -r -R ./mit/server/ddx/hpbsd/hpsprite.c /n/critter/usr/src/X11R5/mit/server/ddx/hpbsd/hpsprite.c
39c39
<
---
> # include "hildef.h"
48a49
> static void hpSpriteBlockHandler();
197a199
> pPriv->BlockHandler = pScreen->BlockHandler;
213a216
> pScreen->BlockHandler = hpSpriteBlockHandler;
248a252
> pScreen->BlockHandler = pScreenPriv->BlockHandler;
380a385,406
> }
>
> static void
> hpSpriteBlockHandler (i, blockData, pTimeout, pReadmask)
> int i;
> pointer blockData;
> pointer pTimeout;
> pointer pReadmask;
> {
> ScreenPtr pScreen = screenInfo.screens[i];
> hpPrivScreenPtr pPriv;
> extern HPInputDevice *hpPointer;
>
> pPriv = getPrivScreenPtr(pScreen);
>
> SCREEN_PROLOGUE(pScreen, BlockHandler);
>
> (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask);
>
> SCREEN_EPILOGUE(pScreen, BlockHandler, hpSpriteBlockHandler);
>
> (*pPriv->MoveMouse) (pScreen,hpPointer->coords[0],hpPointer->coords[1],0);
diff -r -R ./mit/server/ddx/hpbsd/include/hppriv.h /n/critter/usr/src/X11R5/mit/server/ddx/hpbsd/include/hppriv.h
60a61
> void (*BlockHandler)();
diff -r -R ./mit/server/ddx/hpbsd/topcat/tcText.c /n/critter/usr/src/X11R5/mit/server/ddx/hpbsd/topcat/tcText.c
208,210c208
< while (screenPlanes & hardware->move_active)
< waitAwhile(screenPlanes);
<
---
> waitbusy(screenPlanes, hardware);
384,385c382
< while (screenPlanes & hardware->move_active)
< waitAwhile(screenPlanes);
---
> waitbusy(screenPlanes, hardware);
493,494c490
< while(screenPlanes & hardware->move_active)
< waitAwhile(screenPlanes);
---
> waitbusy(screenPlanes, hardware);
diff -r -R ./mit/server/ddx/hpbsd/topcat/topcat.c /n/critter/usr/src/X11R5/mit/server/ddx/hpbsd/topcat/topcat.c
75a76
> int IsCatseye;
85a87
> static char _catseye_ident[] = "@(#)98548A, 98549A, 98550A";
378d379
< int k;
381,382c382
< while ((gp_hardware -> move_active) & pMask)
< for (k=0; k<100; k++); /* delay to let topcat mover work */
---
> waitbusy(pMask, gp_hardware);
519a520
> IsCatseye = 1;
521a523
> {
522a525,526
> IsCatseye = 0;
> }
diff -r -R ./mit/server/ddx/hpbsd/topcat/topcat.h /n/critter/usr/src/X11R5/mit/server/ddx/hpbsd/topcat/topcat.h
45c45,57
< * $Log: topcat.h,v $
---
> * $Log: topcat.h,v $
> * Revision 1.4 93/04/30 17:51:09 mike
> * get rid of old code
> *
> * Revision 1.3 93/04/30 16:03:24 mike
> * latest changes from Mark D.
> *
> * Revision 1.2 93/04/22 16:50:10 mike
> * use catseye status register for testing busy
> *
> * Revision 1.1 93/04/20 10:32:08 mike
> * Initial revision
> *
265c277
< u_char start_move; /* start window move */
---
> u_char start_move; /* start window move */
295c307,309
< u_char filler99[7919];
---
> u_char filler98[1772];
> u_short catseye_status; /* catseye status */ /* 0x4800 */
> u_char filler99[6145];
332a347
> extern int IsCatseye;
333a349,352
> if (IsCatseye) \
> while ((gp_hardware)->catseye_status & 1) \
> { int i; for (i=0;i<20;i++); } \
> else \
------------------------------------------------------------------------------