File name 19770719_How_To_Get_At_The_Pup_And_FTP_Packages.pdfXEROX
INFORMATION I)RODUCI'S GROUP
Systems Development Division
July 19, 1977 6:33 PM
XEROX SDD ARCHIVES
1 have read and understood
pages ____-----To ---------
To: Pup and FrP Package Users Reviewer _Date----
., of Pages Re! .. :11 <:>() p - 2 '1 ~
From: Hal Murray, x4539
Subject: How to get at the Pup and FrP Packages
Stored: PupFrP.Bravo
Everything needed to interface to the Pup Package in defined in PupDefs. The FrP package
interface is defined in FrPDefs. Both packages also reference MesaDefs, and SysDefs. If'
you are looking for some simple examples, the Mesa PupTest package (probably in
Pt.DM) is probably a good place to start. The NameLookup module (in the Pup
Package) also has a nice example of how to use the Socket level interface. Snarf.mesa is a
simple FrP example.
The Pup Package and optionally the FrP Package comes preloaded as an appendage to the
Mesa runtime routines. This makes a fat image file if all the symbols are included for
debugging, but you can discard your Mesa.i mage. A Statistics package, and a window
manager modified to use our secheduler is also available as an option. I will brew up an
image file with the desired options when you need it. You can also make a disk that has all
of the sources and xm's, and use it to build your own image file. Everything just barely fits
on one disk, but you will probably have to delete the Compiler when you are finally ready
to make your image file.
You can't BIND to any of the pup routines because we have fixed up the binding path to hide
everything except a tiny interface module. This makes binding to the system faster. The
interface module is called Coolie - be sure to get Coolie.xm if you are getting an image file
without symbols. The actual routines in the Pup Package and the FrP Package are
referenced via two giant dispatch vectors. There is a third vector that the Pup Package and
the FTP Package use to interface to the Mesa Runtime routines. It avoids binding, and can
readily be used by other programs. I will add things to the giant mesa vector if there is
something you need that isn't already there. The vectors live in file segments so they don't
even use any core when not being used.
2
There are routines (on the binding path) that return pointers to the needed dispatch records.
Normally, a manager would pass these pointers to other modules at NEW time where they
would be OPENed on the module BEGIN.
GetMesaVector: PROCEDURE RETURNS [Mesa |