.\" .\" This file and its contents are supplied under the terms of the .\" Common Development and Distribution License ("CDDL"), version 1.0. .\" You may only use this file in accordance with the terms of version .\" 1.0 of the CDDL. .\" .\" A full copy of the text of the CDDL should have accompanied this .\" source. A copy of the CDDL is also available via the Internet at .\" http://www.illumos.org/license/CDDL. .\" .\" .\" Copyright (c) 2017, Joyent, Inc. .\" Copyright 2022 Oxide Computer Company .\" .Dd July 2, 2022 .Dt MAC_TX_UPDATE 9F .Os .Sh NAME .Nm mac_tx_update , .Nm mac_tx_ring_update .Nd indicate that a device can transmit again .Sh SYNOPSIS .In sys/mac_provider.h .Ft void .Fo mac_tx_update .Fa "mac_handle_t mh" .Fc .Ft void .Fo mac_tx_ring_update .Fa "mac_handle_t mh" .Fa "mac_ring_handle_t mrh" .Fc .Sh INTERFACE LEVEL illumos DDI specific .Pp The .Fn mac_tx_ring_update function point is .Sy Uncommitted - API and ABI stability is not guaranteed. .Sh PARAMETERS .Bl -tag -width Fa .It Fa mh The MAC handle obtained from a call to .Xr mac_register 9F . .It Fa mrh The MAC ring handle obtained when the driver's ring entry point .Xr mr_rget 9E was called. .El .Sh DESCRIPTION The .Fn mac_tx_update function is used by device drivers to indicate that the device represented by the handle .Fa mh can transmit data again. It should only be called after the device driver has returned data from its .Xr mc_tx 9E endpoint. For more information on when this should be called, see both .Xr mc_tx 9E and the .Sx Transmitting Data and Back Pressure section of .Xr mac 9E . .Pp Device drivers should not hold any of their own locks when calling into this function. See the .Sx MAC Callbacks section of .Xr mac 9E for more information. .Pp When a driver has negotiated the .Dv MAC_CAPAB_RINGS capability and indicated that it supports transmit groups, it must not use the .Fn mac_tx_update function and should instead call the .Fn 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 .Fa mrh argument. The ring should have previously returned frames from its .Xr mri_tx 9E entry point to indicate that it was blocked. .Pp In all other respects, the .Fn mac_tx_ring_update function is similar to the .Fn mac_tx_update function. .Sh CONTEXT The .Fn mac_tx_update function may be called from .Sy user , .Sy kernel , or .Sy interrupt context. .Sh SEE ALSO .Xr mac 9E , .Xr mac_capab_rings 9E , .Xr mc_tx 9E , .Xr mr_rget 9E , .Xr mri_tx 9E , .Xr mac_register 9F