DEFINITION MODULE memmanagerL {"memmanager.library",3};

(*$ Implementation- *)

FROM SYSTEM IMPORT ADDRESS;
IMPORT ed:ExecD,Reg;


VAR
 memmanagerbase : ed.LibraryPtr;


CONST
 memmanagerMinVersion=3;
 memmanagerName="memmanager.library";

 disposable = 2;
 paged = 4;

PROCEDURE CreateVMem(memsize{Reg.D0},memflags{Reg.D1},initpri{Reg.D2},vmemflags{Reg.D3}:LONGINT):ADDRESS; CODE -30;

PROCEDURE RemoveVMem(obj{Reg.A1}:ADDRESS); CODE -36;

PROCEDURE LockVMem(obj{Reg.A1}:ADDRESS):ADDRESS; CODE -42;

PROCEDURE UnlockVMem(obj{Reg.A1}:ADDRESS); CODE -48;

PROCEDURE ChangeVMemPri(obj{Reg.A1}:ADDRESS;mempri{Reg.D0}:LONGINT); CODE -54;

PROCEDURE PurgeVMem(memflags{Reg.D1}:LONGINT) : LONGINT; CODE -60;

PROCEDURE ChangeVMemType(obj{Reg.A1} : ADDRESS; vmemflags{Reg.D0} : LONGINT); CODE -66;

PROCEDURE DefineVMemHierachy(hierachy{Reg.A1} : ADDRESS); CODE -72;

PROCEDURE ClearVMemHierachy(hierachy{Reg.A1} : ADDRESS); CODE -78;

PROCEDURE Publish(obj{Reg.A1} : ADDRESS); CODE -84;

PROCEDURE Protect(obj{Reg.A1} : ADDRESS); CODE -90;

END memmanagerL.
