152d2369aSRobert Mustacchi.\" 252d2369aSRobert Mustacchi.\" This file and its contents are supplied under the terms of the 352d2369aSRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0. 452d2369aSRobert Mustacchi.\" You may only use this file in accordance with the terms of version 552d2369aSRobert Mustacchi.\" 1.0 of the CDDL. 652d2369aSRobert Mustacchi.\" 752d2369aSRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this 852d2369aSRobert Mustacchi.\" source. A copy of the CDDL is also available via the Internet at 952d2369aSRobert Mustacchi.\" http://www.illumos.org/license/CDDL. 1052d2369aSRobert Mustacchi.\" 1152d2369aSRobert Mustacchi.\" 12*2c0ebdeeSRobert Mustacchi.\" Copyright (c) 2017, Joyent, Inc. 13*2c0ebdeeSRobert Mustacchi.\" Copyright 2022 Oxide Computer Company 1452d2369aSRobert Mustacchi.\" 15*2c0ebdeeSRobert Mustacchi.Dd July 2, 2022 1652d2369aSRobert Mustacchi.Dt MAC_TX_UPDATE 9F 1752d2369aSRobert Mustacchi.Os 1852d2369aSRobert Mustacchi.Sh NAME 19*2c0ebdeeSRobert Mustacchi.Nm mac_tx_update , 20*2c0ebdeeSRobert Mustacchi.Nm mac_tx_ring_update 2152d2369aSRobert Mustacchi.Nd indicate that a device can transmit again 2252d2369aSRobert Mustacchi.Sh SYNOPSIS 2352d2369aSRobert Mustacchi.In sys/mac_provider.h 2452d2369aSRobert Mustacchi.Ft void 2552d2369aSRobert Mustacchi.Fo mac_tx_update 2652d2369aSRobert Mustacchi.Fa "mac_handle_t mh" 2752d2369aSRobert Mustacchi.Fc 28*2c0ebdeeSRobert Mustacchi.Ft void 29*2c0ebdeeSRobert Mustacchi.Fo mac_tx_ring_update 30*2c0ebdeeSRobert Mustacchi.Fa "mac_handle_t mh" 31*2c0ebdeeSRobert Mustacchi.Fa "mac_ring_handle_t mrh" 32*2c0ebdeeSRobert Mustacchi.Fc 3352d2369aSRobert Mustacchi.Sh INTERFACE LEVEL 3452d2369aSRobert Mustacchiillumos DDI specific 35*2c0ebdeeSRobert Mustacchi.Pp 36*2c0ebdeeSRobert MustacchiThe 37*2c0ebdeeSRobert Mustacchi.Fn mac_tx_ring_update 38*2c0ebdeeSRobert Mustacchifunction point is 39*2c0ebdeeSRobert Mustacchi.Sy Uncommitted - 40*2c0ebdeeSRobert MustacchiAPI and ABI stability is not guaranteed. 4152d2369aSRobert Mustacchi.Sh PARAMETERS 4252d2369aSRobert Mustacchi.Bl -tag -width Fa 4352d2369aSRobert Mustacchi.It Fa mh 4452d2369aSRobert MustacchiThe MAC handle obtained from a call to 4552d2369aSRobert Mustacchi.Xr mac_register 9F . 46*2c0ebdeeSRobert Mustacchi.It Fa mrh 47*2c0ebdeeSRobert MustacchiThe MAC ring handle obtained when the driver's ring entry point 48*2c0ebdeeSRobert Mustacchi.Xr mr_rget 9E 49*2c0ebdeeSRobert Mustacchiwas called. 5052d2369aSRobert Mustacchi.El 5152d2369aSRobert Mustacchi.Sh DESCRIPTION 5252d2369aSRobert MustacchiThe 5352d2369aSRobert Mustacchi.Fn mac_tx_update 5452d2369aSRobert Mustacchifunction is used by device drivers to indicate that the device 5552d2369aSRobert Mustacchirepresented by the handle 5652d2369aSRobert Mustacchi.Fa mh 5772d3dbb9SYuri Pankovcan transmit data again. 5872d3dbb9SYuri PankovIt should only be called after the device driver has returned data from its 5952d2369aSRobert Mustacchi.Xr mc_tx 9E 6072d3dbb9SYuri Pankovendpoint. 6172d3dbb9SYuri PankovFor more information on when this should be called, see both 6252d2369aSRobert Mustacchi.Xr mc_tx 9E 6352d2369aSRobert Mustacchiand the 6452d2369aSRobert Mustacchi.Sx Transmitting Data and Back Pressure 6552d2369aSRobert Mustacchisection of 6652d2369aSRobert Mustacchi.Xr mac 9E . 6752d2369aSRobert Mustacchi.Pp 6852d2369aSRobert MustacchiDevice drivers should not hold any of their own locks when calling into 6972d3dbb9SYuri Pankovthis function. 7072d3dbb9SYuri PankovSee the 7152d2369aSRobert Mustacchi.Sx MAC Callbacks 7252d2369aSRobert Mustacchisection of 7352d2369aSRobert Mustacchi.Xr mac 9E 7452d2369aSRobert Mustacchifor more information. 75*2c0ebdeeSRobert Mustacchi.Pp 76*2c0ebdeeSRobert MustacchiWhen a driver has negotiated the 77*2c0ebdeeSRobert Mustacchi.Dv MAC_CAPAB_RINGS 78*2c0ebdeeSRobert Mustacchicapability and indicated that it supports transmit groups, it must not 79*2c0ebdeeSRobert Mustacchiuse the 80*2c0ebdeeSRobert Mustacchi.Fn mac_tx_update 81*2c0ebdeeSRobert Mustacchifunction and should instead call the 82*2c0ebdeeSRobert Mustacchi.Fn mac_tx_ring_update 83*2c0ebdeeSRobert Mustacchifunction targeting a specific ring instead. 84*2c0ebdeeSRobert MustacchiThe ring that is being updated is specified by the ring handle passed in 85*2c0ebdeeSRobert Mustacchithe 86*2c0ebdeeSRobert Mustacchi.Fa mrh 87*2c0ebdeeSRobert Mustacchiargument. 88*2c0ebdeeSRobert MustacchiThe ring should have previously returned frames from its 89*2c0ebdeeSRobert Mustacchi.Xr mri_tx 9E 90*2c0ebdeeSRobert Mustacchientry point to indicate that it was blocked. 91*2c0ebdeeSRobert Mustacchi.Pp 92*2c0ebdeeSRobert MustacchiIn all other respects, the 93*2c0ebdeeSRobert Mustacchi.Fn mac_tx_ring_update 94*2c0ebdeeSRobert Mustacchifunction is similar to the 95*2c0ebdeeSRobert Mustacchi.Fn mac_tx_update 96*2c0ebdeeSRobert Mustacchifunction. 9752d2369aSRobert Mustacchi.Sh CONTEXT 9852d2369aSRobert MustacchiThe 9952d2369aSRobert Mustacchi.Fn mac_tx_update 10052d2369aSRobert Mustacchifunction may be called from 10152d2369aSRobert Mustacchi.Sy user , 10252d2369aSRobert Mustacchi.Sy kernel , 10352d2369aSRobert Mustacchior 10452d2369aSRobert Mustacchi.Sy interrupt 10552d2369aSRobert Mustacchicontext. 10652d2369aSRobert Mustacchi.Sh SEE ALSO 10752d2369aSRobert Mustacchi.Xr mac 9E , 108*2c0ebdeeSRobert Mustacchi.Xr mac_capab_rings 9E , 109b31ca922SChris Fraire.Xr mc_tx 9E , 110*2c0ebdeeSRobert Mustacchi.Xr mr_rget 9E , 111*2c0ebdeeSRobert Mustacchi.Xr mri_tx 9E , 11252d2369aSRobert Mustacchi.Xr mac_register 9F 113