NSAddress.mesa: layout of NS network addresses
Copyright © 1985 by Xerox Corporation. All rights reserved.
created from SpecialSystem.mesa edited by Jones on September 2, 1980 4:56 PM)
Andrew Birrell May 9, 1983 2:48 pm
DIRECTORY
EthernetFace USING[ HostNumber ],
ProcessorFace USING[ processorID ];
NSAddress: DEFINITIONS
IMPORTS ProcessorFace =
BEGIN
NetworkAddress: TYPE = MACHINE DEPENDENT RECORD [
net(0): NetworkNumber,
host(2): HostNumber,
socket(5): SocketNumber];
nullNetworkAddress: NetworkAddress =
[net: nullNetworkNumber, host: nullHostNumber, socket: [0]];
NetworkNumber: TYPE = MACHINE DEPENDENT RECORD [a, b: CARDINAL];
nullNetworkNumber: NetworkNumber = [0, 0];
HostNumber: TYPE = EthernetFace.HostNumber;
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.
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 [CARDINAL];
nullSocketNumber: SocketNumber = [0];
ProcessorID: TYPE = physical HostNumber ← NULL;
nullProcessorID: ProcessorID = nullHostNumber;
GetProcessorID: PROCEDURE RETURNS [p: ProcessorID] = INLINE
{ RETURN[ LOOPHOLE[ProcessorFace.processorID] ] };
Return the EthernetFace.HostNumber by which this system element is known to the Ethernet head. In principle, this is some translation of the processorID provided by the ProcessorFace, but it happens to be the identity transformation, hence the LOOPHOLE. Perhaps this should really be in the EthernetFace?
END.
LOG
Time: January 25, 1980 3:12 PM By: Dalal Action: Created file
Time: January 27, 1980 7:12 PM By: Forrest Action: Corrected file creation date
Time: May 9, 1980 1:36 PM By: McJones Action: Changed to 48-bit processor id, added network address types
Time: September 2, 1980 4:56 PM By: McJones Action: Add NULL default to ProcessorID, MulticastID so they can be used within implementations of exported types
Time: May 6, 1983 3:15 pm By: ADB Action: Created from SpecialSystem for Cedar nucleus conversion.