-- File: ArpaPortInternal.mesa - last edit: -- JAV 12-Nov-87 14:43:02 -- AOF 9-Mar-87 20:05:45 -- SMA 17-Feb-86 14:56:24 -- Copyright (C) 1985, 1986, 1987 by Xerox Corporation. All rights reserved. DIRECTORY ArpaRouter USING [InternetAddress], ESCAlpha USING [aDAND, aDXOR], Inline USING [BITNOT], Mopcodes USING [zACD, zADD, zESC, zIOR], ArpaBuffer USING [Buffer]; ArpaPortInternal: DEFINITIONS IMPORTS Inline = BEGIN Checksum: PROC[cs: CARDINAL ← 0, nWords: CARDINAL, p: LONG POINTER] RETURNS [checksum: CARDINAL] = INLINE { OPEN Mopcodes; Push: PROC [CARDINAL] = MACHINE CODE BEGIN END; Pop: PROC RETURNS [CARDINAL] = MACHINE CODE BEGIN END; OnesAdd: PROC [ --cs: CARDINAL,-- wd: CARDINAL, zero1: CARDINAL ← 0] --RETURNS [cs: CARDINAL]-- = MACHINE CODE {zACD; zADD}; Push[cs]; THROUGH [0..nWords) DO OnesAdd[wd: p↑]; p ← p + 1; ENDLOOP; RETURN Inline.BITNOT[Pop[]]}; AddrMismatch: PROC[mask, test, target: ArpaRouter.InternetAddress] RETURNS[BOOLEAN] = INLINE {RETURN[zCompare[mask, test, target] # 0]}; AddrMatch: PROC [mask, test, target: ArpaRouter.InternetAddress] RETURNS[BOOLEAN] = INLINE {RETURN[zCompare[mask, test, target] = 0]}; zCompare: PROC[mask, test, target: ArpaRouter.InternetAddress] RETURNS[CARDINAL] = MACHINE CODE --returns 0 iff they match. {Mopcodes.zESC, ESCAlpha.aDXOR; Mopcodes.zESC, ESCAlpha.aDAND; Mopcodes.zIOR}; DestType: TYPE = {local, remote}; --Destined for local host or someone else. BuildMasks: PROC [addr: ArpaRouter.InternetAddress] RETURNS [hostMask, netMask: ArpaRouter.InternetAddress]; SendPacket: PROC [b: ArpaBuffer.Buffer, destType: DestType]; QueueForClient: PROC [b: ArpaBuffer.Buffer, copy: BOOLEAN] RETURNS [BOOLEAN]; InitUniquePort: PROC; GetMyNullAddr: PROC RETURNS [ArpaRouter.InternetAddress]; GetMyBroadcastAddr: PROC RETURNS [ArpaRouter.InternetAddress]; GetArpaAddr: PROC RETURNS [ArpaRouter.InternetAddress]; GetGatewayAddr: PROC RETURNS [ArpaRouter.InternetAddress]; GetDomainNameServer: PROC RETURNS [ArpaRouter.InternetAddress]; GetSubnetMask: PROC RETURNS[ArpaRouter.InternetAddress]; SetGatewayAddr: PROC [addr: ArpaRouter.InternetAddress]; SetDomainNameServer: PROC [addr: ArpaRouter.InternetAddress]; END. LOG ALD/ISI dd-mmm-yy hh:mm:ss added GetDomainNameServer AOF 9-Mar-87 20:04:34 Funston changes JAV 15-Jun-87 11:11:41 Added SetGatewayAddr & SetDomainNameServer