MAC_TX_UPDATE(9F) | Kernel Functions for Drivers | MAC_TX_UPDATE(9F) |
mac_tx_update
,
mac_tx_ring_update
—
indicate that a device can transmit again
#include
<sys/mac_provider.h>
void
mac_tx_update
(mac_handle_t
mh);
void
mac_tx_ring_update
(mac_handle_t
mh, mac_ring_handle_t mrh);
illumos DDI specific
The
mac_tx_ring_update
()
function point is
Uncommitted
- API and ABI stability is not guaranteed.
The
mac_tx_update
()
function is used by device drivers to indicate that the device represented
by the handle mh can transmit data again. It should
only be called after the device driver has returned data from its
mc_tx(9E) endpoint. For more
information on when this should be called, see both
mc_tx(9E) and the
Transmitting Data
and Back Pressure section of
mac(9E).
Device drivers should not hold any of their own locks when calling into this function. See the MAC Callbacks section of mac(9E) for more information.
When a driver has negotiated the
MAC_CAPAB_RINGS
capability and indicated that it
supports transmit groups, it must not use the
mac_tx_update
()
function and should instead call the
mac_tx_ring_update
() function targeting a specific
ring instead. The ring that is being updated is specified by the ring handle
passed in the mrh argument. The ring should have
previously returned frames from its
mri_tx(9E) entry point to indicate
that it was blocked.
In all other respects, the
mac_tx_ring_update
()
function is similar to the mac_tx_update
()
function.
The mac_tx_update
() function may be called
from user,
kernel,
or
interrupt
context.
mac(9E), mac_capab_rings(9E), mc_tx(9E), mr_rget(9E), mri_tx(9E), mac_register(9F)
July 2, 2022 | OmniOS |