
                           IPC System Sources
                           ==================

This directory contains the source files for creating the IPC Shared
Library.

Include header files:


    IPCStruct.h --  Header defining only the IPC structures (extracted
                    from IPC.h and IPCPorts.h); avoids function prototype
                    conflicts within the library sources.

    IPCAsmCalls.h   -- prototypes for direct calling of library routines
                    by other routines within the library.

                        + + +



Source Files for the Shared Library:

    IPClib.c    --  Contains all the IPC library procedures that a user
                    program will call for managing IPCPorts and
                    IPCMessages.  Calls to the library invoke these
                    routines directly (no assembly level interface
                    required -- they use the "__asm" feature of
                    Lattice 5.0).

    LoadIPCPort.c   -- An alternative to GetIPCPort (which it uses
                    internally) that sends a message to a "Port Broker"
                    if the requested port does not currently have a server;
                    if the broker cannot find a server to satisfy the
                    request (or the broker itself isn't loaded!), this call
                    will return NULL.  This module is now a standard part
                    of the library.

    UtilIPC.c       -- Contains two (new) utility functions that have been
                    added to the IPC Library (MakeIPCId and FindIPCItem).

    LibFuncs.c  --  Standard library functions (Init, Open, Close, Expunge)
                    with minor additions to handle particular IPC needs.

    LibTables.c --  Tables for library initialization.  (The library node
                    structure initialization is not easy to specify in C;
                    the table for that is in LibTag.a.)

    LibTag.a    --  The library RomTag structure needed for autoloading
                    by OpenLibrary().  Also contains basic initialization
                    data for the library node.

                        + + +

Make File:

    lmkfile     --  Lattice 5.0 Makefile for the library.  It assumes that
                    all assignments and paths have been set up before it
                    is invoked.

Link File:

    IPCLibrary.lnk  -- BLINK "WITH" file to create "ppipc.library" from
                    the component object files (also used by lmkfile).


                            +++++++++++++++++


Compiling under Lattice:

    The library modules MUST all be compiled with -b0 and -v options.
    (It probably would be fairly easy to make it compatible with the -y
    option instead of -b0, by saving a suitable base pointer on
    initialization, but I haven't experimented with that yet.)

    Application programs may of course be compiled in any mode you like.
    If you are using Lattice 4.0 or later, it will be more convenient to
    include IPC_proto.h (as well as IPC.h) so you can avoid any need to
    link with IPC.lib (itself available in Libraries directory).

                            +++++++++++++++++
                            -----------------

                                                    1989 April 18
