ADC Home > Reference Library > Technical Q&As > Legacy Documents > Hardware & Drivers >
Important: This document is part of the Legacy section of the ADC Reference Library. This information should not be used for new development.
Current information on this Reference Library topic can be found here:
Q: I have a legacy application which uses the outdated Ethernet Driver APIs as described in the ENET.h interface file. The application has worked on all Power Macintosh models except for the Power Macintosh G3 systems using Mac OS 8.1. Is there any way for this application to work on a Power Macintosh G3 system?
A: There is a known issue with the older Power Macintosh G3 systems: the processes which used the legacy Ethernet APIs no longer work on these systems. These processes could not open the built-in Ethernet driver. This problem was addressed with the Power Macintosh G3 systems released beginning January 1999.
Ethernet Shim History
With the release of the first PCI-based Power Macintosh systems, an Ethernet shim was built into the System to support processes which used the Ethernet Driver API. On a PCI Power Macintosh, the Ethernet driver is native PowerPC code and is based on the Data Link Provider Interface (DLPI) for communications with client processes. The
Ethernet Shim translates the Ethernet Driver API calls into DLPI
equivalents and passes them on to the built-in driver. For incoming
packets, the DLPI driver passes appropriate packets to the Ethernet
shim, which in turns calls the Ethernet protocol handler, or looks for
The Ethernet shim was designed to support only the built-in
Ethernet device, and not PCI Ethernet cards which are plugged into the
various slots. The use of this shim required a specific coding change
for some processes. In order to use the shim, the process could not
How the Ethernet Shim Works
The Ethernet shim works by registering a device
The shim driver process worked well until the release of the Power Macintosh G3 system. With the Power Macintosh G3 systems released in 1997 - 1998, a change to the ROM broke the mechanism by which the
Ethernet shim was able to register built-in Ethernet services with
the Slot Manager. As a result, the calls to
A workaround was implemented for Mac OS 8.5 such that,
during startup, the System identified the original Power Macintosh G3
systems and installed the .ENET device driver into the unit table. A
problem with this solution was that most legacy processes had
already made the change to using the
To summarize, it is a known issue that processes which use the legacy Ethernet API will fail when run on a Power Macintosh G3 system released in 1997 or 1998 running either Mac OS 8.0 or 8.1. This problem may be solved by using Mac OS 8.5 on these affected systems.