module HAVi_sync (TYPES, CHANNELS, BUS, CMM, DCM_sync) is ------------------------------------------------------------------------------- process MAIN [gInfo: InfoChannel, gUpDown: UpDownChannel, gBusReset: BusResetChannel, gDM: DMChannel, gEvent: EventChannel] is par gUpDown, gBusReset -> BusReset [gUpDown, gBusReset] (net_down) -- all DCMs down || gUpDown, gInfo -> par gDM in par DCM [gInfo, gUpDown, gDM, gEvent] (1) || OtherCommunications [gDM] (1) end par || par DCM [gInfo, gUpDown, gDM, gEvent] (2) || OtherCommunications [gDM] (2) end par end par || gUpDown, gBusReset, gInfo -> par gBusReset in CMM [gInfo, gUpDown, gBusReset] (1) || CMM [gInfo, gUpDown, gBusReset] (2) end par end par end process ------------------------------------------------------------------------------- process OtherCommunications [gDM: DMChannel] (Id: Nat3) is var j, k, l: Nat3 in loop alt gDM (?j, ?k, DMInitRequest, ?any bool) where (j <> Id) and (j <> 0) and (k <> Id) and (k <> 0) [] gDM (?j, ?k, DMInitReply, ?l) where (j <> Id) and (j <> 0) and (k <> Id) and (k <> 0) and (l <> 0) end alt end loop end var end process ------------------------------------------------------------------------------- end module