xref: /illumos-gate/usr/src/man/man9f/mac_rx.9f (revision 72d3dbb9ab4481606cb93caca98ba3b3a8eb6ce2)
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.\"
1252d2369aSRobert Mustacchi.\" Copyright 2016 Joyent, Inc.
1352d2369aSRobert Mustacchi.\"
1452d2369aSRobert Mustacchi.Dd June 02, 2016
1552d2369aSRobert Mustacchi.Dt MAC_RX 9F
1652d2369aSRobert Mustacchi.Os
1752d2369aSRobert Mustacchi.Sh NAME
1852d2369aSRobert Mustacchi.Nm mac_rx
1952d2369aSRobert Mustacchi.Nd deliver frames from a driver to the system
2052d2369aSRobert Mustacchi.Sh SYNOPSIS
2152d2369aSRobert Mustacchi.In sys/mac_provider.h
2252d2369aSRobert Mustacchi.Ft void
2352d2369aSRobert Mustacchi.Fo mac_rx
2452d2369aSRobert Mustacchi.Fa "mac_handle_t mh"
2552d2369aSRobert Mustacchi.Fa "mac_resource_handle_t mrh"
2652d2369aSRobert Mustacchi.Fa "mblk_t *mp_chain"
2752d2369aSRobert Mustacchi.Fc
2852d2369aSRobert Mustacchi.Sh INTERFACE LEVEL
2952d2369aSRobert Mustacchiillumos DDI specific
3052d2369aSRobert Mustacchi.Sh PARAMETERS
3152d2369aSRobert Mustacchi.Bl -tag -width Fa
3252d2369aSRobert Mustacchi.It Fa mh
3352d2369aSRobert MustacchiThe MAC handle obtained from a call to
3452d2369aSRobert Mustacchi.Xr mac_register 9F .
3552d2369aSRobert Mustacchi.It Fa mrh
3652d2369aSRobert MustacchiA reserved parameter that should be passed as
3752d2369aSRobert Mustacchi.Dv NULL .
3852d2369aSRobert Mustacchi.It Fa mp_chain
3952d2369aSRobert MustacchiA series of one or more
4052d2369aSRobert Mustacchi.Xr mblk 9S
4152d2369aSRobert Mustacchistructures chained together by their
4252d2369aSRobert Mustacchi.Sy b_next
4352d2369aSRobert Mustacchimember.
4452d2369aSRobert Mustacchi.El
4552d2369aSRobert Mustacchi.Sh DESCRIPTION
4652d2369aSRobert MustacchiThe
4752d2369aSRobert Mustacchi.Fn mac_rx
4852d2369aSRobert Mustacchifunction is used by device drivers to deliver frames that a device
49*72d3dbb9SYuri Pankovdriver has received to the rest of the operating system.
50*72d3dbb9SYuri PankovThis will generally be called at the end of a device driver's interrupt handler
5152d2369aSRobert Mustacchiafter it is has converted all of the incoming data into a chain of
5252d2369aSRobert Mustacchi.Xr mblk 9S
53*72d3dbb9SYuri Pankovstructures.
54*72d3dbb9SYuri PankovFor a full description of the process that the device driver should take as part
55*72d3dbb9SYuri Pankovof receiving data, see the
5652d2369aSRobert Mustacchi.Sx Receiving Data
5752d2369aSRobert Mustacchisection of
5852d2369aSRobert Mustacchi.Xr mac 9E .
5952d2369aSRobert Mustacchi.Pp
6052d2369aSRobert MustacchiDevice drivers should ensure that they are not holding any of their own
6152d2369aSRobert Mustacchilocks when they call the
6252d2369aSRobert Mustacchi.Fn mac_rx
6352d2369aSRobert Mustacchifunction.
6452d2369aSRobert Mustacchi.Pp
6552d2369aSRobert MustacchiDevice drivers should not call the
6652d2369aSRobert Mustacchi.Fn mac_rx
67*72d3dbb9SYuri Pankovfunction after each individual mblk_t is assembled.
68*72d3dbb9SYuri PankovRather, the device driver should batch up as many frames as it is willing to
69*72d3dbb9SYuri Pankovprocess in a given interrupt or otherwise.
7052d2369aSRobert Mustacchi.Sh CONTEXT
7152d2369aSRobert MustacchiThe
7252d2369aSRobert Mustacchi.Fn mac_rx
7352d2369aSRobert Mustacchifunction can be called from
7452d2369aSRobert Mustacchi.Sy user ,
7552d2369aSRobert Mustacchi.Sy kernel ,
7652d2369aSRobert Mustacchior
7752d2369aSRobert Mustacchi.Sy interrupt
7852d2369aSRobert Mustacchicontext.
7952d2369aSRobert Mustacchi.Sh SEE ALSO
8052d2369aSRobert Mustacchi.Xr mac 9E ,
8152d2369aSRobert Mustacchi.Xr mac_register 9F ,
8252d2369aSRobert Mustacchi.Xr mblk 9S
83