Changes from Internet 4.08 to Internet 4.09
-------------------------------------------
Ioctl SIOCGIFHWADDR added. This allows the hardware address of
a named interface to be returned. If the interface does not have
a hardware address, EOPNOTSUPP is returned.
Ioctl SIOCSIFHWADDR allocated, but not implemented.

Minimum required DCI version now set to 4.02 (was 4.01). Some ANT
drivers erroneously reported themselves as 4.01 on initialisation -
new versions will be required.

The number of ioctl SIOCGPCBHEADS has changed - this should only
affect the InetStat command - a new version will be supplied. This
was due to an unfortunate clash between it and SIOCSIFMTU. Although
SIOCGPCBHEADS got there first, and thus has the moral high ground,
changing SIOCSIFMTU would cause too much disruption at this stage.

A new ioctl FIOSLEEPTW added to allow blocking I/O to
multitask correctly in a task window. When enabled, any blocking
transmits, receives, accepts, connects and selects on that socket
will call OS_Upcall 6 if in a task window (see PRM 1-187). This
is disabled by default, as many modules such as NFS will not expect
this, and may be re-entered with disastrous results. Note that
behaviour with select is undefined if some sockets have this option
set and others don't (undefined in that it may or may not call UpCall 6 -
it will still work!). A future version of socklib may set this option
within socket() and accept() in its application variant.

Support for receive and send low-water marks added (SO_RCVLOWAT and
SO_SNDLOWAT). Sends will block until so_rcv.sb_lowat bytes can be sent
in operation. Receives will block until so_snd.sb_lowat bytes can be
read in one operation. The settings also affect select() in the obvious
fashion.Setting either low-water mark to zero will have (at best) strange
consequences - the default is 1. This is useful, for example, for programs
that only send short commands. By setting the send low-water mark to (for
example) 256 with FIONBIO on, a program can be assured that a command of
less than 256 bytes will either be totally sent or not sent at all - no
need to deal with the case of it being partially sent.
These socket options have always been present, but their values ignored.

A new option added to *InetChecksum (*InetChecksum a) to cause the
calculation of checksums for AUN acknowledgement packets (the checksum
is normally omitted for speed, but is required for it to pass across
some non-Acorn gateways).

The 3 main Internet events (Async, Urgent and Broken) now pass the
local port number that the relevant socket is bound to in R3.

Various internal optimisations for speed (eg the TickerV routine
recrafted in IRQ-mode assembler, rather than being in plain C), and
to reduce the SVC stack usage.
