(****************************************************************) (* *) (* Gardens Point Modula-2 Library Definition *) (* *) (* *) (* (c) Copyright 1996 Faculty of Information Technology *) (* Queensland University of Technology *) (* *) (* Permission is granted to use, copy and change this *) (* program as long as the copyright message is left intact *) (* *) (****************************************************************) FOREIGN DEFINITION MODULE Coroutines; (* coroutines as in PIM *) IMPORT IMPLEMENTATION FROM "coroutines.o"; FROM SYSTEM IMPORT ADDRESS; TYPE Coroutine = ADDRESS; (* use of this type avoids SYSTEM import *) PROCEDURE NEWPROCESS (code : PROC; (* body of coroutine *) space : ADDRESS; (* ptr to workspace *) size : CARDINAL; (* size of workspace *) VAR this : Coroutine); (* returned coroutine *) PROCEDURE TRANSFER (VAR thisCo : Coroutine; (* current saved here *) VAR destCo : Coroutine); (* target to activate *) END Coroutines.