include "ether.m"; ether := load Ether Ether->PATH; Eaddrlen: con 6; init: fn(); parse: fn(s: string): array of byte; text: fn(a: array of byte): string; addressof: fn(dev: string): array of byte; eqaddr: fn(a, b: array of byte): int;
Init must be called before using any other function in the module.
Parse takes a textual representation of a MAC address in s and returns its internal representation as an array of bytes of length Eaddrlen, the form used in packets read and written via ether(3). S is a string of twelve hexadecimal digits, corresponding to the six bytes of a MAC address. Each pair of digits can optionally be separated by a colon. If s is invalid, parse returns nil.
Text takes an array of bytes of length Eaddrlen and returns its textual representation (a string of twelve hexadecimal digits). It returns <invalid> if the array is less than Eaddrlen, but it ignores any bytes beyond that.
Addressof returns the MAC address of the given Ether device dev (eg, /net/ether0), which it reads from dev/addr. It returns nil and sets the error string if that file does not exist or is invalid.
Eqaddr returns true iff a and b are the same address.
ETHER(2 ) | Rev: Thu Feb 15 14:43:27 GMT 2007 |