<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE> RPC2 User Guide and Reference Manual: Usage and Implementation Notes </TITLE> <LINK HREF="rpc2_manual-18.html" REL=previous> <LINK HREF="rpc2_manual.html#toc19" REL=contents> </HEAD> <BODY> Next <A HREF="rpc2_manual-18.html">Previous</A> <A HREF="rpc2_manual.html#toc19">Contents</A> <HR> <H2><A NAME="UsgNts"></A> <A NAME="s19">19. Usage and Implementation Notes </A></H2> <P> <H2><A NAME="ss19.1">19.1 Current Limitations</A> </H2> <P> <UL> <LI>Only one portal is allowed in @RPC2(Init). This should be a list eventually.</LI> <LI>SmartFTP is the only side-effect type currently supported.</LI> <LI>getsubsysbyname() is a fake routine. It knows about "Vice2-FileServer", and "Vice2-CallBack".</LI> <LI>At present the multicast routines work only on RTs running Mach. The non-multicast MultiRPC routines work on all architectures.</LI> </UL> <P> <P> <H2><A NAME="ss19.2">19.2 Where to Find Files at Carnegie Mellon</A> </H2> <P>The LWP release consists of a set of include files (cargs.h, lwp.h, lock.h, timer.h, and preempt.h) and a library (liblwp.a). <P>The RPC2 release consists of a set of include files (rpc2.h, se.h), a set of libraries (librpc2.a and libse.a), and the RP2Gen binary (rp2gen). <P>The LWP and RPC2 releases are available for RTs, Sun-3s, Vaxen, Pmaxen running Andrew and Mach, and Next running Andrew. (Systypes rt_r3, rt_mach, sun3_35, sun3_mach, vax_3, vax_mach, pmax_3, pmax_mach, next_mach20) <P>On Coda, these files may be found in <CODE>/coda/project/coda/alpha/{include,lib,bin}</CODE>. <P>On Andrew, these files are located in <CODE>/afs/andrew/scs/cs/15-612{include,lib,bin}</CODE>. <P>iopen () is a system call created at Carnegie Mellon. Put an empty dummy function if your C library doesn't have it. <P> <H2><A NAME="ss19.3">19.3 Debugging</A> </H2> <P>The following external RPC2 variables may be set for debugging: <DL> <DT><B>@RPC2(DebugLevel)</B><DD><P>values of 0, 1, 10 and 100 are meaningful. Initial value is 0. <P> <DT><B>@RPC2(Perror)</B><DD><P>set to 1 to see Unix error messages on stderr. Initial value is 1. <P> <DT><B>@RPC2(Trace)</B><DD><P>set to 1 to enable tracing. 0 turns off tracing. Initial value is 0. Also see description of @RPC2(InitTrace) and @RPC2(DumpTrace) calls. </DL> <P>A global variable <B>lwp_debug</B> can be set to activate or deactivate debugging messages tracing the flow of control within the LWP routines. To activate debugging messages, set <B>lwp_debug</B> to a non-zero value. To deactivate, reset it to zero. All debugging output from the LWP routines is sent to stdout. <P>The LWP package checks for stack overflows at each context switch. The <B>lwp_overflowAction</B> variable controls the action of the package when an overflow occurs. If it is set to <B>LWP_SOMESSAGE</B>, then LWP will print a message on stderr telling of the overflow and will then be quiet. If it is set to <B>LWP_SOABORT</B>, LWP will call the abort () subroutine. Finally, if it is set to <B>LWP_SOQUIET</B>, LWP will ignore the errors. The <B>LWP_SOABORT</B> setting is the default. <P> <P> <P> <P> <HR> Next <A HREF="rpc2_manual-18.html">Previous</A> <A HREF="rpc2_manual.html#toc19">Contents</A> </BODY> </HTML>