Next Previous Contents

## 19. Usage and Implementation Notes

## 19.1 Current Limitations

- Only one portal is allowed in @RPC2(Init). This should be a list eventually.
- SmartFTP is the only side-effect type currently supported.
- getsubsysbyname() is a fake routine. It knows about "Vice2-FileServer", and "Vice2-CallBack".
- At present the multicast routines work only on RTs running Mach. The non-multicast MultiRPC routines work on all architectures.

## 19.2 Where to Find Files at Carnegie Mellon

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).

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).

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)

On Coda, these files may be found in `/coda/project/coda/alpha/{include,lib,bin}`.

On Andrew, these files are located in `/afs/andrew/scs/cs/15-612{include,lib,bin}`.

iopen () is a system call created at Carnegie Mellon. Put an empty dummy function if your C library doesn't have it.

## 19.3 Debugging

The following external RPC2 variables may be set for debugging:

@RPC2(DebugLevel)

  values of 0, 1, 10 and 100 are meaningful. Initial value is 0.

@RPC2(Perror)

  set to 1 to see Unix error messages on stderr. Initial value is 1.

@RPC2(Trace)

  set to 1 to enable tracing. 0 turns off tracing. Initial value is 0. Also see description of @RPC2(InitTrace) and @RPC2(DumpTrace) calls.

A global variable lwp_debug can be set to activate or deactivate debugging messages tracing the flow of control within the LWP routines. To activate debugging messages, set lwp_debug to a non-zero value. To deactivate, reset it to zero. All debugging output from the LWP routines is sent to stdout.

The LWP package checks for stack overflows at each context switch. The lwp_overflowAction variable controls the action of the package when an overflow occurs. If it is set to LWP_SOMESSAGE, then LWP will print a message on stderr telling of the overflow and will then be quiet. If it is set to LWP_SOABORT, LWP will call the abort () subroutine. Finally, if it is set to LWP_SOQUIET, LWP will ignore the errors. The LWP_SOABORT setting is the default.

Next Previous Contents