[comp.windows.open-look] XView2.0 to DECstation

dah@zoot.avgrp.cr.rok.com (Dave Haverkamp) (03/13/91)

   These are the problems I am having with building XView 2.0 on a DECstation
running Ultrix.  In general the following things existed on a SUN3.

1. svc_fdset -- On SUN this is declared as "extern svc_set svc_fdset;" in svc.h
2. svc_getreqset() -- On SUN
              #ifndef KERNEL
               extern  void    svc_getreqset(); /* takes fdset instead of int */
              #endif

3. foo  --- On SUN I found this in m68k_stack_dep.h
            foo = (ttkalign_t *) malloc( sizeof(sttkalign_t) *size);


 I did grep's for ( svc_fdset, svc_getreqset, & foo )  in the Ultrix includes.
None of them were found.  svc_fdset appears to be a global file descriptor that
is used by svc_getreqset.  "foo" seems to be used for byte alignment.  I'm not
a MIPs arch wizard so maybe someone could suggest a comparable thing for Ultrix.
I haven't been able to locate an description of the svc_getreqset in the SUN
manuals I have detailed enough for me to write the C code necessary for an
Ultrix version of svc_getreqset. ( The svc_fdset variable is used throughout
the XView2.0 code usage of it does not depend on any defines.)

Thanks,

-- 
--------------------------------------------------------------------------
David A. Haverkamp                    Collins Commercial Avionics Division
                                      Rockwell International   MS 124-211
INTERNET: dah@zoot.avgrp.cr.rok.com   Cedar Rapids, Iowa 52498

openlook-request@openlook.ogi.edu (03/15/91)

From: uunet!zoot.avgrp.cr.rok.com!dah (Dave Haverkam

	1. svc_fdset -- On SUN this is declared as "extern svc_set svc_fdset;" in svc.h
	2. svc_getreqset() -- On SUN
	              #ifndef KERNEL
	               extern  void    svc_getreqset(); /* takes fdset instead of int */
	              #endif

These are from Sun's RPC (remote procedure call) library, which is freely 
available, but has nothing to do (per se) with X Windows.  If you don't have 
RPC on your machine, you should be able to eliminate the references and never 
miss the stuff.

The references are in XView to integrate the event dispatching--both X and RPC 
need to select on a set of file descriptors and dispatch routines based on 
messages arriving on them.  If RPC dispatching is not integerated with X 
dispatching, one or the other suffers.  It is possible (I know, I've done it :-) 
to do RPC dispatching from Xt using XtAppAddInput and XtRemoveInput, but since 
(with TCP-based RPC, anyway) the set of RPC file descriptors is changed by the 
RPC dispatching routines themselves as new connections are accepted and closed
(not just in response to explicit requests by the library user, such as open 
a new client handle), it is tedious, requiring a check of the bits in svc_fdset 
against the descriptors Xt knows about aftereach svc_getreqset() call.

I see now I should have said, all this RPC stuff only matters if you want your
X program to be an RPC server (which includes callback RPC clients).  If you
need only a simple RPC client, in which the client blocks until the call
returns, RPC dispatching is not needed.

So Sun did a small service in integrating RPC dispatching into the XView event 
notification scheme, but you should probaly #ifdef it out unless you want to use
Sun RPC in conjunction with X.  (BTW, if your machine has NFS, it has RPC--but I
don't know if your vendor exposes the interface.)


Randy Brown (uunet!erik!rbrown)