<> <> <> <<>> <> <<>> <> <<>> DIRECTORY Camelot, Mach, YggTransaction; <<>> YggSTProcsImpl: CEDAR PROGRAM IMPORTS YggTransaction ~ BEGIN <> <<>> STVote: PROC [sPort: Mach.portT, btid: Camelot.btidT, timestamp: Camelot.timestampT, prepare: BOOL, result: POINTER TO Camelot.voteT] ~ { <> <> ERROR; }; <<>> <<>> STCommit: PROC [sPort: Mach.portT, btid: Camelot.btidT] ~ { <> <> tid: YggTransaction.TransID; tid.top _ btid; [] _ YggTransaction.Finish[tid, commit]; }; <<>> <<>> STAbort: PROC [sPort: Mach.portT, btid: Camelot.btidT] ~ { <> <> tid: YggTransaction.TransID; tid.top _ btid; [] _ YggTransaction.Finish[tid, abort]; }; <<>> <<>> STSuspend: PROC [sPort: Mach.portT, tid: Camelot.tidT, status: INT] ~ { <> <> <<(Whoa is a pun: Yggdrasil is derived from the "the horse of Yggr" after all.)>> YggTransaction.Suspend[tid, status]; }; <<>> <<>> <> END.