Commit graph

5 commits

Author SHA1 Message Date
Seth Morabito
e4e7071b6a 3b2: Improve NI performance
This change implements asynchronous (non-polling) mode for NI Ethernet
packet receive.
2019-08-25 20:39:48 -07:00
Seth Morabito
9736cc3116 3b2: STRCPY fix, CTC and NI cleanup
- The previous fix for STRCPY introduced a new bug. STRCPY must always
  copy the final NULL terminator of the string, but must NOT increment
  the source or destination pointers for the NULL terminator.

- The CTC simulation did not correctly support streaming mode, which
  can in some cases request reads that are not on 512-byte block
  boundaries.

- To begin to support System V Release 4 UNIX, the NI card (called EMD
  under SVR4) needed to support several more CRC codes for pump code.
2019-08-15 08:07:49 -07:00
Seth Morabito
8832511204 3b2: Correct behavior for NI attach and detach
Previously, the NI ethernet device expected to do all
autoconfiguration at attach time. Furthermore, if attaching failed for
some reason (e.g., permission issues on a tap device, etc.) the card
would be left autoconfigured, but in a broken state that could lead to
reading uninitialized memory.

This change fixes those bugs, and allows the device to be attached and
detached more freely. The card is now autoconfigured when it is
enabled.  Attaching and detaching are analogous to connecting or
disconnecting an ethernet transceiver from the physical device.
2019-04-29 08:21:52 -07:00
Seth Morabito
726a07b547 3b2: Fix Coverity identified issues
This change also addresses some unused function parameter warnings
issued by GNU Flycheck (not generally used by the build process, but
useful when editing files with Flycheck enabled)
2019-03-20 10:13:30 -07:00
Seth Morabito
b0a4fb443c 3b2: NI 10Base5 Ethernet Device
- Implements an Ethernet device ("NI", for "Network Interface")
    for the 3B2 simulator.
2019-03-09 14:32:21 -08:00