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.
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.
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)
illumos July 2, 2022 illumos
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