DEFINITION MODULE RegSlv;

FROM items IMPORT ITEM, REGISTER;

EXPORT QUALIFIED StopSlaving, DeleteFromSlave,
                 PutIntoSlave, FreeReg, slave, Slave,
		 AdjustRegSlave, SetRegFree, IsFree,
                 protect, ResetUseBits, MarkOnStack,
		 UseBitSet, PurgeRegSlaves,
		 PurgeAfterStackStore,
                 RegCanBeFreedSimply;

CONST UseBitSet = TRUE;

PROCEDURE RegCanBeFreedSimply () : BOOLEAN;
PROCEDURE StopSlaving (VAR item : ITEM);
PROCEDURE DeleteFromSlave (Reg : REGISTER);
PROCEDURE PutIntoSlave (VAR reg, item : ITEM; regchanged: BOOLEAN);
PROCEDURE FreeReg (VAR item : ITEM; UseBit : BOOLEAN);
PROCEDURE IsFree (reg : REGISTER) : BOOLEAN;
PROCEDURE slave (VAR item :ITEM);
PROCEDURE Slave (VAR item, SlaveItem : ITEM);
PROCEDURE AdjustRegSlave (AddrReg : REGISTER);
PROCEDURE SetRegFree (reg : REGISTER);
PROCEDURE protect (VAR item : ITEM);
PROCEDURE ResetUseBits ();
PROCEDURE MarkOnStack (reg : REGISTER);
PROCEDURE PurgeRegSlaves (AfterProcCall : BOOLEAN);
PROCEDURE PurgeAfterStackStore (VAR item : ITEM);
END RegSlv.
