-*- Mode: Modula-3 -*-
*
* For information about this program, contact Blair MacIntyre
* (bm@cs.columbia.edu) or Steven Feiner (feiner@cs.columbia.edu)
* at the Computer Science Dept., Columbia University,
* 1214 Amsterdam Ave. Mailstop 0401, New York, NY, 10027.
*
* Copyright (C) 1995, 1996 by The Trustees of Columbia University in the
* City of New York. Blair MacIntyre, Computer Science Department.
* See file COPYRIGHT-COLUMBIA for details.
*
* Author : Blair MacIntyre
* Created On : Wed May 24 12:51:10 1995
* Last Modified By: Blair MacIntyre
* Last Modified On: Thu Nov 21 17:39:41 1996
* Update Count : 49
*
* $Source: /usr/cvs/cm3/m3-comm/events/src/EventProtocol.i3,v $
* $Date: 2001-12-02 00:20:37 $
* $Author: wagner $
* $Revision: 1.2 $
*
* $Log: EventProtocol.i3,v $
* Revision 1.2 2001-12-02 00:20:37 wagner
* add copyright notes, fix overrides for cm3, and make everything compile
*
* added: events/COPYRIGHT-COLUMBIA
* added: events/src/COPYRIGHT-COLUMBIA
* modified: events/src/Event.i3
* modified: events/src/Event.m3
* modified: events/src/EventConn.i3
* modified: events/src/EventConn.m3
* modified: events/src/EventCounter.i3
* modified: events/src/EventCounter.m3
* modified: events/src/EventHandle.i3
* modified: events/src/EventIO.i3
* modified: events/src/EventNumber.i3
* modified: events/src/EventNumber.m3
* modified: events/src/EventNumberF.i3
* modified: events/src/EventPort.i3
* modified: events/src/EventPort.m3
* modified: events/src/EventProtocol.i3
* modified: events/src/EventRd.i3
* modified: events/src/EventRd.m3
* modified: events/src/EventSpaceID.i3
* modified: events/src/EventSpaceID.m3
* modified: events/src/EventStubLib.i3
* modified: events/src/EventStubLib.m3
* modified: events/src/EventWireRep.i3
* modified: events/src/EventWireRep.m3
* modified: events/src/EventWr.i3
* modified: events/src/EventWr.m3
* modified: events/src/EventWrF.i3
* modified: events/src/HostInfo.i3
* modified: events/src/HostInfo.m3
* modified: events/src/RdWrMutex.i3
* modified: events/src/RdWrMutex.m3
* modified: events/src/Work.i3
* modified: events/src/WorkerPool.i3
* modified: events/src/WorkerPool.m3
* modified: events/src/Zombie.i3
* modified: events/src/m3makefile
* modified: events/src/m3overrides
*
* Revision 1.1.1.1 2001/12/02 00:06:45 wagner
* Blair MacIntyre's events library
*
* Revision 1.3 1996/11/21 22:39:45 bm
* fixed header
*
*
* HISTORY
INTERFACE EventProtocol;
TYPE
Byte8 = BITS 8 FOR [0..255];
DataRep = RECORD
id, intFmt, floatFmt, charSet: Byte8;
END;
Int32 = BITS 32 FOR [-16_7FFFFFFF-1..16_7FFFFFFF];
Cardinal32 = BITS 32 FOR [0..16_7FFFFFFF];
(* I lose half the numbers here, but that's ok. *)
Word32 = Int32;
StubProtocol = Int32;
ID = Byte8;
The type DataRep
describes the format used to encode characters,
integers, and floating point numbers in network data. This is the
same as the network object StubLib interface, so see it for a
description of these fields. The id
field is used to specify
the type of the event.
The type StubProtocol
indicates the version of the stub compiler
used to generate a particular stub. Multiple stubs for the same
sort of event can coexist within the same program (for example,
the outputs of different stub compilers).\ttindex{EventStubLib.StubProtocol}
The ID type is the type used outside this interface for
specifying the event type.
This header appears in all events. The intFmt
, floatFmt
, and
charSet
fields of a Header
indicate the native data representation
of the sender. For a header hdr
, VAL(hdr.id, Op)
indicates
the event type and is dependent on the package using it.
MsgHeader = RECORD
rep: DataRep;
prot: StubProtocol;
numLo: Word32;
numHi: Word32;
END;
A 128-bit MsgHeader
prefixes every event.
It is 64-bit aligned so that data streams will be aligned
correctly in memory on 64-bit machines.
VAR (*CONST*) NativeRep: DataRep;
NativeRep
is a runtime constant that describes the native format
of the current environment.
\ttindex{EventStubLib.DataRep}\ttindex{EventStubLib.NativeRep}
END EventProtocol.