MC_START(9E)                 Driver Entry Points                MC_START(9E)
NAME
     mc_start, 
mc_stop - start and stop device entry points
SYNOPSIS
     #include <sys/mac_provider.h>     int     prefix_m_start(
void *driver);     
void     prefix_m_stop(
void *driver);
INTERFACE LEVEL
     illumos DDI specific
PARAMETERS
     driver  A pointer to the driver's private data that was passed in via
             the 
m_pdata member of the 
mac_register(9S) structure to the             
mac_register(9F) function.
DESCRIPTION
     The 
mc_start() entry point for a driver indicates that it should
     initialize the chip to be ready to send or receive data.  This entry
     point is guaranteed to be called before any entry points that are
     expected to be able to send and receive data.  During this entry point,
     most devices will allocate DMA resources, enable the link, and finish
     performing any necessary device programming.
     The 
mc_stop() entry point for a driver indicates that it should tear
     down any allocated resources for the driver and, after the function
     returns, it is not expected to perform any additional I/O.
     The driver has access to its private data in the 
driver argument to
     either function, which it should cast to the appropriate structure.
     The system guarantees that only one of the 
mc_start() and 
mc_stop()
     functions will be called at any given time for a given instance.
     Similarly, these should not be called at the same time as a device's     
attach(9E) or 
detach(9E) routine.  However, the driver may have other
     ongoing routines that it needs to protect against.  The device driver
     should always apply the appropriate locking techniques needed to ensure
     that access to the data in its soft state is protected.
RETURN VALUES
     Upon successful completion, device drivers should return 
0 for the     
mc_start() entry point.  Otherwise, they should return a non-zero
     positive error number to indicate the error that occurred.
SEE ALSO
     mac(9E), 
mac_register(9F), 
mac_register(9S)illumos                         May 31, 2016                         illumos