-- SpecialSystem.mesa (last edited by: McJones on: May 30, 1980  4:43 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;
  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;
  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 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