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 May 31, 2016 1552d2369aSRobert Mustacchi.Dt MAC_ALLOC 9F 1652d2369aSRobert Mustacchi.Os 1752d2369aSRobert Mustacchi.Sh NAME 1852d2369aSRobert Mustacchi.Nm mac_alloc , 1952d2369aSRobert Mustacchi.Nm mac_free 2052d2369aSRobert Mustacchi.Nd allocate and free mac registration structures 2152d2369aSRobert Mustacchi.Sh SYNOPSIS 2252d2369aSRobert Mustacchi.In sys/mac_provider.h 2352d2369aSRobert Mustacchi.Ft "mac_register_t *" 2452d2369aSRobert Mustacchi.Fo mac_alloc 2552d2369aSRobert Mustacchi.Fa "uint_t mac_version" 2652d2369aSRobert Mustacchi.Fc 2752d2369aSRobert Mustacchi.Ft void 2852d2369aSRobert Mustacchi.Fo mac_free 2952d2369aSRobert Mustacchi.Fa "mac_register_t *mregp" 3052d2369aSRobert Mustacchi.Fc 3152d2369aSRobert Mustacchi.Sh INTERFACE LEVEL 3252d2369aSRobert Mustacchiillumos DDI specific 3352d2369aSRobert Mustacchi.Sh PARAMETERS 3452d2369aSRobert Mustacchi.Bl -tag -width Fa 3552d2369aSRobert Mustacchi.It Fa mac_version 3652d2369aSRobert MustacchiAn integer corresponding to the version of the MAC interface that the 3752d2369aSRobert Mustacchidevice driver was built against. 3852d2369aSRobert Mustacchi.It Fa mregp 3952d2369aSRobert MustacchiA pointer to an allocated mac_register_t structure that was obtained 4052d2369aSRobert Mustacchifrom calling the 4152d2369aSRobert Mustacchi.Fn mac_alloc 4252d2369aSRobert Mustacchifunction. 4352d2369aSRobert Mustacchi.El 4452d2369aSRobert Mustacchi.Sh DESCRIPTION 4552d2369aSRobert MustacchiThe 4652d2369aSRobert Mustacchi.Fn mac_alloc 4752d2369aSRobert Mustacchiand 4852d2369aSRobert Mustacchi.Fn mac_free 4952d2369aSRobert Mustacchiroutines are used to allocate and free the structures used to register a 5052d2369aSRobert Mustacchidevice driver with 5152d2369aSRobert Mustacchi.Xr mac 9E . 5252d2369aSRobert MustacchiThe device driver should call 5352d2369aSRobert Mustacchi.Fn mac_alloc 5452d2369aSRobert Mustacchiwith the value of 5552d2369aSRobert Mustacchi.Dv MAC_VERSION 5652d2369aSRobert Mustacchito indicate the current version of the MAC framework that it supports. 5752d2369aSRobert MustacchiThe device driver will be returned an instance of a 5852d2369aSRobert Mustacchi.Xr mac_register 9S 5952d2369aSRobert Mustacchistructure which it can then use to call 6052d2369aSRobert Mustacchi.Xr mac_register 9F . 6152d2369aSRobert MustacchiFor more information on the order of events, see the 6252d2369aSRobert Mustacchi.Sx Initializing MAC Support 6352d2369aSRobert Mustacchisection of 6452d2369aSRobert Mustacchi.Xr mac 9E . 6552d2369aSRobert Mustacchi.Pp 6652d2369aSRobert MustacchiWhen the driver is done with the 6752d2369aSRobert Mustacchi.Xr mac_register 9S 6852d2369aSRobert Mustacchistructure, it must call the 69*c66b8046SYuri Pankov.Fn mac_free 7052d2369aSRobert Mustacchifunction to release any associated memory. 7152d2369aSRobert Mustacchi.Sh CONTEXT 7252d2369aSRobert MustacchiThe 7352d2369aSRobert Mustacchi.Fn mac_alloc 7452d2369aSRobert Mustacchiand 7552d2369aSRobert Mustacchi.Fn mac_free 7652d2369aSRobert Mustacchiroutines are generally called from the context of a device driver's 7752d2369aSRobert Mustacchi.Xr attach 9E 7852d2369aSRobert Mustacchientry point; however, they may be called from both 7952d2369aSRobert Mustacchi.Sy user 8052d2369aSRobert Mustacchiand 8152d2369aSRobert Mustacchi.Sy kernel 8252d2369aSRobert Mustacchicontext. 8352d2369aSRobert Mustacchi.Sh RETURN VALUES 8452d2369aSRobert MustacchiUpon successful completion, the 8552d2369aSRobert Mustacchi.Fn mac_register 8652d2369aSRobert Mustacchifunction will return a pointer to an allocated 8752d2369aSRobert Mustacchi.Sy mac_register_t 8872d3dbb9SYuri Pankovstructure that can be filled in by the driver. 8972d3dbb9SYuri PankovOtherwise, 9052d2369aSRobert Mustacchi.Dv NULL 9172d3dbb9SYuri Pankovis returned to indicate that the structure could not be allocated. 9272d3dbb9SYuri PankovThe most common cause for this is that the value of 9352d2369aSRobert Mustacchi.Fa mac_version 9452d2369aSRobert Mustacchiis not supported by the kernel. 9552d2369aSRobert Mustacchi.Sh SEE ALSO 9652d2369aSRobert Mustacchi.Xr attach 9E , 9752d2369aSRobert Mustacchi.Xr mac 9E , 9852d2369aSRobert Mustacchi.Xr mac_register 9F , 9952d2369aSRobert Mustacchi.Xr mac_register 9S 100