1*86e5bb79SLuqman Aden.\" 2*86e5bb79SLuqman Aden.\" This file and its contents are supplied under the terms of the 3*86e5bb79SLuqman Aden.\" Common Development and Distribution License ("CDDL"), version 1.0. 4*86e5bb79SLuqman Aden.\" You may only use this file in accordance with the terms of version 5*86e5bb79SLuqman Aden.\" 1.0 of the CDDL. 6*86e5bb79SLuqman Aden.\" 7*86e5bb79SLuqman Aden.\" A full copy of the text of the CDDL should have accompanied this 8*86e5bb79SLuqman Aden.\" source. A copy of the CDDL is also available via the Internet at 9*86e5bb79SLuqman Aden.\" http://www.illumos.org/license/CDDL. 10*86e5bb79SLuqman Aden.\" 11*86e5bb79SLuqman Aden.\" 12*86e5bb79SLuqman Aden.\" Copyright 2023 Oxide Computer Company 13*86e5bb79SLuqman Aden.\" 14*86e5bb79SLuqman Aden.Dd January 30, 2023 15*86e5bb79SLuqman Aden.Dt MAC_DEVT_TO_INSTANCE 9F 16*86e5bb79SLuqman Aden.Os 17*86e5bb79SLuqman Aden.Sh NAME 18*86e5bb79SLuqman Aden.Nm mac_devt_to_instance 19*86e5bb79SLuqman Aden.Nd return the instance number for the given device number 20*86e5bb79SLuqman Aden.Sh SYNOPSIS 21*86e5bb79SLuqman Aden.In sys/mac_provider.h 22*86e5bb79SLuqman Aden.Ft int 23*86e5bb79SLuqman Aden.Fo mac_devt_to_instance 24*86e5bb79SLuqman Aden.Fa "dev_t devt" 25*86e5bb79SLuqman Aden.Fc 26*86e5bb79SLuqman Aden.Sh INTERFACE LEVEL 27*86e5bb79SLuqman Adenillumos DDI specific 28*86e5bb79SLuqman Aden.Sh PARAMETERS 29*86e5bb79SLuqman Aden.Bl -tag -width Fa 30*86e5bb79SLuqman Aden.It Fa "devt" 31*86e5bb79SLuqman AdenDevice number. 32*86e5bb79SLuqman Aden.El 33*86e5bb79SLuqman Aden.Sh DESCRIPTION 34*86e5bb79SLuqman AdenThe 35*86e5bb79SLuqman Aden.Fn mac_devt_to_instance 36*86e5bb79SLuqman Adenfunction returns the device instance number associated with the given device 37*86e5bb79SLuqman Adennumber managed by the 38*86e5bb79SLuqman Aden.Xr mac 9E 39*86e5bb79SLuqman Adenframework. 40*86e5bb79SLuqman Aden.Pp 41*86e5bb79SLuqman AdenGenerally the MAC framework is responsible for managing device instance 42*86e5bb79SLuqman Adenmapping and provides a default 43*86e5bb79SLuqman Aden.Xr getinfo 9E 44*86e5bb79SLuqman Adenimplementation to that effect. 45*86e5bb79SLuqman Aden.Pp 46*86e5bb79SLuqman AdenHowever, if a driver wants to expose additional device nodes or relies on some 47*86e5bb79SLuqman Adenspecial mapping of device instance to MAC instance then it must provide its own 48*86e5bb79SLuqman Aden.Xr getinfo 9E 49*86e5bb79SLuqman Adenentry point. 50*86e5bb79SLuqman AdenIn that case, the driver can call the 51*86e5bb79SLuqman Aden.Fn mac_devt_to_instance 52*86e5bb79SLuqman Adenfunction to obtain the MAC specific instance number and translate it as 53*86e5bb79SLuqman Adenappropriate to a devinfo instance. 54*86e5bb79SLuqman Aden.Sh CONTEXT 55*86e5bb79SLuqman AdenThe 56*86e5bb79SLuqman Aden.Fn mac_devt_to_instance 57*86e5bb79SLuqman Adenfunction should be called from a 58*86e5bb79SLuqman Aden.Sy kernel 59*86e5bb79SLuqman Adencontext and is generally used during the execution of a driver's 60*86e5bb79SLuqman Aden.Xr getinfo 9E 61*86e5bb79SLuqman Adenentry point. 62*86e5bb79SLuqman Aden.Sh RETURN VALUES 63*86e5bb79SLuqman AdenUpon successful completion, the 64*86e5bb79SLuqman Aden.Fn mac_devt_to_instance 65*86e5bb79SLuqman Adenfunction returns the instance number associated with the minor. 66*86e5bb79SLuqman AdenOtherwise 67*86e5bb79SLuqman Aden.Sy -1 68*86e5bb79SLuqman Adenis returned to indicate failure. 69*86e5bb79SLuqman Aden.Sh SEE ALSO 70*86e5bb79SLuqman Aden.Xr getinfo 9E , 71*86e5bb79SLuqman Aden.Xr mac 9E , 72*86e5bb79SLuqman Aden.Xr ddi_get_instance 9F , 73*86e5bb79SLuqman Aden.Xr mac_getinfo 9F , 74*86e5bb79SLuqman Aden.Xr mac_private_minor 9F 75