-- EthernetOneFaceExtras.mesa
--  (last edited by: Swinehart on: September 23, 1982 12:32 pm)

DIRECTORY Environment USING [Byte],
	       EthernetOneFace USING [DeviceHandle];

EthernetOneFaceExtras: DEFINITIONS = {
OPEN EthernetOneFace;

HostAddress: TYPE = Environment.Byte;
HostArray: TYPE = PACKED ARRAY HostAddress OF BOOLEAN;

-- PROCEDURES

-- Specifies one or more host addresses to be recognized by the input microcode.
-- This function is not a substitute for EthernetOneFace.TurnOn[...], which must be
--   called first to initialize the ethernet interface.
-- Depending on how the microcode is written, up to one additional packet may be
--   received before the hosts specified by inputHosts take effect.
-- Note that receipt of broadcast packets will be disabled unless inputHosts[0] is TRUE.
-- Other parameters required by the Ethernet interface must be specified in
--   EthernetOneFace.TurnOn[...]

InputHosts: PROCEDURE [device: DeviceHandle, inputHosts: LONG POINTER TO HostArray];
	
-- This function returns to the single host (+broadcast) case for input packets.

InputHost: PROCEDURE[device: DeviceHandle, host: Environment.Byte];

-- canDo is TRUE if the implementation supports the InputHosts operations;
-- multicastsEnabled is TRUE if canDo is TRUE and InputHosts has been called.

MulticastCapabilities: PROCEDURE[device: DeviceHandle]
	RETURNS [ canDo: BOOLEAN, multicastsEnabled: BOOLEAN];
}.

Log:
Created By: Swinehart, Time: 10 March 1982 3:23 pm PST (Wednesday),
	Action: Augment EthernetOneFace with TurnOnHosts[] procedure.
Renamed: 16 March 1982 8:38 am PST (Tuesday)
Edited By: Swinehart, Time: September 19, 1982 2:14 pm
	Action: changed TurnOnHosts to InputHosts, added InputHost.
		These functions no longer set/reset microcode, but simply change to/from multicast.
		TurnOn[] ... now specifies host for old-style microcode.
Edited By: Swinehart, Time: September 23, 1982 12:31 pm,
	Action: rename to EthernetOneFaceExtras, add MulticastCapabilities function.