-- SpecialSystem.mesa (last edited by: McJones on: September 2, 1980 4:56 PM)
SpecialSystem: DEFINITIONS =
BEGIN
-- Network addresses
NetworkAddress: TYPE = MACHINE DEPENDENT RECORD [
net: NetworkNumber,
host: HostNumber,
socket: SocketNumber];
nullNetworkAddress: NetworkAddress = [net: nullNetworkNumber, host: nullHostNumber, socket: [0]];
NetworkNumber: TYPE = MACHINE DEPENDENT RECORD [a, b: UNSPECIFIED];
nullNetworkNumber: NetworkNumber = [0, 0];
HostNumber: TYPE = MACHINE DEPENDENT RECORD [SELECT type: * FROM
physical => [a: CARDINAL[0..32768), b: CARDINAL, c: CARDINAL],
multicast => [a: CARDINAL[0..32768), b: CARDINAL, c: CARDINAL],
ENDCASE];
-- A physical host number is assigned to an actual system element. A multicast host number names a logical group all wishing to receive a particular class of multicast packets.
nullHostNumber: physical HostNumber = [physical[0, 0, 0]];
-- The number of no host; must be kept consistent with the communication interfaces!
MulticastID: TYPE = multicast HostNumber ← NULL;
broadcastHostNumber: HostNumber = [multicast[LAST[CARDINAL[0..32768)], LAST[CARDINAL], LAST[CARDINAL]]];
-- A special host number used for broadcasting messages; must be kept consistent with the communication interfaces!
SocketNumber: TYPE = MACHINE DEPENDENT RECORD [UNSPECIFIED];
nullSocketNumber: SocketNumber = [0];
-- Processor identifiers
ProcessorID: TYPE = physical HostNumber ← NULL;
nullProcessorID: ProcessorID = nullHostNumber;
GetProcessorID: PROCEDURE RETURNS [p: ProcessorID];
-- Return the ProcessorID by which this system element is known to software, Ethernet, etc.
END.
LOG
Time: January 25, 1980 3:12 PMBy: DalalAction: Created file
Time: January 27, 1980 7:12 PMBy: ForrestAction: Corrected file creation date
Time: May 9, 1980 1:36 PMBy: McJonesAction: Changed to 48-bit processor id, added network address types
Time: September 2, 1980 4:56 PMBy: McJonesAction: Add NULL default to ProcessorID, MulticastID so they can be used within implementations of exported types