DEFINITION MODULE ExecSupport;

FROM SYSTEM IMPORT ADDRESS;
IMPORT ExecD,Reg;

TYPE VecPool = RECORD
                 pool : ADDRESS;
                 fullSize : LONGCARD;
                 (** mem follows **)
               END;
     VecPoolPtr = POINTER TO VecPool;


PROCEDURE NewList(list{Reg.A0}:ExecD.ListPtr);

PROCEDURE BeginIO(ioRequest{9}:ADDRESS);
PROCEDURE AbortIO(ioRequest{9}:ADDRESS);
PROCEDURE CreatePort(portName:ADDRESS;priority:SHORTINT):ExecD.MsgPortPtr;
PROCEDURE DeletePort(port:ExecD.MsgPortPtr);

PROCEDURE CreateTask(taskName: ADDRESS; priority: SHORTINT;
                     initPC: ADDRESS; stackSize: LONGINT): ExecD.TaskPtr;
PROCEDURE DeleteTask(t: ExecD.TaskPtr);

PROCEDURE CreateExtIO(ioReplyPort: ExecD.MsgPortPtr; size: INTEGER): ADDRESS;
PROCEDURE DeleteExtIO(extIOReq: ADDRESS);

PROCEDURE CreateStdIO(ioReplyPort: ExecD.MsgPortPtr): ExecD.IOStdReqPtr;
PROCEDURE DeleteStdIO(ioStdReq: ExecD.IOStdReqPtr);

PROCEDURE AllocVecPooled(memPool : ADDRESS;
                         size : LONGCARD):ADDRESS;

PROCEDURE FreeVecPooled(mem : ADDRESS);



END ExecSupport.
