MAC_TX_UPDATE(9F) Kernel Functions for Drivers MAC_TX_UPDATE(9F)
NAME
mac_tx_update,
mac_tx_ring_update - indicate that a device can transmit
again
SYNOPSIS
#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);
INTERFACE LEVEL
illumos DDI specific
The
mac_tx_ring_update() function point is
Uncommitted - API and ABI
stability is not guaranteed.
PARAMETERS
mh The MAC handle obtained from a call to
mac_register(9F).
mrh The MAC ring handle obtained when the driver's ring entry
point
mr_rget(9E) was called.
DESCRIPTION
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.
CONTEXT
The
mac_tx_update() function may be called from
user,
kernel, or
interrupt context.
SEE ALSO
mac(9E),
mac_capab_rings(9E),
mc_tx(9E),
mr_rget(9E),
mri_tx(9E),
mac_register(9F)illumos July 2, 2022 illumos