S2_ONLINE S2_ONEVENT S2_OFFLINE In order to run hardware tests on an otherwise live system, the S2_OFFLINE command allows the SANA-II device driver to be "turned off" until the tests are complete and an ONLINE is sent to the driver. S2_ONLINE causes the interface to re-configure and re-initialize. Any packets destined for the hardware while the device is off-line will be lost. All pending and new requests to the driver shall be returned with S2ERR_OUTOFSERVICE when a device is off-line. All driver users must understand that any IO request may return with S2ERR_OUTOFSERVICE because the driver is off-line (any other program may call S2_OFFLINE to make it so). In such an event, the driver will usually want to wait until the unit comes back on-line (for the program which called S2_OFFLINE to call S2_ONLINE). It may do this by calling S2_ONEVENT to wait for S2EVENT_ONLINE. S2_ONEVENT allows the driver user to wait on various events. A driver must track events, but may not distinguish between some types of events. Drivers return S2_ONEVENT with S2_ERR_NOT SUPPORTED and S2WERR_BAD_EVENT for unsupported Events. One error may cause more than one Event (see below). Errors which seem to have been caused by a malformed or unusual request should not generally trigger an event. Event types (S2EVENT_xxx): ERROR - Return when any error occurs. TX - Return on any transmit error (always an error). RX - Return on any receive error (always an error). ONLINE - Return when unit goes on-line or return immediately if unit is already on-line (not an error). OFFLINE - Return when unit goes off-line or return immediately if unit is already off-line (not an error.) BUFF - Return on any buffer management function error (always an error). HARDWARE - Return when any hardware error occurs (always an error, may be a TX or RX, too). SOFTWARE - Return when any software error occurs (always an error, may be a TX or RX, too).